Merge "app: aboot: Fix the compile error"
diff --git a/platform/msm8909/include/platform/iomap.h b/platform/msm8909/include/platform/iomap.h
index b179a40..4361afd 100644
--- a/platform/msm8909/include/platform/iomap.h
+++ b/platform/msm8909/include/platform/iomap.h
@@ -249,6 +249,8 @@
#define MDP_INTR_STATUS REG_MDP(0x00054)
#define MDP_CGC_EN REG_MDP(0x100)
+#define MDP_AUTOREFRESH_CONFIG_P REG_MDP(0x34C)
+#define MDP_SYNC_CONFIG_0 REG_MDP(0x300)
#define SOFT_RESET 0x118
#define CLK_CTRL 0x11C
diff --git a/platform/msm_shared/mdp3.c b/platform/msm_shared/mdp3.c
index 8c59bae..b9169c1 100644
--- a/platform/msm_shared/mdp3.c
+++ b/platform/msm_shared/mdp3.c
@@ -163,7 +163,12 @@
int ret = 0;
unsigned short pack_pattern = 0x21;
unsigned char ystride = 3;
+ unsigned int sync_cfg;
unsigned long long panic_config = 0;
+ const uint32_t vsync_hz = 19200000; /* Vsync Clock 19.2 HMz */
+ /* Auto refresh fps = Panel fps / frame num */
+ /* Auto refresh frame num = 60/10 = 6fps */
+ const uint32_t autorefresh_framenum = 10;
if (pinfo == NULL)
return ERR_INVALID_ARGS;
@@ -186,7 +191,8 @@
writel(0x03ffffff, MDP_INTR_ENABLE);
// ------------- programming MDP_DMA_P_CONFIG ---------------------
- writel(pack_pattern << 8 | 0x3f | (0 << 25)| (1 << 19) | (1 << 7) , MDP_DMA_P_CONFIG); // rgb888
+ writel(pack_pattern << 8 | 0x3f | (0 << 25)| (1 << 19) | (1 << 7) ,
+ MDP_DMA_P_CONFIG); /* rgb888 */
writel(0x00000000, MDP_DMA_P_OUT_XY);
writel(pinfo->yres << 16 | pinfo->xres, MDP_DMA_P_SIZE);
writel((uint32_t)fb->base, MDP_DMA_P_BUF_ADDR);
@@ -195,6 +201,14 @@
writel(0x10, MDP_DSI_CMD_MODE_ID_MAP);
writel(0x11, MDP_DSI_CMD_MODE_TRIGGER_EN);
+ /* Enable Auto refresh */
+ sync_cfg = (pinfo->yres - 1) << 21;
+ sync_cfg |= BIT(19);
+
+ sync_cfg |= vsync_hz / (pinfo->yres * 60);
+ writel(sync_cfg, MDP_SYNC_CONFIG_0);
+ writel((BIT(28) | autorefresh_framenum),
+ MDP_AUTOREFRESH_CONFIG_P);
mdelay(10);
return ret;
@@ -227,6 +241,9 @@
*/
mdelay(10);
}
+ /* Disable Auto refresh */
+ if (readl(MDP_AUTOREFRESH_CONFIG_P))
+ writel(0, MDP_AUTOREFRESH_CONFIG_P);
writel(0x00000000, MDP_INTR_ENABLE);
writel(0x01ffffff, MDP_INTR_CLEAR);
return NO_ERROR;