瀏覽代碼

disp: msm: dsi: defer clk setting when doing const_fps RFI

When doing const fps RFI, dynamic refresh clock was done
in the next frame kick off, so as the orginal RFI work flow,
the clock setting also should be done here.

Change-Id: Ic3e6a35dc7264df028f5d848ac6f1eea04a95126
Signed-off-by: Yuan Zhao <[email protected]>
Signed-off-by: Amine Najahi <[email protected]>
Yuan Zhao 4 年之前
父節點
當前提交
484387e860
共有 2 個文件被更改,包括 4 次插入2 次删除
  1. 1 2
      msm/dsi/dsi_display.c
  2. 3 0
      msm/dsi/dsi_drm.c

+ 1 - 2
msm/dsi/dsi_display.c

@@ -4529,7 +4529,7 @@ static int _dsi_display_dyn_update_clks(struct dsi_display *display,
 	 */
 	if ((ctrl_version >= DSI_CTRL_VERSION_2_5) &&
 			(dyn_clk_caps->maintain_const_fps))
-		goto defer_dfps_wait;
+		return 0;
 
 	/* wait for dynamic refresh done */
 	display_for_each_ctrl(i, display) {
@@ -4549,7 +4549,6 @@ static int _dsi_display_dyn_update_clks(struct dsi_display *display,
 		dsi_phy_dynamic_refresh_clear(ctrl->phy);
 	}
 
-defer_dfps_wait:
 	if (rc)
 		DSI_ERR("could not switch back to src clks %d\n", rc);
 

+ 3 - 0
msm/dsi/dsi_drm.c

@@ -1122,6 +1122,9 @@ int dsi_conn_post_kickoff(struct drm_connector *connector,
 						ctrl->ctrl);
 				if (rc)
 					DSI_ERR("wait4dfps refresh failed\n");
+
+				dsi_phy_dynamic_refresh_clear(ctrl->phy);
+				dsi_clk_disable_unprepare(&display->clock_info.pll_clks);
 			}
 		}