platform: msm_shared: Update MDP5 for msm8916 support
msm8916 supports MDSS 1.6 version. This change updates MDP5
with the new MDSS_MDP version checks and adds display files for
compilation.
Change-Id: I5fbd9b7140c086c72649c667022ba54ad709f8e8
diff --git a/platform/msm_shared/mdp5.c b/platform/msm_shared/mdp5.c
index e1106bf..ad18d8b 100644
--- a/platform/msm_shared/mdp5.c
+++ b/platform/msm_shared/mdp5.c
@@ -59,7 +59,9 @@
uint32_t mdss_mdp_intf_off;
uint32_t mdss_mdp_rev = readl(MDP_HW_REV);
- if (mdss_mdp_rev >= MDSS_MDP_HW_REV_102)
+ if (mdss_mdp_rev == MDSS_MDP_HW_REV_106)
+ mdss_mdp_intf_off = 0x59100;
+ else if (mdss_mdp_rev >= MDSS_MDP_HW_REV_102)
mdss_mdp_intf_off = 0;
else
mdss_mdp_intf_off = 0xEC00;
@@ -122,13 +124,12 @@
int access_secure = restore_secure_cfg(SECURE_DEVICE_MDSS);
uint32_t mdp_hw_rev = readl(MDP_HW_REV);
- /* TZ returns an errornous ret val even if the VBIF registers were
- * successfully unlocked. Ignore TZ return value till it's fixed */
- if (!access_secure || 1) {
+ if (!access_secure) {
dprintf(SPEW, "MDSS VBIF registers unlocked by TZ.\n");
- /* Force VBIF Clocks on */
- if (mdp_hw_rev < MDSS_MDP_HW_REV_103)
+ /* Force VBIF Clocks on, not needed for 8084 */
+ if ((mdp_hw_rev < MDSS_MDP_HW_REV_103) ||
+ (mdp_hw_rev == MDSS_MDP_HW_REV_106))
writel(0x1, VBIF_VBIF_DDR_FORCE_CLK_ON);
/*
@@ -145,9 +146,11 @@
writel(0x22222222, VBIF_VBIF_DDR_AXI_AMEMTYPE_CONF0);
writel(0x00002222, VBIF_VBIF_DDR_AXI_AMEMTYPE_CONF1);
} else if (MDSS_IS_MAJOR_MINOR_MATCHING(mdp_hw_rev,
- MDSS_MDP_HW_REV_101)) {
+ MDSS_MDP_HW_REV_101) ||
+ MDSS_IS_MAJOR_MINOR_MATCHING(mdp_hw_rev,
+ MDSS_MDP_HW_REV_106)) {
writel(0x00000707, VBIF_VBIF_DDR_OUT_MAX_BURST);
- writel(0x00000003, VBIF_VBIF_DDR_ARB_CTRL);
+ writel(0x00000003, VBIF_VBIF_DDR_RND_RBN_QOS_ARB);
}
}
}
@@ -189,7 +192,10 @@
uint32_t smp_cnt, smp_size = 4096, fixed_smp_cnt = 0;
uint32_t mdss_mdp_rev = readl(MDP_HW_REV);
- if ((mdss_mdp_rev >= MDSS_MDP_HW_REV_103) &&
+ if (mdss_mdp_rev == MDSS_MDP_HW_REV_106) {
+ /* 8Kb per SMP on 8916 */
+ smp_size = 8192;
+ } else if ((mdss_mdp_rev >= MDSS_MDP_HW_REV_103) &&
(mdss_mdp_rev < MDSS_MDP_HW_REV_200)) {
smp_size = 8192;
fixed_smp_cnt = 2;
@@ -201,7 +207,8 @@
else
right_sspp_client_id = 0x11; /* 17 */
- if (MDSS_IS_MAJOR_MINOR_MATCHING(mdss_mdp_rev, MDSS_MDP_HW_REV_101))
+ if (MDSS_IS_MAJOR_MINOR_MATCHING(mdss_mdp_rev, MDSS_MDP_HW_REV_101) ||
+ MDSS_IS_MAJOR_MINOR_MATCHING(mdss_mdp_rev, MDSS_MDP_HW_REV_106))
left_sspp_client_id = (pinfo->use_dma_pipe) ? 0x4 : 0x07; /* 4 or 7 */
else
left_sspp_client_id = (pinfo->use_dma_pipe) ? 0xA : 0x10; /* 10 or 16 */
@@ -384,7 +391,9 @@
MDSS_MDP_HW_REV_102))
map = 0xE9;
else if (MDSS_IS_MAJOR_MINOR_MATCHING(mdp_hw_rev,
- MDSS_MDP_HW_REV_101))
+ MDSS_MDP_HW_REV_101) ||
+ MDSS_IS_MAJOR_MINOR_MATCHING(mdp_hw_rev,
+ MDSS_MDP_HW_REV_106))
map = 0xA5;
else if (MDSS_IS_MAJOR_MINOR_MATCHING(mdp_hw_rev,
MDSS_MDP_HW_REV_103))