Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp2427498pxb; Tue, 23 Feb 2021 06:55:02 -0800 (PST) X-Google-Smtp-Source: ABdhPJwN4aqotsQpMRCnFaZi3J1jiBEWyjVkZcJ4D0ubNlF2HZ5uMDtiiVcdmJnDLtJr6iZoGNib X-Received: by 2002:a17:907:767a:: with SMTP id kk26mr25681555ejc.402.1614092101853; Tue, 23 Feb 2021 06:55:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614092101; cv=none; d=google.com; s=arc-20160816; b=CY9pW/LmhviPh0/UaGMbiBUdElO6y5vgcwkZQ0w+CbCiya7ysnN3of20A72lqeUkFf lGsGZpWrltOfd/6k9AZQfSMpasMEfQpTFE9FwOXulowGexq6UOihZgXLC9hYbdKdFSny T4pKaLm2snbwyhKgU16vW6Jgp3JJ4Xe+gf0XosiFlaA91Bq2/bixrGmua1+8CJyk7enD ghC1gm9yvQ2bok7T6+MuJvBHYDMl/r8q1RL7T+R5xQ1oBs2GUxQv30a6YOJtcoYo10lm Z/ZadBtq9m8QwEhrrXo+45fgXIIbS8fWIc1cE/WeEUjMO5XTa89atIv8mzKwg2YAEpLr yjNg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature :dkim-signature; bh=W5Ow9fvH75ZU0EulrQV4vENorU9mrOKzv5PjfArajy8=; b=o1nE8XJZetObBCCV/+xJrpOzBZnAnO7dTz63lHmovYZ4l297wZJgi3A640HGc/LTMU j3oZLhDS6eJG+UOyq+3gTA7yfcV2KAC/QCIIzfx2ebIsSTdjajDxGAhrpeYcNBkJajRN tSaLOqkKEY1xYZqTfV0KYQihLSj04Vgu1j6OcGA0JzeTUffYmEQUsj4M9iCZPs7mpOGL EGK5v5OQ67r3g72bTy2awp4ykhnMzEBwPRIQz5/P8zwsj4H8qSvbJMBNy/SATq+kN3Vx IWqZgYBj5YZG69IVbr3C4JgqT8clqnvtxTxaG4F1Hj9Y+E/SfXryKBMU2EtDm0qeqLW4 N8Cg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cerno.tech header.s=fm2 header.b=GU22XeFW; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b=qgr4AecZ; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cerno.tech Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b14si13247457ede.90.2021.02.23.06.54.37; Tue, 23 Feb 2021 06:55:01 -0800 (PST) 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=@cerno.tech header.s=fm2 header.b=GU22XeFW; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b=qgr4AecZ; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cerno.tech Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232784AbhBWOm3 (ORCPT + 99 others); Tue, 23 Feb 2021 09:42:29 -0500 Received: from new1-smtp.messagingengine.com ([66.111.4.221]:36871 "EHLO new1-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232424AbhBWOmO (ORCPT ); Tue, 23 Feb 2021 09:42:14 -0500 Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailnew.nyi.internal (Postfix) with ESMTP id 8A11E580292; Tue, 23 Feb 2021 09:41:22 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Tue, 23 Feb 2021 09:41:22 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h= date:from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=fm2; bh=W5Ow9fvH75ZU0EulrQV4vENorU9 mrOKzv5PjfArajy8=; b=GU22XeFWKMGcAZu6NWqRYgkFYnXryfc3+rlB2tk1nhN zH1yO4BroV86D8Wj+siHaUgnYeJECPYuoxUrrb83MoTFpzJSJphB7CNYaw5EteJZ Rfe2uUFGY6BHcoPSg4DF4SQKrsvwPDYYdobiTIUwMYND4GTIu0kbe2QDQrUJz9Ys XL+8v06HcJxiYtSVO/5pD1twtzjjYfm8ikS3vacu5DbMHaCdJ/0Bb0eQOCqUJ+xJ NIaaer0XVasP54dsztAiOD81TbYaNwUKzT83ztyWAR6aGwJqfbXvuoSxWKtBKTYP sX/HgxIZrBTwnzz8GG1ss6/7GOr1ivxZ14BClrGyHWQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=W5Ow9f vH75ZU0EulrQV4vENorU9mrOKzv5PjfArajy8=; b=qgr4AecZXNy49Pwwcr3zO7 TdV+JR/XzKNcIDbvGOHn1gyMulZmqUgjZE15uY4QiiJDSs5yNTNDlDvrT8aqmBBw m+TXy7tppkYi/athZQuOT688uMOAKQ7dD0wKr2fATxKmEcNhGq/hRsEf67pAYWel CW2ClVZEj/WtvMd8w9vOaLZF4/vbQKAGVKEf5TRK7VzsxG4xPY/90O6t9lIKeVT/ 1DcSLdifDN3mbzrRQzXSpVMVk4u14TpKcyvkgpa1j+tLel53b9ATvGlQIXWSFb9A HU6MQUGYedLJ6xeOJ9x1CoCFAY6BRqNMM/TVvqlknPHnkpZPBT690jCUju/aYCIQ == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrkeehgdeijecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpeffhffvuffkfhggtggujgesghdtreertddtudenucfhrhhomhepofgrgihimhgv ucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrghtth gvrhhnpeduvdduhfekkeehgffftefflefgffdtheffudffgeevteffheeuiedvvdejvdfg veenucfkphepledtrdekledrieekrdejieenucevlhhushhtvghrufhiiigvpedtnecurf grrhgrmhepmhgrihhlfhhrohhmpehmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Received: from localhost (lfbn-tou-1-1502-76.w90-89.abo.wanadoo.fr [90.89.68.76]) by mail.messagingengine.com (Postfix) with ESMTPA id 74C8124005D; Tue, 23 Feb 2021 09:41:19 -0500 (EST) Date: Tue, 23 Feb 2021 15:41:17 +0100 From: Maxime Ripard To: Thomas Zimmermann Cc: Maarten Lankhorst , Daniel Vetter , David Airlie , dri-devel@lists.freedesktop.org, Ville =?utf-8?B?U3lyasOkbMOk?= , Philipp Zabel , Daniel Vetter , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Paul Cercueil , Rob Clark , Sean Paul , Jyri Sarha , Tomi Valkeinen , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org Subject: Re: [PATCH v3 06/11] drm: Use state helper instead of plane state pointer in atomic_check Message-ID: <20210223144117.6lhuizr2zrutbkzi@gilmour> References: <20210219120032.260676-1-maxime@cerno.tech> <20210219120032.260676-6-maxime@cerno.tech> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="etokcv6rtvultpe4" Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --etokcv6rtvultpe4 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi Thomas, On Mon, Feb 22, 2021 at 10:12:49AM +0100, Thomas Zimmermann wrote: > Am 19.02.21 um 13:00 schrieb Maxime Ripard: > > Many drivers reference the plane->state pointer in order to get the > > current plane state in their atomic_check hook, which would be the old > > plane state in the global atomic state since _swap_state hasn't happened > > when atomic_check is run. > >=20 > > Use the drm_atomic_get_old_plane_state helper to get that state to make > > it more obvious. > >=20 > > This was made using the coccinelle script below: > >=20 > > @ plane_atomic_func @ > > identifier helpers; > > identifier func; > > @@ > >=20 > > static struct drm_plane_helper_funcs helpers =3D { > > ..., > > .atomic_check =3D func, > > ..., > > }; > >=20 > > @ replaces_old_state @ > > identifier plane_atomic_func.func; > > identifier plane, state, plane_state; > > @@ > >=20 > > func(struct drm_plane *plane, struct drm_atomic_state *state) { > > ... > > - struct drm_plane_state *plane_state =3D plane->state; > > + struct drm_plane_state *plane_state =3D drm_atomic_get_old_plane_stat= e(state, plane); > > ... > > } > >=20 > > @@ > > identifier plane_atomic_func.func; > > identifier plane, state, plane_state; > > @@ > >=20 > > func(struct drm_plane *plane, struct drm_atomic_state *state) { > > struct drm_plane_state *plane_state =3D drm_atomic_get_old_plane_sta= te(state, plane); > > <... > > - plane->state > > + plane_state > > ...> > > } > >=20 > > @ adds_old_state @ > > identifier plane_atomic_func.func; > > identifier plane, state; > > @@ > >=20 > > func(struct drm_plane *plane, struct drm_atomic_state *state) { > > + struct drm_plane_state *old_plane_state =3D drm_atomic_get_old_plane_= state(state, plane); > > <... > > - plane->state > > + old_plane_state > > ...> > > } > >=20 > > @ include depends on adds_old_state || replaces_old_state @ > > @@ > >=20 > > #include > >=20 > > @ no_include depends on !include && (adds_old_state || replaces_old_sta= te) @ > > @@ > >=20 > > + #include > > #include > >=20 > > Reviewed-by: Ville Syrj=E4l=E4 > > Signed-off-by: Maxime Ripard >=20 > Acked-by: Thomas Zimmermann >=20 > However, I find 'old plane state' somewhat confusing in this context, > because it's actually the current plane state. Would it make sense to use > drm_atomic_get_existing_plane_state() instead? drm_atomic_get_existing_plane_state is deprecated nowadays, in favour of ei= ther drm_atomic_get_old_plane_state or drm_atomic_get_new_plane_state Maxime --etokcv6rtvultpe4 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQRcEzekXsqa64kGDp7j7w1vZxhRxQUCYDUUDQAKCRDj7w1vZxhR xRvbAP9dHjMFrJJN6sPJ07XtwTqAGn3EfEWhkDvhKpwZr1R6KQEAq1fU0dcu291f xFwjCPWCaX5tqUHCQKox185muDdxKgU= =fkaC -----END PGP SIGNATURE----- --etokcv6rtvultpe4--