Loading drivers/video/msm/mdss/mdss_dsi_host.c +28 −2 Original line number Diff line number Diff line Loading @@ -1027,6 +1027,7 @@ static int mdss_dsi_read_status(struct mdss_dsi_ctrl_pdata *ctrl) int mdss_dsi_reg_status_check(struct mdss_dsi_ctrl_pdata *ctrl_pdata) { int ret = 0; struct mdss_dsi_ctrl_pdata *sctrl_pdata = NULL; if (ctrl_pdata == NULL) { pr_err("%s: Invalid input data\n", __func__); Loading @@ -1038,7 +1039,28 @@ int mdss_dsi_reg_status_check(struct mdss_dsi_ctrl_pdata *ctrl_pdata) mdss_dsi_clk_ctrl(ctrl_pdata, ctrl_pdata->dsi_clk_handle, MDSS_DSI_ALL_CLKS, MDSS_DSI_CLK_ON); sctrl_pdata = mdss_dsi_get_other_ctrl(ctrl_pdata); if (!mdss_dsi_sync_wait_enable(ctrl_pdata)) { ret = mdss_dsi_read_status(ctrl_pdata); } else { /* * Read commands to check ESD status are usually sent at * the same time to both the controllers. However, if * sync_wait is enabled, we need to ensure that the * dcs commands are first sent to the non-trigger * controller so that when the commands are triggered, * both controllers receive it at the same time. */ if (mdss_dsi_sync_wait_trigger(ctrl_pdata)) { if (sctrl_pdata) ret = mdss_dsi_read_status(sctrl_pdata); ret = mdss_dsi_read_status(ctrl_pdata); } else { ret = mdss_dsi_read_status(ctrl_pdata); if (sctrl_pdata) ret = mdss_dsi_read_status(sctrl_pdata); } } /* * mdss_dsi_read_status returns the number of bytes returned Loading @@ -1046,7 +1068,11 @@ int mdss_dsi_reg_status_check(struct mdss_dsi_ctrl_pdata *ctrl_pdata) * case returns zero. */ if (ret > 0) { if (!mdss_dsi_sync_wait_enable(ctrl_pdata) || mdss_dsi_sync_wait_trigger(ctrl_pdata)) ret = ctrl_pdata->check_read_status(ctrl_pdata); else if (sctrl_pdata) ret = ctrl_pdata->check_read_status(sctrl_pdata); } else { pr_err("%s: Read status register returned error\n", __func__); } Loading Loading
drivers/video/msm/mdss/mdss_dsi_host.c +28 −2 Original line number Diff line number Diff line Loading @@ -1027,6 +1027,7 @@ static int mdss_dsi_read_status(struct mdss_dsi_ctrl_pdata *ctrl) int mdss_dsi_reg_status_check(struct mdss_dsi_ctrl_pdata *ctrl_pdata) { int ret = 0; struct mdss_dsi_ctrl_pdata *sctrl_pdata = NULL; if (ctrl_pdata == NULL) { pr_err("%s: Invalid input data\n", __func__); Loading @@ -1038,7 +1039,28 @@ int mdss_dsi_reg_status_check(struct mdss_dsi_ctrl_pdata *ctrl_pdata) mdss_dsi_clk_ctrl(ctrl_pdata, ctrl_pdata->dsi_clk_handle, MDSS_DSI_ALL_CLKS, MDSS_DSI_CLK_ON); sctrl_pdata = mdss_dsi_get_other_ctrl(ctrl_pdata); if (!mdss_dsi_sync_wait_enable(ctrl_pdata)) { ret = mdss_dsi_read_status(ctrl_pdata); } else { /* * Read commands to check ESD status are usually sent at * the same time to both the controllers. However, if * sync_wait is enabled, we need to ensure that the * dcs commands are first sent to the non-trigger * controller so that when the commands are triggered, * both controllers receive it at the same time. */ if (mdss_dsi_sync_wait_trigger(ctrl_pdata)) { if (sctrl_pdata) ret = mdss_dsi_read_status(sctrl_pdata); ret = mdss_dsi_read_status(ctrl_pdata); } else { ret = mdss_dsi_read_status(ctrl_pdata); if (sctrl_pdata) ret = mdss_dsi_read_status(sctrl_pdata); } } /* * mdss_dsi_read_status returns the number of bytes returned Loading @@ -1046,7 +1068,11 @@ int mdss_dsi_reg_status_check(struct mdss_dsi_ctrl_pdata *ctrl_pdata) * case returns zero. */ if (ret > 0) { if (!mdss_dsi_sync_wait_enable(ctrl_pdata) || mdss_dsi_sync_wait_trigger(ctrl_pdata)) ret = ctrl_pdata->check_read_status(ctrl_pdata); else if (sctrl_pdata) ret = ctrl_pdata->check_read_status(sctrl_pdata); } else { pr_err("%s: Read status register returned error\n", __func__); } Loading