disp: msm: dsi: disallow backlight update during panel mode switch
DSI controller and clock will be disabled/enabled during panel mode switch, so disallow backlight update during panel mode switch to avoiding DSI exception. Change-Id: I37e2f3c9aa929555593ffb53950521150ee7698f Signed-off-by: Lei Chen <chenlei@codeaurora.org> Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
This commit is contained in:

gecommit door
Satya Rama Aditya Pinapala

bovenliggende
7d33aeb87e
commit
3842597275
@@ -94,8 +94,7 @@ static int sde_backlight_device_update_status(struct backlight_device *bd)
|
||||
if (!bl_lvl && brightness)
|
||||
bl_lvl = 1;
|
||||
|
||||
if (display->panel->bl_config.bl_update ==
|
||||
BL_UPDATE_DELAY_UNTIL_FIRST_FRAME && !c_conn->allow_bl_update) {
|
||||
if (!c_conn->allow_bl_update) {
|
||||
c_conn->unset_bl_level = bl_lvl;
|
||||
return 0;
|
||||
}
|
||||
@@ -532,9 +531,7 @@ static int _sde_connector_update_bl_scale(struct sde_connector *c_conn)
|
||||
|
||||
bl_config = &dsi_display->panel->bl_config;
|
||||
|
||||
if (dsi_display->panel->bl_config.bl_update ==
|
||||
BL_UPDATE_DELAY_UNTIL_FIRST_FRAME &&
|
||||
!c_conn->allow_bl_update) {
|
||||
if (!c_conn->allow_bl_update) {
|
||||
c_conn->unset_bl_level = bl_config->bl_level;
|
||||
return 0;
|
||||
}
|
||||
@@ -797,21 +794,29 @@ void sde_connector_helper_bridge_disable(struct drm_connector *connector)
|
||||
{
|
||||
int rc;
|
||||
struct sde_connector *c_conn = NULL;
|
||||
struct dsi_display *display;
|
||||
bool poms_pending = false;
|
||||
|
||||
if (!connector)
|
||||
return;
|
||||
|
||||
rc = _sde_connector_update_dirty_properties(connector);
|
||||
if (rc) {
|
||||
SDE_ERROR("conn %d final pre kickoff failed %d\n",
|
||||
connector->base.id, rc);
|
||||
SDE_EVT32(connector->base.id, SDE_EVTLOG_ERROR);
|
||||
c_conn = to_sde_connector(connector);
|
||||
if (c_conn->connector_type == DRM_MODE_CONNECTOR_DSI) {
|
||||
display = (struct dsi_display *) c_conn->display;
|
||||
poms_pending = display->poms_pending;
|
||||
}
|
||||
|
||||
if (!poms_pending) {
|
||||
rc = _sde_connector_update_dirty_properties(connector);
|
||||
if (rc) {
|
||||
SDE_ERROR("conn %d final pre kickoff failed %d\n",
|
||||
connector->base.id, rc);
|
||||
SDE_EVT32(connector->base.id, SDE_EVTLOG_ERROR);
|
||||
}
|
||||
}
|
||||
/* Disable ESD thread */
|
||||
sde_connector_schedule_status_work(connector, false);
|
||||
|
||||
c_conn = to_sde_connector(connector);
|
||||
if (c_conn->bl_device) {
|
||||
c_conn->bl_device->props.power = FB_BLANK_POWERDOWN;
|
||||
c_conn->bl_device->props.state |= BL_CORE_FBBLANK;
|
||||
|
Verwijs in nieuw issue
Block a user