Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1370196pxf; Fri, 19 Mar 2021 05:59:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxTUp1yu7JJ9SN5pzIXCym3DpSTdCKqSk+/LSS9/2nkv6RVUpVpRdY/UuGYdAJYQspzz1pT X-Received: by 2002:a17:906:af91:: with SMTP id mj17mr4057791ejb.230.1616158751499; Fri, 19 Mar 2021 05:59:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616158751; cv=none; d=google.com; s=arc-20160816; b=aiABdIYcwE2wGA++dSfuhCUIo8gwygvveb1jd/g+VazbJ08cj8I7rFe2dqVP9nTz6d hSzxKBWUZxJGv/rkLv6adrq6SPMnC1OYWTJepphgssjRCoN5Mpqu9MBL0OdScxfvpnCA QmN+0+pahFz49ssgL5eyL49xOfFjHoKc5KWfKfcvBXZx7XUvJHUxHwq/2+LCZjggu8k/ TCqpJTVju6NrN8Plid9ABIhm1v7TLmfPK5N5dMsMpvgjnPSTvV473s984JeH1KG+8Q70 AN6iV6Ne2dkAurif0Cx+mns/mwDkvZ7O+9uq3d3MZY5mE+mkM+9xG607p61t3TZGjhGZ //xg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=J4igqdojGPrK219hYiiiR9f1fqa0aoYOcWzDBBMZFQg=; b=badWOj8Z0K/PAbJHyXDtBg8QWZyfntgOS4ZaPzLaOVSFE0pxLvbotSKHRqq/wuIYjI kuUrbJwBsjA6Hl4aty4fsPhmjy3j1UepEVJXo9K2XvLwPVfuEHlv+ep9iKtJMAgSJN29 BKMKQ2vUNfMUomPXDi+nwoVCmwEixppcKekP4TQpx9e34JRAq1JLAcEh4b8rbyfXXwyP BXIu1wDrWB1zL/6kl6pniUXKVk81SOzOLT6n9rIBYKuqGZzRbj4GmdmUIvKE/1XlG0cv WfwpV8ByUpmQaHGckGbLDjZqZ9o23UmZa7RBpS1MmpNTyMZdNlNRYG8RyenciSUp4GtV qpHQ== 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 o20si4174227eja.515.2021.03.19.05.58.48; Fri, 19 Mar 2021 05:59:11 -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 S229960AbhCSMzH (ORCPT + 99 others); Fri, 19 Mar 2021 08:55:07 -0400 Received: from alexa-out.qualcomm.com ([129.46.98.28]:62386 "EHLO alexa-out.qualcomm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229844AbhCSMye (ORCPT ); Fri, 19 Mar 2021 08:54:34 -0400 Received: from ironmsg07-lv.qualcomm.com (HELO ironmsg07-lv.qulacomm.com) ([10.47.202.151]) by alexa-out.qualcomm.com with ESMTP; 19 Mar 2021 05:54:34 -0700 X-QCInternal: smtphost Received: from ironmsg01-blr.qualcomm.com ([10.86.208.130]) by ironmsg07-lv.qulacomm.com with ESMTP/TLS/AES256-SHA; 19 Mar 2021 05:54:32 -0700 X-QCInternal: smtphost Received: from kalyant-linux.qualcomm.com ([10.204.66.210]) by ironmsg01-blr.qualcomm.com with ESMTP; 19 Mar 2021 18:24:09 +0530 Received: by kalyant-linux.qualcomm.com (Postfix, from userid 94428) id 879904309; Fri, 19 Mar 2021 05:54:08 -0700 (PDT) From: Kalyan Thota To: y@qualcomm.com, dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org Cc: Kalyan Thota , linux-kernel@vger.kernel.org, robdclark@gmail.com, dianders@chromium.org, mkrishn@codeaurora.org Subject: [v1] drm/msm/disp/dpu1: fix display underruns during modeset. Date: Fri, 19 Mar 2021 05:54:06 -0700 Message-Id: <1616158446-19290-1-git-send-email-kalyan_t@codeaurora.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: References: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org During crtc disable, display perf structures are reset to 0 which includes state varibles which are immutable. On crtc enable, we use the same structures and they don't refelect the actual values 1) Fix is to avoid updating the state structures during disable. 2) Reset the perf structures during atomic check when there is no modeset enable. Signed-off-by: Kalyan Thota --- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 1 - drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c index 37c8270..b4cd479 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c @@ -382,7 +382,6 @@ int dpu_core_perf_crtc_update(struct drm_crtc *crtc, } else { DPU_DEBUG("crtc=%d disable\n", crtc->base.id); memset(old, 0, sizeof(*old)); - memset(new, 0, sizeof(*new)); update_bus = true; update_clk = true; } diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c index 9a80981..a821e2c 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c @@ -912,6 +912,7 @@ static int dpu_crtc_atomic_check(struct drm_crtc *crtc, if (!state->enable || !state->active) { DPU_DEBUG("crtc%d -> enable %d, active %d, skip atomic_check\n", crtc->base.id, state->enable, state->active); + memset(&cstate->new_perf, 0, sizeof(cstate->new_perf)); goto end; } -- 2.7.4