drm/aspeed: Use managed drmm_mode_config_cleanup
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 4 Sep 2020 14:39:20 +0000 (16:39 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 11 Sep 2020 08:47:19 +0000 (10:47 +0200)
Since aspeed doesn't use devm_kzalloc anymore we can use the managed
mode config cleanup.

v2: Keep call order as suggested by Sam.

Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Joel Stanley <joel@jms.id.au>
Cc: Andrew Jeffery <andrew@aj.id.au>
Cc: linux-aspeed@lists.ozlabs.org
Cc: linux-arm-kernel@lists.infradead.org
Link: https://patchwork.freedesktop.org/patch/msgid/20200904143941.110665-4-daniel.vetter@ffwll.ch
drivers/gpu/drm/aspeed/aspeed_gfx_drv.c

index 903f4f3..2b424b2 100644 (file)
@@ -63,15 +63,21 @@ static const struct drm_mode_config_funcs aspeed_gfx_mode_config_funcs = {
        .atomic_commit          = drm_atomic_helper_commit,
 };
 
-static void aspeed_gfx_setup_mode_config(struct drm_device *drm)
+static int aspeed_gfx_setup_mode_config(struct drm_device *drm)
 {
-       drm_mode_config_init(drm);
+       int ret;
+
+       ret = drmm_mode_config_init(drm);
+       if (ret)
+               return ret;
 
        drm->mode_config.min_width = 0;
        drm->mode_config.min_height = 0;
        drm->mode_config.max_width = 800;
        drm->mode_config.max_height = 600;
        drm->mode_config.funcs = &aspeed_gfx_mode_config_funcs;
+
+       return ret;
 }
 
 static irqreturn_t aspeed_gfx_irq_handler(int irq, void *data)
@@ -144,7 +150,9 @@ static int aspeed_gfx_load(struct drm_device *drm)
        writel(0, priv->base + CRT_CTRL1);
        writel(0, priv->base + CRT_CTRL2);
 
-       aspeed_gfx_setup_mode_config(drm);
+       ret = aspeed_gfx_setup_mode_config(drm);
+       if (ret < 0)
+               return ret;
 
        ret = drm_vblank_init(drm, 1);
        if (ret < 0) {
@@ -179,7 +187,6 @@ static int aspeed_gfx_load(struct drm_device *drm)
 static void aspeed_gfx_unload(struct drm_device *drm)
 {
        drm_kms_helper_poll_fini(drm);
-       drm_mode_config_cleanup(drm);
 }
 
 DEFINE_DRM_GEM_CMA_FOPS(fops);