From nobody Mon Aug 24 19:51:22 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC9A2409286 for ; Wed, 8 Jul 2026 16:08:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783526936; cv=none; b=LEjfzxrqNJGh6v+FGNA0Ui8ROTGlGHn8V0tWB6OGCP3SfubLQb2REJKmjivNv31ojIymLqAYzZfxweShs3vWsVfteUKHLbEmLgQqUVfA9arYmtY1m3xTBPLKRcdInTNw1SGgvOERAK8hEh2P/ChldiSmiT/eHpeu2eTA6HsEJyE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783526936; c=relaxed/simple; bh=9PtCPj01wJRDN2U3FHhpuJ1zKvRXV7fetbVHLeFTn/Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=iOce0Dchh26X14njQPUQ4QvTcu4Br2AqIWxNa00Lt/1IGRzeJD9p/6jjpw+MitVco+Qtm59LQFA2RtBEriDy0dLrr0nx9phjtAIWbDmTQmo7sRFiCvl2YfcF2QqaX1gll2TvGH6A8wWMnBPQfhRvoeINu2GdLZq+P3hzefvlPcc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XiBgQMro; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XiBgQMro" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 12CEB1F000E9; Wed, 8 Jul 2026 16:08:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783526933; bh=e9LVHQLg2+1ZYF7HK39eNc1XiMoRnpg1/B77Df6e5F4=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=XiBgQMrocfSxsEfqZYfNFTXjSDqS3eoO7P3sXs6lH1ayX47oXUH5ZuJDVzhYY21oY h/Ch5zuBUTXJv3vvCini4F3+aTDJ04/H7Ea55o80Eqn/vjwxkdRnKobx/3u0dFEzUu MK9R+Og/tETuE/9zliyfdZlgaHfx+jgGWgO9/A/3AnlulAjSx/Gss6CFBWlNabwpOw ZvRh1Edvjo7yWdUrS8LEvLvf2TU+8aCBAXfI+4boAsBetgrHaeeSyINa+TuzCjBZ8g ukBMYdVU3INDqUS+6JOY5nl1dmwUAdWymvmgjyjhZ7SARyNMEKTplcOAOQ9DGBxC2w 2MQeFLa82MFow== From: Maxime Ripard Date: Wed, 08 Jul 2026 18:08:38 +0200 Subject: [PATCH RFC 1/8] drm/atomic: colorop: Rename state to state_to_destroy Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260708-drm-reset-state-flag-v1-1-c37dc985485d@kernel.org> References: <20260708-drm-reset-state-flag-v1-0-c37dc985485d@kernel.org> In-Reply-To: <20260708-drm-reset-state-flag-v1-0-c37dc985485d@kernel.org> To: Maarten Lankhorst , Thomas Zimmermann , David Airlie , Simona Vetter Cc: Daniel Stone , Harry Wentland , =?utf-8?q?Jonas_=C3=85dahl?= , =?utf-8?q?Michel_D=C3=A4nzer?= , Pekka Paalanen , Sebastian Wick , Simon Ser , Victoria Brekenfeld , Xaver Hugl , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Maxime Ripard X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3248; i=mripard@kernel.org; h=from:subject:message-id; bh=9PtCPj01wJRDN2U3FHhpuJ1zKvRXV7fetbVHLeFTn/Q=; b=owGbwMvMwCmsHn9OcpHtvjLG02pJDFl+Zby9IWs7uYQPGPfLfZftsHeR6M8Sd7teuUX4qERO0 74VItM6prIwCHMyyIopsjyRCTu9vH1xlYP9yh8wc1iZQIYwcHEKwERSNzJWs6w6MX/r/cJ/Ra+f eYavCDm4nHnhQYMfwh7bVkUbXOU+0bNjAwujRRtb+4y/T3a2cwgyMjYsjWZS1F1zvOSqKpdNQ6j oeZOChYsW2U9w27Ah5l2RbMO7gAWPvCSUJpRwuWUUTZE8nAEA X-Developer-Key: i=mripard@kernel.org; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D The atomic state tracking structures used to have a generic state field to track the state to free when tearing down the drm_atomic_commit. It has since been renamed to state_to_destroy in __drm_planes_state, __drm_crtcs_state, __drm_connnectors_state, and __drm_private_objs_state to better describe its purpose. The colorop support has been added after that rename, but __drm_colorops_state still uses the old state name. Rename it to state_to_destroy for consistency, and add the matching kerneldoc. Signed-off-by: Maxime Ripard --- drivers/gpu/drm/drm_atomic.c | 4 ++-- drivers/gpu/drm/drm_atomic_helper.c | 2 +- include/drm/drm_atomic.h | 18 +++++++++++++++++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c index 735ab7badc2e..4bc6bdfb6f1f 100644 --- a/drivers/gpu/drm/drm_atomic.c +++ b/drivers/gpu/drm/drm_atomic.c @@ -341,13 +341,13 @@ void drm_atomic_commit_default_clear(struct drm_atomi= c_commit *state) =20 if (!colorop) continue; =20 drm_colorop_atomic_destroy_state(colorop, - state->colorops[i].state); + state->colorops[i].state_to_destroy); state->colorops[i].ptr =3D NULL; - state->colorops[i].state =3D NULL; + state->colorops[i].state_to_destroy =3D NULL; state->colorops[i].old_state =3D NULL; state->colorops[i].new_state =3D NULL; } =20 for (i =3D 0; i < state->num_private_objs; i++) { diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atom= ic_helper.c index 285aac3554df..c4752bd7d999 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -3349,11 +3349,11 @@ int drm_atomic_helper_swap_state(struct drm_atomic_= commit *state, WARN_ON(colorop->state !=3D old_colorop_state); =20 old_colorop_state->state =3D state; new_colorop_state->state =3D NULL; =20 - state->colorops[i].state =3D old_colorop_state; + state->colorops[i].state_to_destroy =3D old_colorop_state; colorop->state =3D new_colorop_state; } =20 drm_panic_lock(state->dev, flags); for_each_oldnew_plane_in_state(state, plane, old_plane_state, new_plane_s= tate, i) { diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h index 88087910ab1a..00b3e9fc429a 100644 --- a/include/drm/drm_atomic.h +++ b/include/drm/drm_atomic.h @@ -157,11 +157,27 @@ struct drm_crtc_commit { bool abort_completion; }; =20 struct __drm_colorops_state { struct drm_colorop *ptr; - struct drm_colorop_state *state, *old_state, *new_state; + + /** + * @state_to_destroy: + * + * Used to track the @drm_colorop_state we will need to free + * when tearing down the associated &drm_atomic_commit in + * $drm_mode_config_funcs.atomic_state_clear or + * drm_atomic_commit_default_clear(). + * + * Before a commit, and the call to + * drm_atomic_helper_swap_state() in particular, it points to + * the same state than @new_state. After a commit, it points to + * the same state than @old_state. + */ + struct drm_colorop_state *state_to_destroy; + + struct drm_colorop_state *old_state, *new_state; }; =20 struct __drm_planes_state { struct drm_plane *ptr; =20 --=20 2.54.0