[PATCH v2 16/28] drm/mode_config: Read out hardware state in drm_mode_config_create_state

From: Maxime Ripard

Date: Thu Apr 23 2026 - 06:28:58 EST


drm_mode_config_create_state() creates the initial state for all
KMS objects at driver registration time.

Call the drm_mode_config_funcs.atomic_sro_readout_state hook from it
so that the initial state is populated from the hardware rather than
being left as a pristine default.

Signed-off-by: Maxime Ripard <mripard@xxxxxxxxxx>
---
drivers/gpu/drm/drm_mode_config.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/drm_mode_config.c b/drivers/gpu/drm/drm_mode_config.c
index 61c3ba5d3901..6bae788c30cc 100644
--- a/drivers/gpu/drm/drm_mode_config.c
+++ b/drivers/gpu/drm/drm_mode_config.c
@@ -22,10 +22,11 @@

#include <linux/export.h>
#include <linux/uaccess.h>

#include <drm/drm_atomic.h>
+#include <drm/drm_atomic_sro.h>
#include <drm/drm_drv.h>
#include <drm/drm_encoder.h>
#include <drm/drm_file.h>
#include <drm/drm_framebuffer.h>
#include <drm/drm_managed.h>
@@ -364,10 +365,14 @@ int drm_mode_config_create_state(struct drm_device *dev)
if (ret)
return ret;
}
drm_connector_list_iter_end(&conn_iter);

+ ret = dev->mode_config.funcs->atomic_sro_readout_state(dev);
+ if (ret)
+ return ret;
+
return 0;
}
EXPORT_SYMBOL(drm_mode_config_create_state);

/*

--
2.53.0