Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp1971664ybh; Tue, 14 Jul 2020 11:59:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJys0e+u6pYCV6ShDcgqx8UvOqSfmVo5wU9rBmfHYkgw+mJvudJN+p1Qa2KwrDdk4dAMoEY1 X-Received: by 2002:a17:906:940f:: with SMTP id q15mr6006195ejx.470.1594753195510; Tue, 14 Jul 2020 11:59:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594753195; cv=none; d=google.com; s=arc-20160816; b=MePen1SpkCibb7bqFDdASuybnUh3SXDzX3TTklJYxaqjxPD43+MbvIJRGQ0j99sHD9 uTH/q02gnOedrj7DKwwhmaYItADPU1eMjIkjJr8ksZi2GHDh9Eqr1/9oKXs/7QZ5R67u NQJVphd8FerchsZyYGSHdAkB05gZMaS58/sdrTb40d/oHAm1L+S2ELlJEhFAlM/fwbpx Mr5CQDjGjZswYk7zzDUtuaLYHrnWxhjJTFpPy/jgJTdYZZuh9msahc+7XKAQMp2jQDlw fVRVVCcZHHANIAYZzmN3C0jUlElAhIMzYPGtPlt8cJYfPbcAWY1M0C5yu+99Rw/RZ9/T AQbg== 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=WU2P/XMgRry6iJg7QiUkaaizzuZNdwU+LYnyvgLt02Y=; b=J+5/+Ba5LpC4qs99DpC2KvyQs5fuiEV2+gmztbJ5WQeYpD0nYlhN4wMYgjsSxfSmn/ 6ud0sWqhwdOLXzKqDeOS+gZpv1RAL4fPnROmp6eZBitRgDzgkc7aaaZUzRvZca2VG2mV KDKf1g8hTCuKbi/CpsLZum8hSDNp2Y75uE4ST6NfPltqvISC7HrIF/PC2mR9HTkyXpqC uCIg56datxLJGR0MRPKSQyyqZeOgpfzQBgwhALYFsvzoiuxv96fuUIoXH/dQ8sf9ciGv URbLKEFiDqtIHaR6nmoItT77JWcf8fQVlSIQbSMLOUP9onIB1dMSI74eTZAKHXqz9NeX CBmQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=YIJPY0Uo; 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 qq26si11137765ejb.675.2020.07.14.11.59.32; Tue, 14 Jul 2020 11:59:55 -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=YIJPY0Uo; 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 S1730371AbgGNS41 (ORCPT + 99 others); Tue, 14 Jul 2020 14:56:27 -0400 Received: from mail.kernel.org ([198.145.29.99]:54390 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730187AbgGNS40 (ORCPT ); Tue, 14 Jul 2020 14:56:26 -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 219C322CBB; Tue, 14 Jul 2020 18:56:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1594752985; bh=Vtv5mLkCI6qiMehxAsixw06K2d7dfO/qJO4vvMJqHxY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YIJPY0UohxvE2LGG82yLmo28oI0R7eTYyFQ01Qs1sgIvXkTCTF/Pe0UIaR+EYLHFU 0hdCQPG6EMrK2rx1pNSHF7zIchf7LFdhcAU48dvFtytu77Pde5hOHwHpSCIC2zlo41 L9z88191AnzNQR3bfV4V4lPf16FConRGGtuTwttw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Hsin-Yi Wang , Tomasz Figa , Chun-Kuang Hu , Sasha Levin Subject: [PATCH 5.7 058/166] drm/mediatek: Check plane visibility in atomic_update Date: Tue, 14 Jul 2020 20:43:43 +0200 Message-Id: <20200714184118.649480206@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200714184115.844176932@linuxfoundation.org> References: <20200714184115.844176932@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: Hsin-Yi Wang [ Upstream commit c0b8892e2461b5fa740e47efbb1269a487b04020 ] Disable the plane if it's not visible. Otherwise mtk_ovl_layer_config() would proceed with invalid plane and we may see vblank timeout. Fixes: 119f5173628a ("drm/mediatek: Add DRM Driver for Mediatek SoC MT8173.") Signed-off-by: Hsin-Yi Wang Reviewed-by: Tomasz Figa Signed-off-by: Chun-Kuang Hu Signed-off-by: Sasha Levin --- drivers/gpu/drm/mediatek/mtk_drm_plane.c | 25 ++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_plane.c b/drivers/gpu/drm/mediatek/mtk_drm_plane.c index c2bd683a87c82..92141a19681b9 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_plane.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_plane.c @@ -164,6 +164,16 @@ static int mtk_plane_atomic_check(struct drm_plane *plane, true, true); } +static void mtk_plane_atomic_disable(struct drm_plane *plane, + struct drm_plane_state *old_state) +{ + struct mtk_plane_state *state = to_mtk_plane_state(plane->state); + + state->pending.enable = false; + wmb(); /* Make sure the above parameter is set before update */ + state->pending.dirty = true; +} + static void mtk_plane_atomic_update(struct drm_plane *plane, struct drm_plane_state *old_state) { @@ -178,6 +188,11 @@ static void mtk_plane_atomic_update(struct drm_plane *plane, if (!crtc || WARN_ON(!fb)) return; + if (!plane->state->visible) { + mtk_plane_atomic_disable(plane, old_state); + return; + } + gem = fb->obj[0]; mtk_gem = to_mtk_gem_obj(gem); addr = mtk_gem->dma_addr; @@ -200,16 +215,6 @@ static void mtk_plane_atomic_update(struct drm_plane *plane, state->pending.dirty = true; } -static void mtk_plane_atomic_disable(struct drm_plane *plane, - struct drm_plane_state *old_state) -{ - struct mtk_plane_state *state = to_mtk_plane_state(plane->state); - - state->pending.enable = false; - wmb(); /* Make sure the above parameter is set before update */ - state->pending.dirty = true; -} - static const struct drm_plane_helper_funcs mtk_plane_helper_funcs = { .prepare_fb = drm_gem_fb_prepare_fb, .atomic_check = mtk_plane_atomic_check, -- 2.25.1