Browse Source

disp: msm: sde: add changes to wait for only one WB_DONE irq

With WB encoder added in the drm encoder_list before primary
encoder introduced as part of commit d28ebf05f4aa ("disp:
msm: sde: populate WB display encoder list before dsi"),
sde_kms_wait_for_commit_done during CWB usecase is causing
crtc_commit thread to wait for two WB frame done irqs causing
janks on primary. Add changes to unblock crtc_commit thread and wait
for only one WB frame done irq.

Change-Id: Ie298302fea9df8ba5a1c2fa04f5f585ae455e0c9
Signed-off-by: Jayaprakash <[email protected]>
Jayaprakash 4 years ago
parent
commit
b769b30b97
1 changed files with 3 additions and 0 deletions
  1. 3 0
      msm/sde/sde_encoder_phys_wb.c

+ 3 - 0
msm/sde/sde_encoder_phys_wb.c

@@ -1422,6 +1422,9 @@ static int _sde_encoder_phys_wb_wait_for_commit_done(
 		_sde_encoder_phys_wb_frame_done_helper(wb_enc, false);
 	}
 
+	if (atomic_read(&phys_enc->pending_retire_fence_cnt) > 1)
+		wait_info.count_check = 1;
+
 	wait_info.wq = &phys_enc->pending_kickoff_wq;
 	wait_info.atomic_cnt = &phys_enc->pending_retire_fence_cnt;
 	wait_info.timeout_ms = max_t(u32, wb_enc->wbdone_timeout,