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: Aravind Venkateswaran <aravindh@codeaurora.org>
This commit is contained in:
Aravind Venkateswaran 2014-12-18 12:23:05 -08:00 committed by David Keitel
parent 18bf7ffbf4
commit b6cd64fd53

View file

@ -1194,7 +1194,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;
@ -1641,18 +1642,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) {