@@ -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);
}
@@ -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;
}
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 <dakr@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(-)