drm/msm/mdp5: use devres-managed allocation for CTL manager data
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Sat, 8 Jul 2023 01:03:53 +0000 (04:03 +0300)
committerDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Sun, 3 Dec 2023 00:12:52 +0000 (03:12 +0300)
Use devm_kzalloc to create CTL manager data structure. This allows us
to remove corresponding kfree and drop mdp5_ctlm_destroy() function.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Patchwork: https://patchwork.freedesktop.org/patch/546159/
Link: https://lore.kernel.org/r/20230708010407.3871346-4-dmitry.baryshkov@linaro.org
drivers/gpu/drm/msm/disp/mdp5/mdp5_ctl.c
drivers/gpu/drm/msm/disp/mdp5/mdp5_ctl.h
drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c

index 1220f2b..666de99 100644 (file)
@@ -681,11 +681,6 @@ void mdp5_ctlm_hw_reset(struct mdp5_ctl_manager *ctl_mgr)
        }
 }
 
-void mdp5_ctlm_destroy(struct mdp5_ctl_manager *ctl_mgr)
-{
-       kfree(ctl_mgr);
-}
-
 struct mdp5_ctl_manager *mdp5_ctlm_init(struct drm_device *dev,
                void __iomem *mmio_base, struct mdp5_cfg_handler *cfg_hnd)
 {
@@ -697,18 +692,16 @@ struct mdp5_ctl_manager *mdp5_ctlm_init(struct drm_device *dev,
        unsigned long flags;
        int c, ret;
 
-       ctl_mgr = kzalloc(sizeof(*ctl_mgr), GFP_KERNEL);
+       ctl_mgr = devm_kzalloc(dev->dev, sizeof(*ctl_mgr), GFP_KERNEL);
        if (!ctl_mgr) {
                DRM_DEV_ERROR(dev->dev, "failed to allocate CTL manager\n");
-               ret = -ENOMEM;
-               goto fail;
+               return ERR_PTR(-ENOMEM);
        }
 
        if (WARN_ON(ctl_cfg->count > MAX_CTL)) {
                DRM_DEV_ERROR(dev->dev, "Increase static pool size to at least %d\n",
                                ctl_cfg->count);
-               ret = -ENOSPC;
-               goto fail;
+               return ERR_PTR(-ENOSPC);
        }
 
        /* initialize the CTL manager: */
@@ -727,7 +720,7 @@ struct mdp5_ctl_manager *mdp5_ctlm_init(struct drm_device *dev,
                        DRM_DEV_ERROR(dev->dev, "CTL_%d: base is null!\n", c);
                        ret = -EINVAL;
                        spin_unlock_irqrestore(&ctl_mgr->pool_lock, flags);
-                       goto fail;
+                       return ERR_PTR(ret);
                }
                ctl->ctlm = ctl_mgr;
                ctl->id = c;
@@ -755,10 +748,4 @@ struct mdp5_ctl_manager *mdp5_ctlm_init(struct drm_device *dev,
        DBG("Pool of %d CTLs created.", ctl_mgr->nctl);
 
        return ctl_mgr;
-
-fail:
-       if (ctl_mgr)
-               mdp5_ctlm_destroy(ctl_mgr);
-
-       return ERR_PTR(ret);
 }
index c2af68a..9020e8e 100644 (file)
@@ -17,7 +17,6 @@ struct mdp5_ctl_manager;
 struct mdp5_ctl_manager *mdp5_ctlm_init(struct drm_device *dev,
                void __iomem *mmio_base, struct mdp5_cfg_handler *cfg_hnd);
 void mdp5_ctlm_hw_reset(struct mdp5_ctl_manager *ctlm);
-void mdp5_ctlm_destroy(struct mdp5_ctl_manager *ctlm);
 
 /*
  * CTL prototypes:
index 9f0467c..d2bd14e 100644 (file)
@@ -625,8 +625,6 @@ static void mdp5_destroy(struct mdp5_kms *mdp5_kms)
 {
        int i;
 
-       if (mdp5_kms->ctlm)
-               mdp5_ctlm_destroy(mdp5_kms->ctlm);
        if (mdp5_kms->smp)
                mdp5_smp_destroy(mdp5_kms->smp);