summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorPadmanabhan Komanduru <pkomandu@codeaurora.org>2014-08-20 20:57:03 +0530
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:32:58 -0700
commit0cdfe89e5bf72c9ffb90b922691ceee4574d05c4 (patch)
treee889fe7c048de9c0ad5689a7beb4bcc27c9e1c31 /drivers
parent3f98aca7868aa0553949934e29391f839cd73863 (diff)
msm: mdss: enable DSI timing register double buffering for 8916/8939
On 8916/8939, the DSI timing registers support double buffering. Enable the double buffering support and flush DSI registers once the timing parameters are configured. Change-Id: I61c0a84f0fc015541fc8e0197e1b9997ebb123aa Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/fbdev/msm/mdss_dsi_host.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/video/fbdev/msm/mdss_dsi_host.c b/drivers/video/fbdev/msm/mdss_dsi_host.c
index e7dcddbc5093..c81c236b965a 100644
--- a/drivers/video/fbdev/msm/mdss_dsi_host.c
+++ b/drivers/video/fbdev/msm/mdss_dsi_host.c
@@ -632,7 +632,7 @@ static void mdss_dsi_mode_setup(struct mdss_panel_data *pdata)
u32 hbp, hfp, vbp, vfp, hspw, vspw, width, height;
u32 ystride, bpp, data, dst_bpp;
u32 dummy_xres = 0, dummy_yres = 0;
- u32 hsync_period, vsync_period;
+ u32 hsync_period, vsync_period, ctrl_rev;
ctrl_pdata = container_of(pdata, struct mdss_dsi_ctrl_pdata,
panel_data);
@@ -670,6 +670,10 @@ static void mdss_dsi_mode_setup(struct mdss_panel_data *pdata)
mipi = &pdata->panel_info.mipi;
if (pdata->panel_info.type == MIPI_VIDEO_PANEL) {
+ ctrl_rev = MIPI_INP(ctrl_pdata->ctrl_base);
+ /* Enable DSI TIMING register double buffering for 8916/8939 */
+ if (ctrl_rev == MDSS_DSI_HW_REV_103_1)
+ MIPI_OUTP((ctrl_pdata->ctrl_base) + 0x1e8, 0x1);
MIPI_OUTP((ctrl_pdata->ctrl_base) + 0x24,
((hspw + hbp + width + dummy_xres) << 16 |
(hspw + hbp)));
@@ -683,7 +687,9 @@ static void mdss_dsi_mode_setup(struct mdss_panel_data *pdata)
MIPI_OUTP((ctrl_pdata->ctrl_base) + 0x30, (hspw << 16));
MIPI_OUTP((ctrl_pdata->ctrl_base) + 0x34, 0);
MIPI_OUTP((ctrl_pdata->ctrl_base) + 0x38, (vspw << 16));
-
+ /* Flush DSI TIMING registers for 8916/8939 */
+ if (ctrl_rev == MDSS_DSI_HW_REV_103_1)
+ MIPI_OUTP((ctrl_pdata->ctrl_base) + 0x1e4, 0x1);
} else { /* command mode */
if (mipi->dst_format == DSI_CMD_DST_FORMAT_RGB888)
bpp = 3;