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))