drm_mode_config_init() simply calls drmm_mode_config_init(), hence
cleanup is automatically handled through registering
drm_mode_config_cleanup() with drmm_add_action_or_reset().

While at it, get rid of the deprecated drm_mode_config_init() and
replace it with drmm_mode_config_init() directly.

Signed-off-by: Danilo Krummrich <d...@redhat.com>
---
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 4 +---
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c | 5 +++--
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c 
b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
index 3ac57516c3fe..cb74ae663f25 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
@@ -128,10 +128,9 @@ static int fsl_dcu_load(struct drm_device *dev, unsigned 
long flags)
        }
 
        return 0;
+
 done_irq:
        drm_kms_helper_poll_fini(dev);
-
-       drm_mode_config_cleanup(dev);
 done_vblank:
        return ret;
 }
@@ -141,7 +140,6 @@ static void fsl_dcu_unload(struct drm_device *dev)
        drm_atomic_helper_shutdown(dev);
        drm_kms_helper_poll_fini(dev);
 
-       drm_mode_config_cleanup(dev);
        fsl_dcu_irq_uninstall(dev);
 }
 
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c 
b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c
index c3d55c0aca9f..219ca539dedd 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c
@@ -23,7 +23,9 @@ int fsl_dcu_drm_modeset_init(struct fsl_dcu_drm_device 
*fsl_dev)
        struct drm_device *drm = &fsl_dev->base;
        int ret;
 
-       drm_mode_config_init(drm);
+       ret = drmm_mode_config_init(drm);
+       if (ret)
+               goto err;
 
        drm->mode_config.min_width = 0;
        drm->mode_config.min_height = 0;
@@ -49,6 +51,5 @@ int fsl_dcu_drm_modeset_init(struct fsl_dcu_drm_device 
*fsl_dev)
        return 0;
 
 err:
-       drm_mode_config_cleanup(drm);
        return ret;
 }
-- 
2.37.3

Reply via email to