From 84b15bc68b7aa2e38dfcda285d08b48f1000c0d3 Mon Sep 17 00:00:00 2001 From: Sandeep Panda Date: Mon, 17 Aug 2015 14:50:46 +0530 Subject: [PATCH] msm: mdss: check for change in panel timing parameters Add support to check for change in panel video timing parameters when DSI controller is used for a pluggable interface. Change-Id: Ia7ff6b3adf778283c1fc893f2c2eb4335ae4dd68 Signed-off-by: Sandeep Panda --- drivers/video/fbdev/msm/mdss_dsi.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/video/fbdev/msm/mdss_dsi.c b/drivers/video/fbdev/msm/mdss_dsi.c index 1bd9da7eaad1..7f7a3c097408 100644 --- a/drivers/video/fbdev/msm/mdss_dsi.c +++ b/drivers/video/fbdev/msm/mdss_dsi.c @@ -2010,6 +2010,30 @@ error_byte: return rc; } +static int mdss_dsi_check_params(struct mdss_dsi_ctrl_pdata *ctrl, void *arg) +{ + struct mdss_panel_info *reconf_pinfo, *pinfo; + int rc = 0; + + if (!ctrl || !arg) + return 0; + + pinfo = &ctrl->panel_data.panel_info; + if (!pinfo->is_pluggable) + return 0; + + reconf_pinfo = (struct mdss_panel_info *)arg; + + pr_debug("%s: reconfig xres: %d yres: %d, current xres: %d yres: %d\n", + __func__, reconf_pinfo->xres, reconf_pinfo->yres, + pinfo->xres, pinfo->yres); + if ((reconf_pinfo->xres != pinfo->xres) || + (reconf_pinfo->yres != pinfo->yres)) + rc = 1; + + return rc; +} + static int mdss_dsi_dfps_config(struct mdss_panel_data *pdata, int new_fps) { int rc = 0; @@ -2270,6 +2294,8 @@ static int mdss_dsi_event_handler(struct mdss_panel_data *pdata, switch (event) { case MDSS_EVENT_CHECK_PARAMS: pr_debug("%s:Entered Case MDSS_EVENT_CHECK_PARAMS\n", __func__); + if (mdss_dsi_check_params(ctrl_pdata, arg)) + rc = 1; ctrl_pdata->refresh_clk_rate = true; break; case MDSS_EVENT_LINK_READY: