|
@@ -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;
|