mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-13 02:25:36 -04:00
drm/msm/mdp5: use devres-managed allocation for CTL manager data
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
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user