From: Maxime Ripard <mripard@kernel.org>
To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Thomas Zimmermann <tzimmermann@suse.de>,
David Airlie <airlied@gmail.com>,
Simona Vetter <simona@ffwll.ch>,
Jonathan Corbet <corbet@lwn.net>,
Shuah Khan <skhan@linuxfoundation.org>,
Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
Jyri Sarha <jyri.sarha@iki.fi>,
Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>,
Andrzej Hajda <andrzej.hajda@intel.com>,
Neil Armstrong <neil.armstrong@linaro.org>,
Robert Foss <rfoss@kernel.org>,
Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
Jonas Karlman <jonas@kwiboo.se>,
Jernej Skrabec <jernej.skrabec@gmail.com>
Cc: dri-devel@lists.freedesktop.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, Maxime Ripard <mripard@kernel.org>
Subject: [PATCH 00/14] drm/atomic: Rework initial state allocation
Date: Tue, 10 Mar 2026 17:06:52 +0100 [thread overview]
Message-ID: <20260310-drm-mode-config-init-v1-0-de7397c8e1cf@kernel.org> (raw)
Hi,
This series started from my work on the hardware state readout[1], and
more specifically a discussion with Thomas[2].
This series expands the work that has been merged recently to make
drm_private_obj and drm_private_state allocation a bit more consistent
and ended up creating a new atomic_create_state callback to allocate a
new state with no side effect.
The first patches are a documentation of the existing behaviour and some
random cleanups.
Then, we add the new atomic_create_state callback to every other DRM
object. Next, we leverage those new callbacks to create a new helper,
drm_mode_config_create_state() to create the initial state for all the
objects of a driver.
Finally, we hook that new helper in drm_dev_register and start
converting a few drivers.
This was tested on a TI SK-AM62, with the tidss driver.
Let me know what you think,
Maxime
1: https://lore.kernel.org/dri-devel/20250902-drm-state-readout-v1-0-14ad5315da3f@kernel.org/
2: https://lore.kernel.org/dri-devel/5920ffe5-b6b1-484b-b320-332b9eb9db82@suse.de/
Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Maxime Ripard (14):
drm/atomic: Document atomic state lifetime
drm/atomic: Drop drm_private_state.obj assignment from create_state
drm/mode-config: Mention drm_mode_config_reset() culprits
drm/atomic-state-helper: Fix __drm_atomic_helper_plane_reset() doc typo
drm/plane: Add new atomic_create_state callback
drm/crtc: Add new atomic_create_state callback
drm/connector: Add new atomic_create_state callback
drm/mode-config: Create drm_mode_config_create_state()
drm/drv: Call drm_mode_config_create_state() by default
drm/atomic: Drop private obj state allocation
drm/drv: Drop drm_mode_config_reset() from our skeleton
drm/tidss: Drop call to drm_mode_config_reset at probe time
drm/tidss: Convert to atomic_create_state
drm/bridge_connector: Convert to atomic_create_state
Documentation/gpu/drm-kms.rst | 6 ++
drivers/gpu/drm/display/drm_bridge_connector.c | 15 ++-
drivers/gpu/drm/drm_atomic.c | 67 ++++++++++--
drivers/gpu/drm/drm_atomic_state_helper.c | 128 +++++++++++++++++++++-
drivers/gpu/drm/drm_drv.c | 6 +-
drivers/gpu/drm/drm_mode_config.c | 141 +++++++++++++++++++++++++
drivers/gpu/drm/tidss/tidss_crtc.c | 17 ++-
drivers/gpu/drm/tidss/tidss_kms.c | 2 -
drivers/gpu/drm/tidss/tidss_plane.c | 2 +-
include/drm/drm_atomic_state_helper.h | 12 +++
include/drm/drm_connector.h | 13 +++
include/drm/drm_crtc.h | 13 +++
include/drm/drm_mode_config.h | 1 +
include/drm/drm_plane.h | 13 +++
14 files changed, 408 insertions(+), 28 deletions(-)
---
base-commit: 7b80021b1f0daed917ecc7f75077df799a8a698c
change-id: 20260310-drm-mode-config-init-1e1f52b745d0
prerequisite-change-id: 20251008-drm-private-obj-reset-ae1e2741027a:v5
prerequisite-patch-id: 9684f0ca4b16455c1340409561e8fb32f98b327a
prerequisite-patch-id: e177eb92b269436a94d7ef603d44436799be7469
prerequisite-patch-id: fef6d20ab33358c1db6cd9d21aa8ec0990cae758
prerequisite-patch-id: 2dcc96d43f34d8f6237829ed29d0087c092954d1
Best regards,
--
Maxime Ripard <mripard@kernel.org>
next reply other threads:[~2026-03-10 16:07 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-10 16:06 Maxime Ripard [this message]
2026-03-10 16:06 ` [PATCH 01/14] drm/atomic: Document atomic state lifetime Maxime Ripard
2026-03-11 6:44 ` Tomi Valkeinen
2026-03-16 15:31 ` Laurent Pinchart
2026-03-19 13:20 ` Maxime Ripard
2026-03-10 16:06 ` [PATCH 02/14] drm/atomic: Drop drm_private_state.obj assignment from create_state Maxime Ripard
2026-03-16 15:49 ` Laurent Pinchart
2026-03-16 17:16 ` Maxime Ripard
2026-03-10 16:06 ` [PATCH 03/14] drm/mode-config: Mention drm_mode_config_reset() culprits Maxime Ripard
2026-03-16 15:53 ` Laurent Pinchart
2026-03-10 16:06 ` [PATCH 04/14] drm/atomic-state-helper: Fix __drm_atomic_helper_plane_reset() doc typo Maxime Ripard
2026-03-11 6:46 ` Tomi Valkeinen
2026-03-16 15:54 ` Laurent Pinchart
2026-03-10 16:06 ` [PATCH 05/14] drm/plane: Add new atomic_create_state callback Maxime Ripard
2026-03-11 7:13 ` Tomi Valkeinen
2026-03-11 7:46 ` Maxime Ripard
2026-03-16 16:16 ` Laurent Pinchart
2026-03-10 16:06 ` [PATCH 06/14] drm/crtc: " Maxime Ripard
2026-03-10 16:06 ` [PATCH 07/14] drm/connector: " Maxime Ripard
2026-03-10 16:07 ` [PATCH 08/14] drm/mode-config: Create drm_mode_config_create_state() Maxime Ripard
2026-03-16 16:32 ` Laurent Pinchart
2026-03-19 14:17 ` Maxime Ripard
2026-03-10 16:07 ` [PATCH 09/14] drm/drv: Call drm_mode_config_create_state() by default Maxime Ripard
2026-03-16 16:33 ` Laurent Pinchart
2026-03-20 7:39 ` Maxime Ripard
2026-03-10 16:07 ` [PATCH 10/14] drm/atomic: Drop private obj state allocation Maxime Ripard
2026-03-16 16:34 ` Laurent Pinchart
2026-03-10 16:07 ` [PATCH 11/14] drm/drv: Drop drm_mode_config_reset() from our skeleton Maxime Ripard
2026-03-11 6:54 ` Tomi Valkeinen
2026-03-10 16:07 ` [PATCH 12/14] drm/tidss: Drop call to drm_mode_config_reset at probe time Maxime Ripard
2026-03-11 7:40 ` Tomi Valkeinen
2026-03-11 8:18 ` Tomi Valkeinen
2026-03-10 16:07 ` [PATCH 13/14] drm/tidss: Convert to atomic_create_state Maxime Ripard
2026-03-11 7:41 ` Tomi Valkeinen
2026-03-16 16:40 ` Laurent Pinchart
2026-03-10 16:07 ` [PATCH 14/14] drm/bridge_connector: " Maxime Ripard
2026-03-16 16:42 ` Laurent Pinchart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260310-drm-mode-config-init-v1-0-de7397c8e1cf@kernel.org \
--to=mripard@kernel.org \
--cc=Laurent.pinchart@ideasonboard.com \
--cc=airlied@gmail.com \
--cc=andrzej.hajda@intel.com \
--cc=corbet@lwn.net \
--cc=dmitry.baryshkov@oss.qualcomm.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=jernej.skrabec@gmail.com \
--cc=jonas@kwiboo.se \
--cc=jyri.sarha@iki.fi \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=neil.armstrong@linaro.org \
--cc=rfoss@kernel.org \
--cc=simona@ffwll.ch \
--cc=skhan@linuxfoundation.org \
--cc=tomi.valkeinen@ideasonboard.com \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.