Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp4459603ybz; Tue, 28 Apr 2020 11:39:21 -0700 (PDT) X-Google-Smtp-Source: APiQypJofhGzcOTIC2SU60aC0aPre5BZ3uPbnkw9gE2yzvvoj21grAhoBGaBQ11dCcRBoLRUIXjk X-Received: by 2002:a50:b285:: with SMTP id p5mr7333334edd.150.1588099161413; Tue, 28 Apr 2020 11:39:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588099161; cv=none; d=google.com; s=arc-20160816; b=Vl2LqbKofHqcCr6hw34GjNnTesmhp4ptRWbe4CGaeHNjWH861nrCWj/AUhD4aprfTx CyGuRwXfQ0w+DubUCeEPABsbkZB+MbVcskYf7m1dFqlpQcr7SRzgUu1Sua4960NL+9VN VeItl4EvoHUVf3bNJ+BNXQxUkHNNTtSJywLfeGuiCWeBdebmstA/nNul/Eif5OM8A4aY IfLwl145A6RVp/oJmNcyPDsRKGaitSTKrdsuBRJKAYSZn/fP5p13wNQPqobrNwKR3tWv jL64ll0P57EZyO84P7BBTVFnpUFembzvuXz85QlBU1RE5/Q0KiE7wPjbU0ZekBfGN6Vy FGwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=s0Qr1hFca83b7SNl/93ojGBK7Ram0hdHNq4bwvuX0G4=; b=gKPBrWC6LmE9YR5bYs5iDDik455BqALAz1CBhhz4WGvIdgOMnznza7pnolLJTAy3oA JOwnqIb4VfYAKQsXAytboUkFjwjTJd7A7fOqScc/aedGb6oXRAXtKFr/4am6kJLD6BJx hcTvrNhBT+2dTs2PHz5Gnda1aYJjDHh7OiPaDKzqv4DhqZGZbkumQbeOoXeqMtPmebvp yqKFGth8S2t9Unm7stHhZIym6fFcCY21dDsTtSKOuTDRY1Qtg4bV1zQCJbofDa4AylV6 9CZiGegpR/1BgnVzVXjbkK+4Qfd0PFoyPQCfLvH3YvA/HrIhsIS0taTVN6XiIrvSht12 9zKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=WUF11odS; 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 e3si1976238edj.169.2020.04.28.11.38.57; Tue, 28 Apr 2020 11:39:21 -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; dkim=pass header.i=@kernel.org header.s=default header.b=WUF11odS; 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 S1730398AbgD1Sgq (ORCPT + 99 others); Tue, 28 Apr 2020 14:36:46 -0400 Received: from mail.kernel.org ([198.145.29.99]:54218 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730387AbgD1Sgl (ORCPT ); Tue, 28 Apr 2020 14:36:41 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 4A4152085B; Tue, 28 Apr 2020 18:36:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1588099000; bh=5rg1mbDvVPgqk2qdN1TJwA1lpQ8pvGe+EL4GcEoRhmI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WUF11odStdhHw88SkrjapEZ+MaR9kYCSHLPx3XE3b/yGrpMNaU7wd0ddjhHD5raoe ID2+cBbxRaX8Ysek4VyM1D5BT3K4ovmC9HD9ZYJ0jFgb9G0XEniNGf5u0C1td7ko8D Kga9PNYB7FVFQgDYGTz0mCdS9RcQktdQnOH3fcQo= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yongqiang Sun , Tony Cheng , Rodrigo Siqueira , Alex Deucher , Sasha Levin Subject: [PATCH 5.4 044/168] drm/amd/display: Not doing optimize bandwidth if flip pending. Date: Tue, 28 Apr 2020 20:23:38 +0200 Message-Id: <20200428182237.448944669@linuxfoundation.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200428182231.704304409@linuxfoundation.org> References: <20200428182231.704304409@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Yongqiang Sun [ Upstream commit 9941b8129030c9202aaf39114477a0e58c0d6ffc ] [Why] In some scenario like 1366x768 VSR enabled connected with a 4K monitor and playing 4K video in clone mode, underflow will be observed due to decrease dppclk when previouse surface scan isn't finished [How] In this use case, surface flip is switching between 4K and 1366x768, 1366x768 needs smaller dppclk, and when decrease the clk and previous surface scan is for 4K and scan isn't done, underflow will happen. Not doing optimize bandwidth in case of flip pending. Signed-off-by: Yongqiang Sun Reviewed-by: Tony Cheng Acked-by: Rodrigo Siqueira Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin --- drivers/gpu/drm/amd/display/dc/core/dc.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c index 71c574d1e8be2..2028dc017f7a0 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c @@ -1182,6 +1182,26 @@ bool dc_commit_state(struct dc *dc, struct dc_state *context) return (result == DC_OK); } +static bool is_flip_pending_in_pipes(struct dc *dc, struct dc_state *context) +{ + int i; + struct pipe_ctx *pipe; + + for (i = 0; i < MAX_PIPES; i++) { + pipe = &context->res_ctx.pipe_ctx[i]; + + if (!pipe->plane_state) + continue; + + /* Must set to false to start with, due to OR in update function */ + pipe->plane_state->status.is_flip_pending = false; + dc->hwss.update_pending_status(pipe); + if (pipe->plane_state->status.is_flip_pending) + return true; + } + return false; +} + bool dc_post_update_surfaces_to_stream(struct dc *dc) { int i; @@ -1192,6 +1212,9 @@ bool dc_post_update_surfaces_to_stream(struct dc *dc) post_surface_trace(dc); + if (is_flip_pending_in_pipes(dc, context)) + return true; + for (i = 0; i < dc->res_pool->pipe_count; i++) if (context->res_ctx.pipe_ctx[i].stream == NULL || context->res_ctx.pipe_ctx[i].plane_state == NULL) { -- 2.20.1