#include <linux/clk.h>
#include <linux/of_platform.h>
#include <linux/of_address.h>
#include <linux/pm_runtime.h>
#include "mtk-mdp3-cfg.h"
#include "mtk-mdp3-comp.h"
#include "mtk-mdp3-core.h"
#include "mtk-mdp3-regs.h"
#include "mdp_reg_aal.h"
#include "mdp_reg_ccorr.h"
#include "mdp_reg_color.h"
#include "mdp_reg_fg.h"
#include "mdp_reg_hdr.h"
#include "mdp_reg_merge.h"
#include "mdp_reg_ovl.h"
#include "mdp_reg_pad.h"
#include "mdp_reg_rdma.h"
#include "mdp_reg_rsz.h"
#include "mdp_reg_tdshp.h"
#include "mdp_reg_wdma.h"
#include "mdp_reg_wrot.h"
static u32 mdp_comp_alias_id[MDP_COMP_TYPE_COUNT];
static int p_id;
static inline const struct mdp_platform_config *
__get_plat_cfg(const struct mdp_comp_ctx *ctx)
{ … }
static s64 get_comp_flag(const struct mdp_comp_ctx *ctx)
{ … }
static int init_rdma(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd)
{ … }
static int config_rdma_frame(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd,
const struct v4l2_rect *compose)
{ … }
static int config_rdma_subfrm(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd, u32 index)
{ … }
static int wait_rdma_event(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd)
{ … }
static const struct mdp_comp_ops rdma_ops = …;
static int init_rsz(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd)
{ … }
static int config_rsz_frame(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd,
const struct v4l2_rect *compose)
{ … }
static int config_rsz_subfrm(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd, u32 index)
{ … }
static int advance_rsz_subfrm(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd, u32 index)
{ … }
static const struct mdp_comp_ops rsz_ops = …;
static int init_wrot(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd)
{ … }
static int config_wrot_frame(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd,
const struct v4l2_rect *compose)
{ … }
static int config_wrot_subfrm(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd, u32 index)
{ … }
static int wait_wrot_event(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd)
{ … }
static const struct mdp_comp_ops wrot_ops = …;
static int init_wdma(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd)
{ … }
static int config_wdma_frame(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd,
const struct v4l2_rect *compose)
{ … }
static int config_wdma_subfrm(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd, u32 index)
{ … }
static int wait_wdma_event(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd)
{ … }
static const struct mdp_comp_ops wdma_ops = …;
static int reset_luma_hist(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd)
{ … }
static int init_tdshp(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd)
{ … }
static int config_tdshp_frame(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd,
const struct v4l2_rect *compose)
{ … }
static int config_tdshp_subfrm(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd, u32 index)
{ … }
static const struct mdp_comp_ops tdshp_ops = …;
static int init_color(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd)
{ … }
static int config_color_frame(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd,
const struct v4l2_rect *compose)
{ … }
static int config_color_subfrm(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd, u32 index)
{ … }
static const struct mdp_comp_ops color_ops = …;
static int init_ccorr(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd)
{ … }
static int config_ccorr_subfrm(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd, u32 index)
{ … }
static const struct mdp_comp_ops ccorr_ops = …;
static int init_aal(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd)
{ … }
static int config_aal_frame(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd,
const struct v4l2_rect *compose)
{ … }
static int config_aal_subfrm(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd, u32 index)
{ … }
static const struct mdp_comp_ops aal_ops = …;
static int init_hdr(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd)
{ … }
static int config_hdr_frame(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd,
const struct v4l2_rect *compose)
{ … }
static int config_hdr_subfrm(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd, u32 index)
{ … }
static const struct mdp_comp_ops hdr_ops = …;
static int init_fg(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd)
{ … }
static int config_fg_frame(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd,
const struct v4l2_rect *compose)
{ … }
static int config_fg_subfrm(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd, u32 index)
{ … }
static const struct mdp_comp_ops fg_ops = …;
static int init_ovl(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd)
{ … }
static int config_ovl_frame(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd,
const struct v4l2_rect *compose)
{ … }
static int config_ovl_subfrm(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd, u32 index)
{ … }
static const struct mdp_comp_ops ovl_ops = …;
static int init_pad(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd)
{ … }
static int config_pad_subfrm(struct mdp_comp_ctx *ctx,
struct mdp_cmdq_cmd *cmd, u32 index)
{ … }
static const struct mdp_comp_ops pad_ops = …;
static const struct mdp_comp_ops *mdp_comp_ops[MDP_COMP_TYPE_COUNT] = …;
static const struct of_device_id mdp_comp_dt_ids[] __maybe_unused = …;
static inline bool is_dma_capable(const enum mdp_comp_type type)
{ … }
static inline bool is_bypass_gce_event(const enum mdp_comp_type type)
{ … }
static int mdp_comp_get_id(struct mdp_dev *mdp, enum mdp_comp_type type, u32 alias_id)
{ … }
int mdp_comp_clock_on(struct device *dev, struct mdp_comp *comp)
{ … }
void mdp_comp_clock_off(struct device *dev, struct mdp_comp *comp)
{ … }
int mdp_comp_clocks_on(struct device *dev, struct mdp_comp *comps, int num)
{ … }
void mdp_comp_clocks_off(struct device *dev, struct mdp_comp *comps, int num)
{ … }
static int mdp_get_subsys_id(struct mdp_dev *mdp, struct device *dev,
struct device_node *node, struct mdp_comp *comp)
{ … }
static void __mdp_comp_init(struct mdp_dev *mdp, struct device_node *node,
struct mdp_comp *comp)
{ … }
static int mdp_comp_init(struct mdp_dev *mdp, struct device_node *node,
struct mdp_comp *comp, enum mtk_mdp_comp_id id)
{ … }
static void mdp_comp_deinit(struct mdp_comp *comp)
{ … }
static struct mdp_comp *mdp_comp_create(struct mdp_dev *mdp,
struct device_node *node,
enum mtk_mdp_comp_id id)
{ … }
static int mdp_comp_sub_create(struct mdp_dev *mdp)
{ … }
void mdp_comp_destroy(struct mdp_dev *mdp)
{ … }
int mdp_comp_config(struct mdp_dev *mdp)
{ … }
int mdp_comp_ctx_config(struct mdp_dev *mdp, struct mdp_comp_ctx *ctx,
const struct img_compparam *param,
const struct img_ipi_frameparam *frame)
{ … }