浏览代码

Merge "disp: msm: sde: delay backlight update until the first commit"

qctecmdr 6 年之前
父节点
当前提交
f65de277fb
共有 1 个文件被更改,包括 14 次插入8 次删除
  1. 14 8
      msm/sde/sde_connector.c

+ 14 - 8
msm/sde/sde_connector.c

@@ -535,21 +535,27 @@ static int _sde_connector_update_bl_scale(struct sde_connector *c_conn)
 
 	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",
 		bl_config->bl_scale, bl_config->bl_scale_sv,
 		bl_config->bl_level);
 	rc = c_conn->ops.set_backlight(&c_conn->base,
 			dsi_display, bl_config->bl_level);
+	c_conn->unset_bl_level = 0;
 
 	return rc;
 }