diff options
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dsi.c | 7 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dsi.h | 2 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/msm_mdss_io_8974.c | 19 |
3 files changed, 18 insertions, 10 deletions
diff --git a/drivers/video/fbdev/msm/mdss_dsi.c b/drivers/video/fbdev/msm/mdss_dsi.c index 83a5f5bc64a6..2ec588eb35e4 100644 --- a/drivers/video/fbdev/msm/mdss_dsi.c +++ b/drivers/video/fbdev/msm/mdss_dsi.c @@ -659,7 +659,7 @@ int dsi_panel_device_register(struct platform_device *pdev, return rc; } - if ((dsi_pclk_rate < 3300000) || (dsi_pclk_rate > 103300000)) + if ((dsi_pclk_rate < 3300000) || (dsi_pclk_rate > 250000000)) dsi_pclk_rate = 35000000; mipi->dsi_pclk_rate = dsi_pclk_rate; @@ -790,6 +790,11 @@ int dsi_panel_device_register(struct platform_device *pdev, ctrl_pdata->on = panel_data->on; ctrl_pdata->off = panel_data->off; + ctrl_pdata->pclk_rate = dsi_pclk_rate; + ctrl_pdata->byte_clk_rate = panel_data->panel_info.clk_rate / 8; + pr_debug("%s: pclk=%d, bclk=%d\n", __func__, + ctrl_pdata->pclk_rate, ctrl_pdata->byte_clk_rate); + pr_debug("%s: Panal data initialized\n", __func__); return 0; } diff --git a/drivers/video/fbdev/msm/mdss_dsi.h b/drivers/video/fbdev/msm/mdss_dsi.h index 06c2952686c1..4b920a6dc2e9 100644 --- a/drivers/video/fbdev/msm/mdss_dsi.h +++ b/drivers/video/fbdev/msm/mdss_dsi.h @@ -286,6 +286,8 @@ struct mdss_dsi_ctrl_pdata { struct dsi_panel_cmds_list *on_cmds; struct dsi_panel_cmds_list *off_cmds; struct dsi_drv_cm_data shared_pdata; + u32 pclk_rate; + u32 byte_clk_rate; }; int dsi_panel_device_register(struct platform_device *pdev, diff --git a/drivers/video/fbdev/msm/msm_mdss_io_8974.c b/drivers/video/fbdev/msm/msm_mdss_io_8974.c index 3b6fc382fbe6..2b07e43851cd 100644 --- a/drivers/video/fbdev/msm/msm_mdss_io_8974.c +++ b/drivers/video/fbdev/msm/msm_mdss_io_8974.c @@ -173,6 +173,7 @@ void mdss_dsi_unprepare_clocks(struct mdss_dsi_ctrl_pdata *ctrl_pdata) void mdss_dsi_clk_enable(struct mdss_panel_data *pdata) { struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; + u32 esc_clk_rate = 19200000; ctrl_pdata = container_of(pdata, struct mdss_dsi_ctrl_pdata, panel_data); @@ -186,17 +187,17 @@ void mdss_dsi_clk_enable(struct mdss_panel_data *pdata) return; } - if (clk_set_rate(ctrl_pdata->esc_clk, 19200000) < 0) - pr_err("%s: dsi_esc_clk - clk_set_rate failed\n", - __func__); + pr_debug("%s: Setting clock rates: pclk=%d, byteclk=%d escclk=%d\n", + __func__, ctrl_pdata->pclk_rate, + ctrl_pdata->byte_clk_rate, esc_clk_rate); + if (clk_set_rate(ctrl_pdata->esc_clk, esc_clk_rate) < 0) + pr_err("%s: dsi_esc_clk - clk_set_rate failed\n", __func__); - if (clk_set_rate(ctrl_pdata->byte_clk, 53000000) < 0) - pr_err("%s: dsi_byte_clk - clk_set_rate failed\n", - __func__); + if (clk_set_rate(ctrl_pdata->byte_clk, ctrl_pdata->byte_clk_rate) < 0) + pr_err("%s: dsi_byte_clk - clk_set_rate failed\n", __func__); - if (clk_set_rate(ctrl_pdata->pixel_clk, 70000000) < 0) - pr_err("%s: dsi_pixel_clk - clk_set_rate failed\n", - __func__); + if (clk_set_rate(ctrl_pdata->pixel_clk, ctrl_pdata->pclk_rate) < 0) + pr_err("%s: dsi_pixel_clk - clk_set_rate failed\n", __func__); clk_enable(ctrl_pdata->esc_clk); clk_enable(ctrl_pdata->byte_clk); |
