Message ID | 20190301125627.7285-11-maarten.lankhorst@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm: Start subclassing crtc_state. | expand |
On Fri, Mar 01, 2019 at 01:56:20PM +0100, Maarten Lankhorst wrote: > Convert msm to using __drm_atomic_helper_crtc_reset(), instead of > writing its own version. Instead of open coding > destroy_state(), call it directly for freeing the old state. > > Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: Rob Clark <robdclark@gmail.com> > Cc: Sean Paul <sean@poorly.run> > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 6 ++--- > drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c | 28 +++++++++-------------- > 2 files changed, 13 insertions(+), 21 deletions(-) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > index b776fca571f3..eb156cb73dd4 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > @@ -753,14 +753,12 @@ void dpu_crtc_commit_kickoff(struct drm_crtc *crtc, bool async) > > static void dpu_crtc_reset(struct drm_crtc *crtc) > { > - struct dpu_crtc_state *cstate; > + struct dpu_crtc_state *cstate = kzalloc(sizeof(*cstate), GFP_KERNEL); > > if (crtc->state) > dpu_crtc_destroy_state(crtc, crtc->state); > > - crtc->state = kzalloc(sizeof(*cstate), GFP_KERNEL); > - if (crtc->state) > - crtc->state->crtc = crtc; > + __drm_atomic_helper_crtc_reset(crtc, &cstate->base); > } > > /** > diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c > index b0cf63c4e3d7..bf24a08feab9 100644 > --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c > +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c > @@ -1002,23 +1002,6 @@ mdp5_crtc_atomic_print_state(struct drm_printer *p, > drm_printf(p, "\tcmd_mode=%d\n", mdp5_cstate->cmd_mode); > } > > -static void mdp5_crtc_reset(struct drm_crtc *crtc) > -{ > - struct mdp5_crtc_state *mdp5_cstate; > - > - if (crtc->state) { > - __drm_atomic_helper_crtc_destroy_state(crtc->state); > - kfree(to_mdp5_crtc_state(crtc->state)); > - } > - > - mdp5_cstate = kzalloc(sizeof(*mdp5_cstate), GFP_KERNEL); > - > - if (mdp5_cstate) { > - mdp5_cstate->base.crtc = crtc; > - crtc->state = &mdp5_cstate->base; > - } > -} > - > static struct drm_crtc_state * > mdp5_crtc_duplicate_state(struct drm_crtc *crtc) > { > @@ -1046,6 +1029,17 @@ static void mdp5_crtc_destroy_state(struct drm_crtc *crtc, struct drm_crtc_state > kfree(mdp5_cstate); > } > > +static void mdp5_crtc_reset(struct drm_crtc *crtc) > +{ > + struct mdp5_crtc_state *mdp5_cstate = > + mdp5_cstate = kzalloc(sizeof(*mdp5_cstate), GFP_KERNEL); Assigned twice for good measure ;) > + > + if (crtc->state) > + mdp5_crtc_destroy_state(crtc, crtc->state); > + > + __drm_atomic_helper_crtc_reset(crtc, &mdp5_cstate->base); > +} > + > static const struct drm_crtc_funcs mdp5_crtc_funcs = { > .set_config = drm_atomic_helper_set_config, > .destroy = mdp5_crtc_destroy, > -- > 2.20.1 >
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c index b776fca571f3..eb156cb73dd4 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c @@ -753,14 +753,12 @@ void dpu_crtc_commit_kickoff(struct drm_crtc *crtc, bool async) static void dpu_crtc_reset(struct drm_crtc *crtc) { - struct dpu_crtc_state *cstate; + struct dpu_crtc_state *cstate = kzalloc(sizeof(*cstate), GFP_KERNEL); if (crtc->state) dpu_crtc_destroy_state(crtc, crtc->state); - crtc->state = kzalloc(sizeof(*cstate), GFP_KERNEL); - if (crtc->state) - crtc->state->crtc = crtc; + __drm_atomic_helper_crtc_reset(crtc, &cstate->base); } /** diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c index b0cf63c4e3d7..bf24a08feab9 100644 --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c @@ -1002,23 +1002,6 @@ mdp5_crtc_atomic_print_state(struct drm_printer *p, drm_printf(p, "\tcmd_mode=%d\n", mdp5_cstate->cmd_mode); } -static void mdp5_crtc_reset(struct drm_crtc *crtc) -{ - struct mdp5_crtc_state *mdp5_cstate; - - if (crtc->state) { - __drm_atomic_helper_crtc_destroy_state(crtc->state); - kfree(to_mdp5_crtc_state(crtc->state)); - } - - mdp5_cstate = kzalloc(sizeof(*mdp5_cstate), GFP_KERNEL); - - if (mdp5_cstate) { - mdp5_cstate->base.crtc = crtc; - crtc->state = &mdp5_cstate->base; - } -} - static struct drm_crtc_state * mdp5_crtc_duplicate_state(struct drm_crtc *crtc) { @@ -1046,6 +1029,17 @@ static void mdp5_crtc_destroy_state(struct drm_crtc *crtc, struct drm_crtc_state kfree(mdp5_cstate); } +static void mdp5_crtc_reset(struct drm_crtc *crtc) +{ + struct mdp5_crtc_state *mdp5_cstate = + mdp5_cstate = kzalloc(sizeof(*mdp5_cstate), GFP_KERNEL); + + if (crtc->state) + mdp5_crtc_destroy_state(crtc, crtc->state); + + __drm_atomic_helper_crtc_reset(crtc, &mdp5_cstate->base); +} + static const struct drm_crtc_funcs mdp5_crtc_funcs = { .set_config = drm_atomic_helper_set_config, .destroy = mdp5_crtc_destroy,
Convert msm to using __drm_atomic_helper_crtc_reset(), instead of writing its own version. Instead of open coding destroy_state(), call it directly for freeing the old state. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Rob Clark <robdclark@gmail.com> Cc: Sean Paul <sean@poorly.run> --- drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 6 ++--- drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c | 28 +++++++++-------------- 2 files changed, 13 insertions(+), 21 deletions(-)