platform: msm_shared: config QOS remapper based on MDP revision
Configure QOS remapper register based on MDP revision like
it is present in display driver in kernel.
Change-Id: I7b984795919ccea1de82987933c2263f8e2be6c5
diff --git a/platform/msm_shared/mdp5.c b/platform/msm_shared/mdp5.c
index 283eee7..255f254 100644
--- a/platform/msm_shared/mdp5.c
+++ b/platform/msm_shared/mdp5.c
@@ -343,6 +343,27 @@
}
}
+void mdss_qos_remapper_setup(void)
+{
+ uint32_t mdp_hw_rev = readl(MDP_HW_REV);
+ uint32_t map;
+
+ if (MDSS_IS_MAJOR_MINOR_MATCHING(mdp_hw_rev, MDSS_MDP_HW_REV_100) ||
+ MDSS_IS_MAJOR_MINOR_MATCHING(mdp_hw_rev,
+ MDSS_MDP_HW_REV_102))
+ map = 0xE9;
+ else if (MDSS_IS_MAJOR_MINOR_MATCHING(mdp_hw_rev,
+ MDSS_MDP_HW_REV_101))
+ map = 0xA5;
+ else if (MDSS_IS_MAJOR_MINOR_MATCHING(mdp_hw_rev,
+ MDSS_MDP_HW_REV_103))
+ map = 0xFA;
+ else
+ return;
+
+ writel(map, MDP_QOS_REMAPPER_CLASS_0);
+}
+
int mdp_dsi_video_config(struct msm_panel_info *pinfo,
struct fbcon_config *fb)
{
@@ -360,7 +381,7 @@
mdss_vbif_setup();
mdss_smp_setup(pinfo);
- writel(0x0E9, MDP_QOS_REMAPPER_CLASS_0);
+ mdss_qos_remapper_setup();
mdss_rgb_pipe_config(fb, pinfo, MDP_VP_0_RGB_0_BASE);
if (pinfo->lcdc.dual_pipe)
@@ -396,7 +417,7 @@
mdss_vbif_setup();
mdss_smp_setup(pinfo);
- writel(0x0E9, MDP_QOS_REMAPPER_CLASS_0);
+ mdss_qos_remapper_setup();
mdss_rgb_pipe_config(fb, pinfo, MDP_VP_0_RGB_0_BASE);
if (pinfo->lcdc.dual_pipe)
@@ -442,6 +463,8 @@
mdss_vbif_setup();
mdss_smp_setup(pinfo);
+ mdss_qos_remapper_setup();
+
mdss_rgb_pipe_config(fb, pinfo, MDP_VP_0_RGB_0_BASE);
mdss_layer_mixer_setup(fb, pinfo);