Loading drivers/video/msm/mdss/mdss_dsi.c +7 −2 Original line number Diff line number Diff line Loading @@ -1154,6 +1154,8 @@ static int __mdss_dsi_dfps_update_clks(struct mdss_panel_data *pdata, if (mdss_dsi_is_ctrl_clk_slave(ctrl_pdata)) { pr_debug("%s DFPS already updated.\n", __func__); ctrl_pdata->panel_data.panel_info.mipi.frame_rate = new_fps; return rc; } Loading Loading @@ -1182,7 +1184,7 @@ static int __mdss_dsi_dfps_update_clks(struct mdss_panel_data *pdata, return rc; } mdss_dsi_en_wait4dynamic_done(ctrl_pdata); rc = mdss_dsi_en_wait4dynamic_done(ctrl_pdata); MIPI_OUTP((ctrl_pdata->ctrl_base) + DSI_DYNAMIC_REFRESH_CTRL, 0x00); Loading @@ -1195,7 +1197,10 @@ static int __mdss_dsi_dfps_update_clks(struct mdss_panel_data *pdata, ctrl_pdata->pll_pixel_clk); clk_disable_unprepare(ctrl_pdata->pll_byte_clk); clk_disable_unprepare(ctrl_pdata->pll_pixel_clk); ctrl_pdata->panel_data.panel_info.mipi.frame_rate = new_fps; if (!rc) ctrl_pdata->panel_data.panel_info.mipi.frame_rate = new_fps; } else { ctrl_pdata->pclk_rate = pdata->panel_info.mipi.dsi_pclk_rate; Loading drivers/video/msm/mdss/mdss_dsi.h +1 −1 Original line number Diff line number Diff line Loading @@ -470,7 +470,7 @@ void mdss_dsi_ctrl_init(struct device *ctrl_dev, struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_cmd_mdp_busy(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_wait4video_done(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_en_wait4dynamic_done(struct mdss_dsi_ctrl_pdata *ctrl); int mdss_dsi_en_wait4dynamic_done(struct mdss_dsi_ctrl_pdata *ctrl); int mdss_dsi_cmdlist_commit(struct mdss_dsi_ctrl_pdata *ctrl, int from_mdp); void mdss_dsi_cmdlist_kickoff(int intf); int mdss_dsi_bta_status_check(struct mdss_dsi_ctrl_pdata *ctrl); Loading drivers/video/msm/mdss/mdss_dsi_host.c +8 −2 Original line number Diff line number Diff line Loading @@ -1903,10 +1903,12 @@ static int mdss_dsi_cmd_dma_rx(struct mdss_dsi_ctrl_pdata *ctrl, return rx_byte; } void mdss_dsi_en_wait4dynamic_done(struct mdss_dsi_ctrl_pdata *ctrl) int mdss_dsi_en_wait4dynamic_done(struct mdss_dsi_ctrl_pdata *ctrl) { unsigned long flag; u32 data; int rc = 0; /* DSI_INTL_CTRL */ data = MIPI_INP((ctrl->ctrl_base) + 0x0110); data &= DSI_INTR_TOTAL_MASK; Loading @@ -1921,13 +1923,17 @@ void mdss_dsi_en_wait4dynamic_done(struct mdss_dsi_ctrl_pdata *ctrl) (BIT(8) | BIT(0))); if (!wait_for_completion_timeout(&ctrl->dynamic_comp, msecs_to_jiffies(VSYNC_PERIOD * 4))) msecs_to_jiffies(VSYNC_PERIOD * 4))) { pr_err("Dynamic interrupt timedout\n"); rc = -EINVAL; } data = MIPI_INP((ctrl->ctrl_base) + 0x0110); data &= DSI_INTR_TOTAL_MASK; data &= ~DSI_INTR_DYNAMIC_REFRESH_MASK; MIPI_OUTP((ctrl->ctrl_base) + 0x0110, data); return rc; } void mdss_dsi_wait4video_done(struct mdss_dsi_ctrl_pdata *ctrl) Loading Loading
drivers/video/msm/mdss/mdss_dsi.c +7 −2 Original line number Diff line number Diff line Loading @@ -1154,6 +1154,8 @@ static int __mdss_dsi_dfps_update_clks(struct mdss_panel_data *pdata, if (mdss_dsi_is_ctrl_clk_slave(ctrl_pdata)) { pr_debug("%s DFPS already updated.\n", __func__); ctrl_pdata->panel_data.panel_info.mipi.frame_rate = new_fps; return rc; } Loading Loading @@ -1182,7 +1184,7 @@ static int __mdss_dsi_dfps_update_clks(struct mdss_panel_data *pdata, return rc; } mdss_dsi_en_wait4dynamic_done(ctrl_pdata); rc = mdss_dsi_en_wait4dynamic_done(ctrl_pdata); MIPI_OUTP((ctrl_pdata->ctrl_base) + DSI_DYNAMIC_REFRESH_CTRL, 0x00); Loading @@ -1195,7 +1197,10 @@ static int __mdss_dsi_dfps_update_clks(struct mdss_panel_data *pdata, ctrl_pdata->pll_pixel_clk); clk_disable_unprepare(ctrl_pdata->pll_byte_clk); clk_disable_unprepare(ctrl_pdata->pll_pixel_clk); ctrl_pdata->panel_data.panel_info.mipi.frame_rate = new_fps; if (!rc) ctrl_pdata->panel_data.panel_info.mipi.frame_rate = new_fps; } else { ctrl_pdata->pclk_rate = pdata->panel_info.mipi.dsi_pclk_rate; Loading
drivers/video/msm/mdss/mdss_dsi.h +1 −1 Original line number Diff line number Diff line Loading @@ -470,7 +470,7 @@ void mdss_dsi_ctrl_init(struct device *ctrl_dev, struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_cmd_mdp_busy(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_wait4video_done(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_en_wait4dynamic_done(struct mdss_dsi_ctrl_pdata *ctrl); int mdss_dsi_en_wait4dynamic_done(struct mdss_dsi_ctrl_pdata *ctrl); int mdss_dsi_cmdlist_commit(struct mdss_dsi_ctrl_pdata *ctrl, int from_mdp); void mdss_dsi_cmdlist_kickoff(int intf); int mdss_dsi_bta_status_check(struct mdss_dsi_ctrl_pdata *ctrl); Loading
drivers/video/msm/mdss/mdss_dsi_host.c +8 −2 Original line number Diff line number Diff line Loading @@ -1903,10 +1903,12 @@ static int mdss_dsi_cmd_dma_rx(struct mdss_dsi_ctrl_pdata *ctrl, return rx_byte; } void mdss_dsi_en_wait4dynamic_done(struct mdss_dsi_ctrl_pdata *ctrl) int mdss_dsi_en_wait4dynamic_done(struct mdss_dsi_ctrl_pdata *ctrl) { unsigned long flag; u32 data; int rc = 0; /* DSI_INTL_CTRL */ data = MIPI_INP((ctrl->ctrl_base) + 0x0110); data &= DSI_INTR_TOTAL_MASK; Loading @@ -1921,13 +1923,17 @@ void mdss_dsi_en_wait4dynamic_done(struct mdss_dsi_ctrl_pdata *ctrl) (BIT(8) | BIT(0))); if (!wait_for_completion_timeout(&ctrl->dynamic_comp, msecs_to_jiffies(VSYNC_PERIOD * 4))) msecs_to_jiffies(VSYNC_PERIOD * 4))) { pr_err("Dynamic interrupt timedout\n"); rc = -EINVAL; } data = MIPI_INP((ctrl->ctrl_base) + 0x0110); data &= DSI_INTR_TOTAL_MASK; data &= ~DSI_INTR_DYNAMIC_REFRESH_MASK; MIPI_OUTP((ctrl->ctrl_base) + 0x0110, data); return rc; } void mdss_dsi_wait4video_done(struct mdss_dsi_ctrl_pdata *ctrl) Loading