소스 검색

disp: msm: sde: fix plane detach from ctl path

During display disable, ensure source pipes are detached
from control path in the disable commit itself. Otherwise,
if other display acquire these pipes immediately it can hang
as these pipes are still staged on current display ctl path.

Change-Id: Idc376051908676c74bc26394372a92316a674e3b
Signed-off-by: Prabhanjan Kandula <[email protected]>
Prabhanjan Kandula 1 년 전
부모
커밋
3817317773
1개의 변경된 파일3개의 추가작업 그리고 2개의 파일을 삭제
  1. 3 2
      msm/sde/sde_hw_ctl.c

+ 3 - 2
msm/sde/sde_hw_ctl.c

@@ -994,11 +994,13 @@ static void sde_hw_ctl_clear_all_blendstages(struct sde_hw_ctl *ctx)
 		return;
 
 	c = &ctx->hw;
+	SDE_REG_WRITE(c, CTL_FETCH_PIPE_ACTIVE, 0);
+
 	for (i = 0; i < ctx->mixer_count; i++) {
 		int mixer_id = ctx->mixer_hw_caps[i].id;
 
 		if (mixer_id >= LM_DCWB_DUMMY_0)
-			return;
+			break;
 
 		SDE_REG_WRITE(c, CTL_LAYER(mixer_id), 0);
 		SDE_REG_WRITE(c, CTL_LAYER_EXT(mixer_id), 0);
@@ -1006,7 +1008,6 @@ static void sde_hw_ctl_clear_all_blendstages(struct sde_hw_ctl *ctx)
 		SDE_REG_WRITE(c, CTL_LAYER_EXT3(mixer_id), 0);
 		SDE_REG_WRITE(c, CTL_LAYER_EXT4(mixer_id), 0);
 	}
-	SDE_REG_WRITE(c, CTL_FETCH_PIPE_ACTIVE, 0);
 }
 
 static void _sde_hw_ctl_get_mixer_cfg(struct sde_hw_ctl *ctx,