mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 11:03:43 +02:00
drm/msm/dpu: remove manual destruction of DRM objects
Remove manual removal of DRM modesetting objects, it is done anyway by the drm_mode_config_cleanup() called from msm_drm_uninit(). Other MSM display drivers (MDP4, MDP5) do not manually destroy objects and trust generic code to do it's work. Reviewed-by: Stephen Boyd <swboyd@chromium.org> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Patchwork: https://patchwork.freedesktop.org/patch/480943/ Link: https://lore.kernel.org/r/20220406101247.483649-2-dmitry.baryshkov@linaro.org Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
This commit is contained in:
parent
d28ea55626
commit
745b51585a
|
|
@ -679,30 +679,6 @@ static int _dpu_kms_setup_displays(struct drm_device *dev,
|
|||
return rc;
|
||||
}
|
||||
|
||||
static void _dpu_kms_drm_obj_destroy(struct dpu_kms *dpu_kms)
|
||||
{
|
||||
struct msm_drm_private *priv;
|
||||
int i;
|
||||
|
||||
priv = dpu_kms->dev->dev_private;
|
||||
|
||||
for (i = 0; i < priv->num_crtcs; i++)
|
||||
priv->crtcs[i]->funcs->destroy(priv->crtcs[i]);
|
||||
priv->num_crtcs = 0;
|
||||
|
||||
for (i = 0; i < priv->num_planes; i++)
|
||||
priv->planes[i]->funcs->destroy(priv->planes[i]);
|
||||
priv->num_planes = 0;
|
||||
|
||||
for (i = 0; i < priv->num_connectors; i++)
|
||||
priv->connectors[i]->funcs->destroy(priv->connectors[i]);
|
||||
priv->num_connectors = 0;
|
||||
|
||||
for (i = 0; i < priv->num_encoders; i++)
|
||||
priv->encoders[i]->funcs->destroy(priv->encoders[i]);
|
||||
priv->num_encoders = 0;
|
||||
}
|
||||
|
||||
static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms)
|
||||
{
|
||||
struct drm_device *dev;
|
||||
|
|
@ -725,7 +701,7 @@ static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms)
|
|||
*/
|
||||
ret = _dpu_kms_setup_displays(dev, priv, dpu_kms);
|
||||
if (ret)
|
||||
goto fail;
|
||||
return ret;
|
||||
|
||||
max_crtc_count = min(catalog->mixer_count, priv->num_encoders);
|
||||
|
||||
|
|
@ -750,7 +726,7 @@ static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms)
|
|||
if (IS_ERR(plane)) {
|
||||
DPU_ERROR("dpu_plane_init failed\n");
|
||||
ret = PTR_ERR(plane);
|
||||
goto fail;
|
||||
return ret;
|
||||
}
|
||||
priv->planes[priv->num_planes++] = plane;
|
||||
|
||||
|
|
@ -767,7 +743,7 @@ static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms)
|
|||
crtc = dpu_crtc_init(dev, primary_planes[i], cursor_planes[i]);
|
||||
if (IS_ERR(crtc)) {
|
||||
ret = PTR_ERR(crtc);
|
||||
goto fail;
|
||||
return ret;
|
||||
}
|
||||
priv->crtcs[priv->num_crtcs++] = crtc;
|
||||
}
|
||||
|
|
@ -777,9 +753,6 @@ static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms)
|
|||
priv->encoders[i]->possible_crtcs = (1 << priv->num_crtcs) - 1;
|
||||
|
||||
return 0;
|
||||
fail:
|
||||
_dpu_kms_drm_obj_destroy(dpu_kms);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void _dpu_kms_hw_destroy(struct dpu_kms *dpu_kms)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user