diff options
| author | Kalyan Thota <kalyant@codeaurora.org> | 2014-05-09 20:02:51 +0530 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:29:48 -0700 |
| commit | 29ebf7616be4e5e3105d9b68ed8e3cd8d9bf06e5 (patch) | |
| tree | a35064d8c496f90f5b8c1174ba2067e93c556d02 /drivers/video/fbdev | |
| parent | 09e198ab6204b5ef760e1db37f3d6413196847d5 (diff) | |
msm: mdss: Remove mixer dependency on pingpong Apis
Change the pingpong read and write Apis to accept address,
inorder to support multiple pingpongs accessibility
via same mixer
Change-Id: Ia21ee21fbb8d4334d6cdc8b7b659f6f263222a69
Signed-off-by: Kalyan Thota <kalyant@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev')
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp.h | 8 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_ctl.c | 11 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c | 43 |
3 files changed, 32 insertions, 30 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp.h b/drivers/video/fbdev/msm/mdss_mdp.h index 73256a4f3909..49888b525df3 100644 --- a/drivers/video/fbdev/msm/mdss_mdp.h +++ b/drivers/video/fbdev/msm/mdss_mdp.h @@ -514,15 +514,15 @@ static inline u32 mdp_mixer_read(struct mdss_mdp_mixer *mixer, u32 reg) return readl_relaxed(mixer->base + reg); } -static inline void mdss_mdp_pingpong_write(struct mdss_mdp_mixer *mixer, +static inline void mdss_mdp_pingpong_write(char __iomem *pingpong_base, u32 reg, u32 val) { - writel_relaxed(val, mixer->pingpong_base + reg); + writel_relaxed(val, pingpong_base + reg); } -static inline u32 mdss_mdp_pingpong_read(struct mdss_mdp_mixer *mixer, u32 reg) +static inline u32 mdss_mdp_pingpong_read(char __iomem *pingpong_base, u32 reg) { - return readl_relaxed(mixer->pingpong_base + reg); + return readl_relaxed(pingpong_base + reg); } static inline int mdss_mdp_pipe_is_sw_reset_available( diff --git a/drivers/video/fbdev/msm/mdss_mdp_ctl.c b/drivers/video/fbdev/msm/mdss_mdp_ctl.c index cca4c1df613a..6c86ad83a1b5 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_ctl.c +++ b/drivers/video/fbdev/msm/mdss_mdp_ctl.c @@ -1427,11 +1427,12 @@ static int mdss_mdp_ctl_fbc_enable(int enable, ((fbc->lossy_rgb_thd) << 4) | fbc->lossy_mode_idx; } - mdss_mdp_pingpong_write(mixer, MDSS_MDP_REG_PP_FBC_MODE, mode); - mdss_mdp_pingpong_write(mixer, MDSS_MDP_REG_PP_FBC_BUDGET_CTL, - budget_ctl); - mdss_mdp_pingpong_write(mixer, MDSS_MDP_REG_PP_FBC_LOSSY_MODE, - lossy_mode); + mdss_mdp_pingpong_write(mixer->pingpong_base, + MDSS_MDP_REG_PP_FBC_MODE, mode); + mdss_mdp_pingpong_write(mixer->pingpong_base, + MDSS_MDP_REG_PP_FBC_BUDGET_CTL, budget_ctl); + mdss_mdp_pingpong_write(mixer->pingpong_base, + MDSS_MDP_REG_PP_FBC_LOSSY_MODE, lossy_mode); return 0; } diff --git a/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c b/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c index 453efbcf3600..69c20baf0468 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c +++ b/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c @@ -69,19 +69,18 @@ static inline u32 mdss_mdp_cmd_line_count(struct mdss_mdp_ctl *ctl) } } - init = mdss_mdp_pingpong_read - (mixer, MDSS_MDP_REG_PP_VSYNC_INIT_VAL) & 0xffff; - - height = mdss_mdp_pingpong_read - (mixer, MDSS_MDP_REG_PP_SYNC_CONFIG_HEIGHT) & 0xffff; + init = mdss_mdp_pingpong_read(mixer->pingpong_base, + MDSS_MDP_REG_PP_VSYNC_INIT_VAL) & 0xffff; + height = mdss_mdp_pingpong_read(mixer->pingpong_base, + MDSS_MDP_REG_PP_SYNC_CONFIG_HEIGHT) & 0xffff; if (height < init) { mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF, false); goto exit; } - cnt = mdss_mdp_pingpong_read - (mixer, MDSS_MDP_REG_PP_INT_COUNT_VAL) & 0xffff; + cnt = mdss_mdp_pingpong_read(mixer->pingpong_base, + MDSS_MDP_REG_PP_INT_COUNT_VAL) & 0xffff; if (cnt < init) /* wrap around happened at height */ cnt += (height - init); @@ -143,20 +142,22 @@ static int mdss_mdp_cmd_tearcheck_cfg(struct mdss_mdp_ctl *ctl, pr_debug("thrd_start =%d thrd_cont=%d\n", te->sync_threshold_start, te->sync_threshold_continue); - mdss_mdp_pingpong_write(mixer, MDSS_MDP_REG_PP_SYNC_CONFIG_VSYNC, cfg); - mdss_mdp_pingpong_write(mixer, MDSS_MDP_REG_PP_SYNC_CONFIG_HEIGHT, - te->sync_cfg_height); - mdss_mdp_pingpong_write(mixer, MDSS_MDP_REG_PP_VSYNC_INIT_VAL, - te->vsync_init_val); - mdss_mdp_pingpong_write(mixer, MDSS_MDP_REG_PP_RD_PTR_IRQ, - te->rd_ptr_irq); - mdss_mdp_pingpong_write(mixer, MDSS_MDP_REG_PP_START_POS, - te->start_pos); - mdss_mdp_pingpong_write(mixer, MDSS_MDP_REG_PP_SYNC_THRESH, - ((te->sync_threshold_continue << 16) | - te->sync_threshold_start)); - mdss_mdp_pingpong_write(mixer, MDSS_MDP_REG_PP_TEAR_CHECK_EN, - te->tear_check_en); + mdss_mdp_pingpong_write(mixer->pingpong_base, + MDSS_MDP_REG_PP_SYNC_CONFIG_VSYNC, cfg); + mdss_mdp_pingpong_write(mixer->pingpong_base, + MDSS_MDP_REG_PP_SYNC_CONFIG_HEIGHT, te->sync_cfg_height); + mdss_mdp_pingpong_write(mixer->pingpong_base, + MDSS_MDP_REG_PP_VSYNC_INIT_VAL, te->vsync_init_val); + mdss_mdp_pingpong_write(mixer->pingpong_base, + MDSS_MDP_REG_PP_RD_PTR_IRQ, te->rd_ptr_irq); + mdss_mdp_pingpong_write(mixer->pingpong_base, + MDSS_MDP_REG_PP_START_POS, te->start_pos); + mdss_mdp_pingpong_write(mixer->pingpong_base, + MDSS_MDP_REG_PP_SYNC_THRESH, + ((te->sync_threshold_continue << 16) | + te->sync_threshold_start)); + mdss_mdp_pingpong_write(mixer->pingpong_base, + MDSS_MDP_REG_PP_TEAR_CHECK_EN, te->tear_check_en); return 0; } |
