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 <[email protected]>
---
 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

Reply via email to