Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp286840pxj; Wed, 26 May 2021 23:27:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxjYIBOZ9Uxdb72TNqTq5L6BFEQL2PiB4FHvnPEQgtkjVHwfHGMeLRjwOLw5krhA3PXGglw X-Received: by 2002:a17:906:17cb:: with SMTP id u11mr2192366eje.231.1622096840966; Wed, 26 May 2021 23:27:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622096840; cv=none; d=google.com; s=arc-20160816; b=rX+Uqx1i4A8zam418ASlqgBwq2m3Wz5HzOUshY4q9+rX+IAwOgyflfL5mQLQYpVwL1 wrIRuhKRkV6pEVL70b4QHmmw14AQ8J+SIGzWz0lIDHgVHVIoyvptV5Mjq0DOWuLykoMm v1Yn0kZENNLtSKHQ5q2ZAsM2A5sxXx5D+qLrr7wqhKwQWOhkOLr8Voqcxl1Z0pq2oia8 YCjah6sL1UZPRsL1ZLvNhdsvBhkDTfXkqOmNDQiVJfAnqADnp/2Z4RKSugFm0svghs2E Ob9hOHZ6Pa0P6/n3jMGD/bKRe+3a41yqrIgD1Y58JspIDfBJ5apkND8cusdjzVIeqREQ SQIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from; bh=DvwVNWS/OowK6hf5/AJz6eZT7c/Af5PRdS/0dUBXkMc=; b=COZY11tVxTo/jcbxvAzDr4TJFV4q3h/pqI7fTQz67k/Jrj33yA5YXUJ2umSqY405Zd 6i1yBppkaAr2WJVfOouFdFm7lmU5INOHr0QMN6O+8M63Yuyvo/Ggm1Tbh7H2iEpPo9Sd /62rRfIG2hcDGi63N8motMJcQzrez7q1zBgBKHZPV0l8xp+boLAzlEfADItSnEr9G7FW XIOW96kKdpqIu1ibEMsOjay7xTb/9G0tNwGJNli04CQjpm4oZtcty8tCBkp8EKyxlb6K V4JOZRdolyzwGENWGsPtioPA+XJZUFrvcrQhewcX5+N6d6VTsU1hwihcyyrzED9nzRgv cBQw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m18si1100894edd.534.2021.05.26.23.26.57; Wed, 26 May 2021 23:27:20 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233839AbhE0FKA (ORCPT + 99 others); Thu, 27 May 2021 01:10:00 -0400 Received: from alexa-out.qualcomm.com ([129.46.98.28]:17888 "EHLO alexa-out.qualcomm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232324AbhE0FJ7 (ORCPT ); Thu, 27 May 2021 01:09:59 -0400 Received: from ironmsg-lv-alpha.qualcomm.com ([10.47.202.13]) by alexa-out.qualcomm.com with ESMTP; 26 May 2021 22:08:25 -0700 X-QCInternal: smtphost Received: from ironmsg01-blr.qualcomm.com ([10.86.208.130]) by ironmsg-lv-alpha.qualcomm.com with ESMTP/TLS/AES256-SHA; 26 May 2021 22:08:23 -0700 X-QCInternal: smtphost Received: from mkrishn-linux.qualcomm.com ([10.204.66.35]) by ironmsg01-blr.qualcomm.com with ESMTP; 27 May 2021 10:37:58 +0530 Received: by mkrishn-linux.qualcomm.com (Postfix, from userid 438394) id BB93820E58; Thu, 27 May 2021 10:37:57 +0530 (IST) From: Krishna Manikandan To: dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org Cc: Krishna Manikandan , linux-kernel@vger.kernel.org, robdclark@gmail.com, seanpaul@chromium.org, kalyan_t@codeaurora.org, swboyd@chromium.org, dianders@chromium.org Subject: [v1] drm/msm/disp/dpu1: avoid perf update in frame done event Date: Thu, 27 May 2021 10:37:56 +0530 Message-Id: <1622092076-5100-1-git-send-email-mkrishn@codeaurora.org> X-Mailer: git-send-email 2.7.4 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Crtc perf update from frame event work can result in wrong bandwidth and clock update from dpu if the work is scheduled after the swap state has happened. Avoid such issues by moving perf update to complete commit once the frame is accepted by the hardware. Fixes: a29c8c024165 ("drm/msm/disp/dpu1: fix display underruns during modeset") Signed-off-by: Krishna Manikandan --- drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c index 18bc76b..4523d6b 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c @@ -407,9 +407,6 @@ static void dpu_crtc_frame_event_work(struct kthread_work *work) fevent->event); } - if (fevent->event & DPU_ENCODER_FRAME_EVENT_DONE) - dpu_core_perf_crtc_update(crtc, 0, false); - if (fevent->event & (DPU_ENCODER_FRAME_EVENT_DONE | DPU_ENCODER_FRAME_EVENT_ERROR)) frame_done = true; @@ -477,6 +474,7 @@ static void dpu_crtc_frame_event_cb(void *data, u32 event) void dpu_crtc_complete_commit(struct drm_crtc *crtc) { trace_dpu_crtc_complete_commit(DRMID(crtc)); + dpu_core_perf_crtc_update(crtc, 0, false); _dpu_crtc_complete_flip(crtc); } -- 2.7.4