Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2ccdc7a1 authored by Aravind Venkateswaran's avatar Aravind Venkateswaran Committed by Gerrit - the friendly Code Review server
Browse files

msm: mdss: dsi: enter ULPS after blanking the panel during suspend



In the current implementation, when the display is blanked, DSI phy
is turned off prior to turning off the supply to the panel. This results
in an abrupt transition on the DSI lanes from LP11 to LP00 which is in
violation of the MIPI spec, and can potentially cause panels to go to a
bad state. Fix this by requesting ULPS entry when display is blanked.

Change-Id: I5c3e422cfdd9a398939a7277cd78ed7adb16d76f
Signed-off-by: default avatarAravind Venkateswaran <aravindh@codeaurora.org>
parent c84f1f0f
Loading
Loading
Loading
Loading
+3 −13
Original line number Diff line number Diff line
@@ -965,7 +965,8 @@ static int mdss_dsi_ulps_config(struct mdss_dsi_ctrl_pdata *ctrl,
	mipi = &pinfo->mipi;

	if (!mdss_dsi_ulps_feature_enabled(pdata) &&
		!pinfo->ulps_suspend_enabled) {
		!pinfo->ulps_suspend_enabled &&
		(pinfo->blank_state != MDSS_PANEL_BLANK_BLANK)) {
		pr_debug("%s: ULPS feature not supported. enable=%d\n",
			__func__, enable);
		return -ENOTSUPP;
@@ -1381,18 +1382,7 @@ static int mdss_dsi_clk_ctrl_sub(struct mdss_dsi_ctrl_pdata *ctrl,
		}
	} else {
		if (clk_type & DSI_LINK_CLKS) {
			/*
			 * If ULPS feature is enabled, enter ULPS first.
			 * If ULPS during suspend is not enabled, no need
			 * to enable ULPS when turning off the clocks
			 * while blanking the panel.
			 */
			if (((mdss_dsi_ulps_feature_enabled(pdata)) &&
				(pdata->panel_info.blank_state !=
				 MDSS_PANEL_BLANK_BLANK)) ||
				(pdata->panel_info.ulps_suspend_enabled))
			mdss_dsi_ulps_config(ctrl, 1);

			mdss_dsi_link_clk_stop(ctrl);
		}
		if (clk_type & DSI_BUS_CLKS) {