All of lore.kernel.org
 help / color / mirror / Atom feed
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 09/14] drm/drv: Call drm_mode_config_create_state() by default
Date: Tue, 10 Mar 2026 17:07:01 +0100	[thread overview]
Message-ID: <20260310-drm-mode-config-init-v1-9-de7397c8e1cf@kernel.org> (raw)
In-Reply-To: <20260310-drm-mode-config-init-v1-0-de7397c8e1cf@kernel.org>

Almost all drivers, and our documented skeleton, call
drm_mode_config_reset() prior to calling drm_dev_register() to
initialize its DRM object states.

Now that we have drm_mode_config_create_state() to create that initial
state if it doesn't exist, we can call it directly in
drm_dev_register(). That way, we know that the initial atomic state will
always be allocated without any boilerplate.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 drivers/gpu/drm/drm_drv.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index 2915118436ce8a6640cfb0c59936031990727ed1..820106d56ab399a39cac56d98662b5ddbcae8ded 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -1097,10 +1097,14 @@ int drm_dev_register(struct drm_device *dev, unsigned long flags)
 
 	if (drm_core_check_feature(dev, DRIVER_MODESET)) {
 		ret = drm_modeset_register_all(dev);
 		if (ret)
 			goto err_unload;
+
+		ret = drm_mode_config_create_state(dev);
+		if (ret)
+			goto err_unload;
 	}
 	drm_panic_register(dev);
 	drm_client_sysrq_register(dev);
 
 	DRM_INFO("Initialized %s %d.%d.%d for %s on minor %d\n",

-- 
2.53.0


  parent 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 [PATCH 00/14] drm/atomic: Rework initial state allocation Maxime Ripard
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 ` Maxime Ripard [this message]
2026-03-16 16:33   ` [PATCH 09/14] drm/drv: Call drm_mode_config_create_state() by default 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-9-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.