disp: msm: only set nolp command when panel in LP1/LP2 mode
DSI driver sends nolp commands when DSI connector power modes is set SDE_MODE_DPMS_ON or SDE_MODE_DPMS_OFF. This is invalid panel configuration. It should only send nolp commmand to panel when it is in LP1/LP2 mode. Change-Id: Ie94eaef6899d292fd20f42c1b7ef2c7a99178d13 Signed-off-by: Wenjun Zhang <wjzhan@codeaurora.org> Signed-off-by: Yuan Zhao <yzhao@codeaurora.org>
This commit is contained in:
parent
daf414d4cf
commit
f2873cd69f
@ -1060,10 +1060,22 @@ int dsi_display_set_power(struct drm_connector *connector,
|
||||
case SDE_MODE_DPMS_LP2:
|
||||
rc = dsi_panel_set_lp2(display->panel);
|
||||
break;
|
||||
default:
|
||||
rc = dsi_panel_set_nolp(display->panel);
|
||||
case SDE_MODE_DPMS_ON:
|
||||
if ((display->panel->power_mode == SDE_MODE_DPMS_LP1) ||
|
||||
(display->panel->power_mode == SDE_MODE_DPMS_LP2))
|
||||
rc = dsi_panel_set_nolp(display->panel);
|
||||
break;
|
||||
case SDE_MODE_DPMS_OFF:
|
||||
default:
|
||||
return rc;
|
||||
}
|
||||
|
||||
DSI_DEBUG("Power mode transition from %d to %d %s",
|
||||
display->panel->power_mode, power_mode,
|
||||
rc ? "failed" : "successful");
|
||||
if (!rc)
|
||||
display->panel->power_mode = power_mode;
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
@ -3306,6 +3306,7 @@ struct dsi_panel *dsi_panel_get(struct device *parent,
|
||||
if (rc)
|
||||
DSI_DEBUG("failed to parse esd config, rc=%d\n", rc);
|
||||
|
||||
panel->power_mode = SDE_MODE_DPMS_OFF;
|
||||
drm_panel_init(&panel->drm_panel);
|
||||
panel->drm_panel.dev = &panel->mipi_device.dev;
|
||||
panel->mipi_device.dev.of_node = of_node;
|
||||
|
@ -198,6 +198,7 @@ struct dsi_panel {
|
||||
bool sync_broadcast_en;
|
||||
|
||||
int panel_test_gpio;
|
||||
int power_mode;
|
||||
};
|
||||
|
||||
static inline bool dsi_panel_ulps_feature_enabled(struct dsi_panel *panel)
|
||||
|
Loading…
Reference in New Issue
Block a user