diff options
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dsi.c | 1 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dsi_host.c | 11 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dsi_panel.c | 2 |
3 files changed, 12 insertions, 2 deletions
diff --git a/drivers/video/fbdev/msm/mdss_dsi.c b/drivers/video/fbdev/msm/mdss_dsi.c index 93d40c09a266..09c810b52ca2 100644 --- a/drivers/video/fbdev/msm/mdss_dsi.c +++ b/drivers/video/fbdev/msm/mdss_dsi.c @@ -303,6 +303,7 @@ static int mdss_dsi_on(struct mdss_panel_data *pdata) MIPI_OUTP((ctrl_pdata->ctrl_base) + 0x5C, data); } + mdss_dsi_sw_reset(pdata); mdss_dsi_host_init(mipi, pdata); if (mipi->force_clk_lane_hs) { diff --git a/drivers/video/fbdev/msm/mdss_dsi_host.c b/drivers/video/fbdev/msm/mdss_dsi_host.c index 8d88bd9e6416..84dbffadbad1 100644 --- a/drivers/video/fbdev/msm/mdss_dsi_host.c +++ b/drivers/video/fbdev/msm/mdss_dsi_host.c @@ -813,6 +813,7 @@ void mipi_set_tx_power_mode(int mode, struct mdss_panel_data *pdata) void mdss_dsi_sw_reset(struct mdss_panel_data *pdata) { struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; + u32 dsi_ctrl; ctrl_pdata = container_of(pdata, struct mdss_dsi_ctrl_pdata, panel_data); @@ -821,6 +822,16 @@ void mdss_dsi_sw_reset(struct mdss_panel_data *pdata) return; } + dsi_ctrl = MIPI_INP((ctrl_pdata->ctrl_base) + 0x0004); + dsi_ctrl &= ~0x01; + MIPI_OUTP((ctrl_pdata->ctrl_base) + 0x0004, dsi_ctrl); + wmb(); + + /* turn esc, byte, dsi, pclk, sclk, hclk on */ + MIPI_OUTP((ctrl_pdata->ctrl_base) + 0x11c, + 0x23f); /* DSI_CLK_CTRL */ + wmb(); + MIPI_OUTP((ctrl_pdata->ctrl_base) + 0x118, 0x01); wmb(); MIPI_OUTP((ctrl_pdata->ctrl_base) + 0x118, 0x00); diff --git a/drivers/video/fbdev/msm/mdss_dsi_panel.c b/drivers/video/fbdev/msm/mdss_dsi_panel.c index 0e18e0fe0c42..4c813e7b8cbf 100644 --- a/drivers/video/fbdev/msm/mdss_dsi_panel.c +++ b/drivers/video/fbdev/msm/mdss_dsi_panel.c @@ -106,8 +106,6 @@ static int mdss_dsi_panel_on(struct mdss_panel_data *pdata) pr_debug("%s:%d, debug info (mode) : %d\n", __func__, __LINE__, mipi->mode); - mdss_dsi_sw_reset(pdata); - if (mipi->mode == DSI_VIDEO_MODE) { mdss_dsi_cmds_tx(pdata, &dsi_panel_tx_buf, dsi_panel_on_cmds, num_of_on_cmds); |
