浏览代码

disp: msm: sde: set top left coordinates for noise and attenuation layers

Noise and attenuation layers are full screen layers. Top left coordinates
are not cleared in some use cases when same blend stage is assigned to
noise and attenuation layers. This change sets top left coordinates of noise
and attenuation layers.

Change-Id: I6af7a38d011d0bb642dc3d8a4aff338075524906
Signed-off-by: Anjaneya Prasad Musunuri <[email protected]>
Anjaneya Prasad Musunuri 3 年之前
父节点
当前提交
0a214e5d4a
共有 1 个文件被更改,包括 4 次插入0 次删除
  1. 4 0
      msm/sde/sde_hw_lm.c

+ 4 - 0
msm/sde/sde_hw_lm.c

@@ -337,6 +337,8 @@ static int sde_hw_lm_setup_noise_layer(struct sde_hw_mixer *ctx,
 	SDE_REG_WRITE(c, LM_BLEND0_CONST_ALPHA + stage_off, alpha);
 	SDE_REG_WRITE(c, LM_BLEND0_CONST_ALPHA + stage_off, alpha);
 	val = ctx->cfg.out_width | (ctx->cfg.out_height << 16);
 	val = ctx->cfg.out_width | (ctx->cfg.out_height << 16);
 	SDE_REG_WRITE(c, LM_FG_COLOR_FILL_SIZE + stage_off, val);
 	SDE_REG_WRITE(c, LM_FG_COLOR_FILL_SIZE + stage_off, val);
+	/* partial update is not supported in noise layer */
+	SDE_REG_WRITE(c, LM_FG_COLOR_FILL_XY + stage_off, 0);
 	val = SDE_REG_READ(c, LM_OP_MODE);
 	val = SDE_REG_READ(c, LM_OP_MODE);
 	val = (1 << cfg->noise_blend_stage) | val;
 	val = (1 << cfg->noise_blend_stage) | val;
 	SDE_REG_WRITE(c, LM_OP_MODE, val);
 	SDE_REG_WRITE(c, LM_OP_MODE, val);
@@ -359,6 +361,8 @@ static int sde_hw_lm_setup_noise_layer(struct sde_hw_mixer *ctx,
 	SDE_REG_WRITE(c, LM_OP_MODE, val);
 	SDE_REG_WRITE(c, LM_OP_MODE, val);
 	val = ctx->cfg.out_width | (ctx->cfg.out_height << 16);
 	val = ctx->cfg.out_width | (ctx->cfg.out_height << 16);
 	SDE_REG_WRITE(c, LM_FG_COLOR_FILL_SIZE + stage_off, val);
 	SDE_REG_WRITE(c, LM_FG_COLOR_FILL_SIZE + stage_off, val);
+	/* partial update is not supported in noise layer */
+	SDE_REG_WRITE(c, LM_FG_COLOR_FILL_XY + stage_off, 0);
 
 
 	val = 1;
 	val = 1;
 	if (mixer->right_mixer)
 	if (mixer->right_mixer)