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;
         */
        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);
 
                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;
 
                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;
        }
                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)