|
@@ -535,21 +535,27 @@ static int _sde_connector_update_bl_scale(struct sde_connector *c_conn)
|
|
|
|
|
|
bl_config = &dsi_display->panel->bl_config;
|
|
bl_config = &dsi_display->panel->bl_config;
|
|
|
|
|
|
- if (c_conn->bl_scale > MAX_BL_SCALE_LEVEL)
|
|
|
|
- bl_config->bl_scale = MAX_BL_SCALE_LEVEL;
|
|
|
|
- else
|
|
|
|
- bl_config->bl_scale = c_conn->bl_scale;
|
|
|
|
|
|
+ if (dsi_display->panel->bl_config.bl_update ==
|
|
|
|
+ BL_UPDATE_DELAY_UNTIL_FIRST_FRAME &&
|
|
|
|
+ !c_conn->allow_bl_update) {
|
|
|
|
+ c_conn->unset_bl_level = bl_config->bl_level;
|
|
|
|
+ return 0;
|
|
|
|
+ }
|
|
|
|
|
|
- if (c_conn->bl_scale_sv > MAX_SV_BL_SCALE_LEVEL)
|
|
|
|
- bl_config->bl_scale_sv = MAX_SV_BL_SCALE_LEVEL;
|
|
|
|
- else
|
|
|
|
- bl_config->bl_scale_sv = c_conn->bl_scale_sv;
|
|
|
|
|
|
+ if (c_conn->unset_bl_level)
|
|
|
|
+ bl_config->bl_level = c_conn->unset_bl_level;
|
|
|
|
+
|
|
|
|
+ bl_config->bl_scale = c_conn->bl_scale > MAX_BL_SCALE_LEVEL ?
|
|
|
|
+ MAX_BL_SCALE_LEVEL : c_conn->bl_scale;
|
|
|
|
+ bl_config->bl_scale_sv = c_conn->bl_scale_sv > MAX_SV_BL_SCALE_LEVEL ?
|
|
|
|
+ MAX_SV_BL_SCALE_LEVEL : c_conn->bl_scale_sv;
|
|
|
|
|
|
SDE_DEBUG("bl_scale = %u, bl_scale_sv = %u, bl_level = %u\n",
|
|
SDE_DEBUG("bl_scale = %u, bl_scale_sv = %u, bl_level = %u\n",
|
|
bl_config->bl_scale, bl_config->bl_scale_sv,
|
|
bl_config->bl_scale, bl_config->bl_scale_sv,
|
|
bl_config->bl_level);
|
|
bl_config->bl_level);
|
|
rc = c_conn->ops.set_backlight(&c_conn->base,
|
|
rc = c_conn->ops.set_backlight(&c_conn->base,
|
|
dsi_display, bl_config->bl_level);
|
|
dsi_display, bl_config->bl_level);
|
|
|
|
+ c_conn->unset_bl_level = 0;
|
|
|
|
|
|
return rc;
|
|
return rc;
|
|
}
|
|
}
|