[Intel-gfx] [PATCH v3 7/8] drm: Connector helper function to release resources

Pandiyan, Dhinakaran dhinakaran.pandiyan at intel.com
Thu Feb 9 18:55:24 UTC 2017


On Thu, 2017-02-09 at 09:01 +0000, Lankhorst, Maarten wrote:
> Dhinakaran Pandiyan schreef op wo 08-02-2017 om 22:38 [-0800]:
> > Having a ->atomic_release callback is useful to release shared
> > resources
> > that get allocated in compute_config(). This function is expected to
> > be
> > called in the atomic_check() phase before new resources are acquired.
> > 
> > v2: Moved the caller hunk to this patch (Daniel)
> > 
> > Suggested-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> > Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan at intel.com>
> > ---
> >  drivers/gpu/drm/drm_atomic_helper.c      | 19 +++++++++++++++++++
> >  include/drm/drm_modeset_helper_vtables.h | 13 +++++++++++++
> >  2 files changed, 32 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/drm_atomic_helper.c
> > b/drivers/gpu/drm/drm_atomic_helper.c
> > index 8795088..92bd741 100644
> > --- a/drivers/gpu/drm/drm_atomic_helper.c
> > +++ b/drivers/gpu/drm/drm_atomic_helper.c
> > @@ -576,6 +576,25 @@ drm_atomic_helper_check_modeset(struct
> > drm_device *dev,
> >  		}
> >  	}
> >  
> > +	for_each_connector_in_state(state, connector,
> > connector_state, i) {
> > +		const struct drm_connector_helper_funcs *conn_funcs;
> > +		struct drm_crtc_state *crtc_state;
> > +
> > +		conn_funcs = connector->helper_private;
> > +		if (!conn_funcs->atomic_release)
> > +			continue;
> > +
> > +		if (!connector->state->crtc)
> > +			continue;
> > +
> > +		crtc_state =
> > drm_atomic_get_existing_crtc_state(state, connector->state->crtc);
> > +
> > +		if (crtc_state->connectors_changed ||
> > +		    crtc_state->mode_changed ||
> > +		    (crtc_state->active_changed && !crtc_state-
> > >active))
> > +			conn_funcs->atomic_release(connector,
> > connector_state);
> > +	}
> 
> Could we deal with the VCPI state separately in intel_modeset_checks,
> like we do with dpll?

We'd want to release the VCPI slots before they are acquired in
->compute_config(). intel_modeset_checks() will be too late to release
them. Are you suggesting both acquiring and releasing slots should be
done in intel_modeset_checks()?


> 
> Maybe implementing the relevant VCPI state could be done as an atomic
> helper function too, so other atomic drivers can just plug it in.
> 
The idea was to reduce boilerplate in the drivers and use the
private_obj state for different object types.


> Not sure how doable this is, but if it's not too hard, then it's
> probably cleaner :)
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx



More information about the dri-devel mailing list