From 32a5a1fa8cae29b471a1647782fd619c9f1b6ea0 Mon Sep 17 00:00:00 2001 From: Jayaprakash Date: Thu, 4 Feb 2021 18:50:00 +0530 Subject: [PATCH] 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 --- msm/sde/sde_encoder_phys_wb.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/msm/sde/sde_encoder_phys_wb.c b/msm/sde/sde_encoder_phys_wb.c index 77fe857549d0..ffb23447e0aa 100644 --- a/msm/sde/sde_encoder_phys_wb.c +++ b/msm/sde/sde_encoder_phys_wb.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. + * Copyright (c) 2015-2021, The Linux Foundation. All rights reserved. */ #define pr_fmt(fmt) "[drm:%s:%d] " fmt, __func__, __LINE__ @@ -1328,6 +1328,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,