summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPing Li <quicpingli@codeaurora.org>2014-03-20 17:20:26 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:28:30 -0700
commitcb0402ff45fa59eb00b8d13336cabcb4f601c1b8 (patch)
tree34460289b8bde2f2f934ca5967c0862c164c6c55
parent20cd4e4a73d7f7667fe2bfbb62d535ef2e3f981d (diff)
msm: mdss: Fix the incorrect address base for postproc calib ioctl
The postproc calib configuration address should always offset form MDSS base, not MDP base. Also allow postproc calib ioctl to access the MDSS version register. Change-Id: I9dbf5a2a75a0a384e7f97efca49f1a75e5d01fc8 Signed-off-by: Ping Li <quicpingli@codeaurora.org>
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_pp.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_pp.c b/drivers/video/fbdev/msm/mdss_mdp_pp.c
index 9ef3e1f69cad..0dce5315340e 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_pp.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_pp.c
@@ -5119,6 +5119,8 @@ static int is_valid_calib_addr(void *addr, u32 operation)
if ((uintptr_t) addr % 4) {
ret = 0;
+ } else if (ptr == mdss_res->mdss_base + MDSS_REG_HW_VERSION) {
+ ret = MDP_PP_OPS_READ;
} else if (ptr == (mdss_res->mdp_base + MDSS_MDP_REG_HW_VERSION) ||
ptr == (mdss_res->mdp_base + MDSS_MDP_REG_DISP_INTF_SEL)) {
ret = MDP_PP_OPS_READ;
@@ -5173,7 +5175,7 @@ int mdss_mdp_calib_config(struct mdp_calib_config_data *cfg, u32 *copyback)
/* Calib addrs are always offsets from the MDSS base */
ptr = (void *)((unsigned int) cfg->addr) +
- ((uintptr_t) mdss_res->mdp_base);
+ ((uintptr_t) mdss_res->mdss_base);
if (is_valid_calib_addr(ptr, cfg->ops))
ret = 0;
else