msm_shared: mdp: fix 8084 under-run issues

MDP5 has various versions where each has different HW configuration.
Current vbif setup implementation is carrying invalid configuration
for apq8084 which leads to under-runs issues. Fix this issue by
removing targets where old vbif settings are not needed.

Change-Id: Icec5e09804947c984c1624988cfd61e1c7047d89
diff --git a/platform/msm_shared/include/mdp5.h b/platform/msm_shared/include/mdp5.h
index 1970cbb..51a14e4 100644
--- a/platform/msm_shared/include/mdp5.h
+++ b/platform/msm_shared/include/mdp5.h
@@ -64,10 +64,27 @@
 #define LAYER_3_BLEND_OP                        0xB0
 #define LAYER_3_BLEND0_FG_ALPHA                 0xB4
 
+/* HW Revisions for different MDSS targets */
+#define MDSS_GET_MAJOR(rev)         ((rev) >> 28)
+#define MDSS_GET_MINOR(rev)         (((rev) >> 16) & 0xFFF)
+#define MDSS_GET_STEP(rev)          ((rev) & 0xFFFF)
+#define MDSS_GET_MAJOR_MINOR(rev)   ((rev) >> 16)
 
-#define MDSS_MDP_HW_REV_100                     0x10000000
-#define MDSS_MDP_HW_REV_101                     0x10010000
-#define MDSS_MDP_HW_REV_102                     0x10020000
+#define MDSS_IS_MAJOR_MINOR_MATCHING(a, b) \
+        (MDSS_GET_MAJOR_MINOR((a)) == MDSS_GET_MAJOR_MINOR((b)))
+
+#define MDSS_MDP_REV(major, minor, step) \
+        ((((major) & 0x000F) << 28) |    \
+         (((minor) & 0x0FFF) << 16) |    \
+         ((step)   & 0xFFFF))
+
+#define MDSS_MDP_HW_REV_100    MDSS_MDP_REV(1, 0, 0) /* 8974 v1.0 */
+#define MDSS_MDP_HW_REV_101    MDSS_MDP_REV(1, 1, 0) /* 8x26 v1.0 */
+#define MDSS_MDP_HW_REV_101_1  MDSS_MDP_REV(1, 1, 1) /* 8x26 v2.0, 8926 v1.0 */
+#define MDSS_MDP_HW_REV_102    MDSS_MDP_REV(1, 2, 0) /* 8974 v2.0 */
+#define MDSS_MDP_HW_REV_102_1  MDSS_MDP_REV(1, 2, 1) /* 8974 v3.0 (Pro) */
+#define MDSS_MDP_HW_REV_103    MDSS_MDP_REV(1, 3, 0) /* 8084 v1.0 */
+#define MDSS_MDP_HW_REV_200    MDSS_MDP_REV(2, 0, 0) /* 8092 v1.0 */
 
 #define MDP_HW_REV                              REG_MDP(0x0100)
 #define MDP_INTR_EN                             REG_MDP(0x0110)
diff --git a/platform/msm_shared/mdp5.c b/platform/msm_shared/mdp5.c
index e1b3f77..15c5e9c 100644
--- a/platform/msm_shared/mdp5.c
+++ b/platform/msm_shared/mdp5.c
@@ -124,12 +124,17 @@
 	 * successfully unlocked. Ignore TZ return value till it's fixed */
 	if (!access_secure || 1) {
 		dprintf(SPEW, "MDSS VBIF registers unlocked by TZ.\n");
-		/* Force VBIF Clocks on  */
-		writel(0x1, VBIF_VBIF_DDR_FORCE_CLK_ON);
 
-		if (mdp_hw_rev == MDSS_MDP_HW_REV_100
-			|| mdp_hw_rev >= MDSS_MDP_HW_REV_102) {
-			/* Configure DDR burst length */
+		/* Force VBIF Clocks on */
+		if (mdp_hw_rev < MDSS_MDP_HW_REV_103)
+			writel(0x1, VBIF_VBIF_DDR_FORCE_CLK_ON);
+
+		/*
+		 * Following configuration is needed because on some versions,
+		 * recommended reset values are not stored.
+		 */
+		if (MDSS_IS_MAJOR_MINOR_MATCHING(mdp_hw_rev,
+			MDSS_MDP_HW_REV_100)) {
 			writel(0x00000707, VBIF_VBIF_DDR_OUT_MAX_BURST);
 			writel(0x00000030, VBIF_VBIF_DDR_ARB_CTRL );
 			writel(0x00000001, VBIF_VBIF_DDR_RND_RBN_QOS_ARB);
@@ -137,7 +142,8 @@
 			writel(0x0FFF0FFF, VBIF_VBIF_DDR_OUT_AX_AOOO);
 			writel(0x22222222, VBIF_VBIF_DDR_AXI_AMEMTYPE_CONF0);
 			writel(0x00002222, VBIF_VBIF_DDR_AXI_AMEMTYPE_CONF1);
-		} else if (mdp_hw_rev >= MDSS_MDP_HW_REV_101) {
+		} else if (MDSS_IS_MAJOR_MINOR_MATCHING(mdp_hw_rev,
+			MDSS_MDP_HW_REV_101)) {
 			writel(0x00000707, VBIF_VBIF_DDR_OUT_MAX_BURST);
 			writel(0x00000003, VBIF_VBIF_DDR_ARB_CTRL);
 		}