Message ID | 20230707231251.3849701-11-dmitry.baryshkov@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | drm/msm/dpu: use managed memory allocations | expand |
On 7/7/2023 4:12 PM, Dmitry Baryshkov wrote: > Change struct dpu_crtc allocation to use drmm_crtc_alloc_with_planes(). > This removes the need to perform any actions on CRTC destruction. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Jessica Zhang <quic_jesszhan@quicinc.com> > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 25 +++++++----------------- > 1 file changed, 7 insertions(+), 18 deletions(-) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > index 214229d11e3e..a1fcb690c687 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > @@ -51,17 +51,6 @@ static struct dpu_kms *_dpu_crtc_get_kms(struct drm_crtc *crtc) > return to_dpu_kms(priv->kms); > } > > -static void dpu_crtc_destroy(struct drm_crtc *crtc) > -{ > - struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc); > - > - if (!crtc) > - return; > - > - drm_crtc_cleanup(crtc); > - kfree(dpu_crtc); > -} > - > static struct drm_encoder *get_encoder_from_crtc(struct drm_crtc *crtc) > { > struct drm_device *dev = crtc->dev; > @@ -1433,7 +1422,6 @@ static int dpu_crtc_late_register(struct drm_crtc *crtc) > > static const struct drm_crtc_funcs dpu_crtc_funcs = { > .set_config = drm_atomic_helper_set_config, > - .destroy = dpu_crtc_destroy, > .page_flip = drm_atomic_helper_page_flip, > .reset = dpu_crtc_reset, > .atomic_duplicate_state = dpu_crtc_duplicate_state, > @@ -1467,9 +1455,13 @@ struct drm_crtc *dpu_crtc_init(struct drm_device *dev, struct drm_plane *plane, > struct dpu_crtc *dpu_crtc = NULL; > int i, ret; > > - dpu_crtc = kzalloc(sizeof(*dpu_crtc), GFP_KERNEL); > - if (!dpu_crtc) > - return ERR_PTR(-ENOMEM); > + dpu_crtc = drmm_crtc_alloc_with_planes(dev, struct dpu_crtc, base, > + plane, cursor, > + &dpu_crtc_funcs, > + NULL); > + > + if (IS_ERR(dpu_crtc)) > + return ERR_CAST(dpu_crtc); > > crtc = &dpu_crtc->base; > crtc->dev = dev; > @@ -1489,9 +1481,6 @@ struct drm_crtc *dpu_crtc_init(struct drm_device *dev, struct drm_plane *plane, > dpu_crtc_frame_event_work); > } > > - drm_crtc_init_with_planes(dev, crtc, plane, cursor, &dpu_crtc_funcs, > - NULL); > - > drm_crtc_helper_add(crtc, &dpu_crtc_helper_funcs); > > if (dpu_kms->catalog->dspp_count) > -- > 2.39.2 >
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c index 214229d11e3e..a1fcb690c687 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c @@ -51,17 +51,6 @@ static struct dpu_kms *_dpu_crtc_get_kms(struct drm_crtc *crtc) return to_dpu_kms(priv->kms); } -static void dpu_crtc_destroy(struct drm_crtc *crtc) -{ - struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc); - - if (!crtc) - return; - - drm_crtc_cleanup(crtc); - kfree(dpu_crtc); -} - static struct drm_encoder *get_encoder_from_crtc(struct drm_crtc *crtc) { struct drm_device *dev = crtc->dev; @@ -1433,7 +1422,6 @@ static int dpu_crtc_late_register(struct drm_crtc *crtc) static const struct drm_crtc_funcs dpu_crtc_funcs = { .set_config = drm_atomic_helper_set_config, - .destroy = dpu_crtc_destroy, .page_flip = drm_atomic_helper_page_flip, .reset = dpu_crtc_reset, .atomic_duplicate_state = dpu_crtc_duplicate_state, @@ -1467,9 +1455,13 @@ struct drm_crtc *dpu_crtc_init(struct drm_device *dev, struct drm_plane *plane, struct dpu_crtc *dpu_crtc = NULL; int i, ret; - dpu_crtc = kzalloc(sizeof(*dpu_crtc), GFP_KERNEL); - if (!dpu_crtc) - return ERR_PTR(-ENOMEM); + dpu_crtc = drmm_crtc_alloc_with_planes(dev, struct dpu_crtc, base, + plane, cursor, + &dpu_crtc_funcs, + NULL); + + if (IS_ERR(dpu_crtc)) + return ERR_CAST(dpu_crtc); crtc = &dpu_crtc->base; crtc->dev = dev; @@ -1489,9 +1481,6 @@ struct drm_crtc *dpu_crtc_init(struct drm_device *dev, struct drm_plane *plane, dpu_crtc_frame_event_work); } - drm_crtc_init_with_planes(dev, crtc, plane, cursor, &dpu_crtc_funcs, - NULL); - drm_crtc_helper_add(crtc, &dpu_crtc_helper_funcs); if (dpu_kms->catalog->dspp_count)
Change struct dpu_crtc allocation to use drmm_crtc_alloc_with_planes(). This removes the need to perform any actions on CRTC destruction. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 25 +++++++----------------- 1 file changed, 7 insertions(+), 18 deletions(-)