Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp759592ybl; Wed, 4 Dec 2019 10:22:49 -0800 (PST) X-Google-Smtp-Source: APXvYqw8M9pCLVcTfQDlOyQ8z9XL/SCQDQQ44AQRtbV7vzvC8WYkoguDB1SU7DqeAHm/7AhEJnok X-Received: by 2002:a05:6808:24e:: with SMTP id m14mr3854552oie.168.1575483769053; Wed, 04 Dec 2019 10:22:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1575483769; cv=none; d=google.com; s=arc-20160816; b=stZ8xJRjwu3M3uyTlwbCcDH3DN/HcFtw/tATIgT7vxG2gzz3kiwZyfSRbZzWe5mH/f 2p/Yop2mGb1JXYKAXlZRiVsaWS34IhCoRbyH+Weh84wSvWnqxB8OQL7EQsEK4Po+CeIz rNJBTBkRKPaaPp4SBn/678iYhmnEIJ9tAXKg8/K3Slv9avtTid3rqD0xKiN5J64Do4vf +NQhynG33bCV5Afjfro5FKqAVBpj96kIi3LUB9v5mUWms2ePPSqA1MrUzYjuuyagCwV/ 3K77suhs07DKdO1Gxlo9dTnU8jbyxS9/ckG5bptnd0m8uRSlBkrYzBp9FtowCH6XI3s1 lm6g== 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=sZtPH1W/Tb+BfsLk3QlFLUhwgHguoLdXoLnDMdOLO9E=; b=tVPci/BtZgsQhNwx+HmEkPDVGZ0odOLhVsWxlCTAz7hGOVtLUsQKxaae2u7KfaJUCI UVAWX2dS3DY9DE77W+f2vy6W1Xg2WyD2Cv46rV+HWpXBvx5REdBVLC5qoupTLtUbD0i5 WUJAUnV0qMlKkDqzBGoXxJFf7LlQmesOirHXoXTzeNSyupClWmHD5jI+yVxqi0IaR7a7 +7pBcddJpVcCB3hX4nLnzILmgim67MBXxI0qn9UsQcIPivo4dQxtQ+PmB+GrWLlQ+ncQ obt5r6CdD1kGMyujOqJcEmPhu/ptKS2oQP7lGWGi5TcaCAeye4xGBKOJQkDvFJNRjFX7 XNnQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=SmbCPz05; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z8si3691250oto.36.2019.12.04.10.22.36; Wed, 04 Dec 2019 10:22:49 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=SmbCPz05; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730559AbfLDSGc (ORCPT + 99 others); Wed, 4 Dec 2019 13:06:32 -0500 Received: from mail.kernel.org ([198.145.29.99]:54840 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730024AbfLDSG2 (ORCPT ); Wed, 4 Dec 2019 13:06:28 -0500 Received: from localhost (unknown [217.68.49.72]) (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 5B2D620833; Wed, 4 Dec 2019 18:06:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1575482787; bh=m46hbcDViVWHgP9ujJrVxd/nsrnZXJ5GEUJVDJ3t0e8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SmbCPz05r2JuORJNQdc/y4Tnxi/VKpw3DOW3TuG+/D39ktQHz2wEO+JglIVaKeUqu koGAthXDKtUTzKRsvlP2+ZDS3OlXv531QJZvE5ICsuUIPYXVf7fHcCEhoYpUPQ9aAh jsC0lgxhg6sCB/LdS7MzP53UWOTiyPlt1kIij2HA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Lucas Stach , Philipp Zabel , Sasha Levin Subject: [PATCH 4.14 132/209] gpu: ipu-v3: pre: dont trigger update if buffer address doesnt change Date: Wed, 4 Dec 2019 18:55:44 +0100 Message-Id: <20191204175332.267410745@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191204175321.609072813@linuxfoundation.org> References: <20191204175321.609072813@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: Lucas Stach [ Upstream commit eb0200a4357da100064971689d3a0e9e3cf57f33 ] On a NOP double buffer update where current buffer address is the same as the next buffer address, the SDW_UPDATE bit clears too late. As we are now using this bit to determine when it is safe to signal flip completion to userspace this will delay completion of atomic commits where one plane doesn't change the buffer by a whole frame period. Fix this by remembering the last buffer address and just skip the double buffer update if it would not change the buffer address. Signed-off-by: Lucas Stach [p.zabel@pengutronix.de: initialize last_bufaddr in ipu_pre_configure] Signed-off-by: Philipp Zabel Signed-off-by: Sasha Levin --- drivers/gpu/ipu-v3/ipu-pre.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/ipu-v3/ipu-pre.c b/drivers/gpu/ipu-v3/ipu-pre.c index 1d1612e28854b..6fd4af647f599 100644 --- a/drivers/gpu/ipu-v3/ipu-pre.c +++ b/drivers/gpu/ipu-v3/ipu-pre.c @@ -102,6 +102,7 @@ struct ipu_pre { void *buffer_virt; bool in_use; unsigned int safe_window_end; + unsigned int last_bufaddr; }; static DEFINE_MUTEX(ipu_pre_list_mutex); @@ -177,6 +178,7 @@ void ipu_pre_configure(struct ipu_pre *pre, unsigned int width, writel(bufaddr, pre->regs + IPU_PRE_CUR_BUF); writel(bufaddr, pre->regs + IPU_PRE_NEXT_BUF); + pre->last_bufaddr = bufaddr; val = IPU_PRE_PREF_ENG_CTRL_INPUT_PIXEL_FORMAT(0) | IPU_PRE_PREF_ENG_CTRL_INPUT_ACTIVE_BPP(active_bpp) | @@ -218,7 +220,11 @@ void ipu_pre_update(struct ipu_pre *pre, unsigned int bufaddr) unsigned short current_yblock; u32 val; + if (bufaddr == pre->last_bufaddr) + return; + writel(bufaddr, pre->regs + IPU_PRE_NEXT_BUF); + pre->last_bufaddr = bufaddr; do { if (time_after(jiffies, timeout)) { -- 2.20.1