[PATCH 7/8] drm: Add old state pointer to CRTC .enable() helper function
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Wed Jun 28 11:55:08 UTC 2017
Hi Daniel,
On Wednesday 28 Jun 2017 09:42:54 Daniel Vetter wrote:
> On Wed, Jun 28, 2017 at 12:16:20AM +0300, Laurent Pinchart wrote:
> > diff --git a/include/drm/drm_modeset_helper_vtables.h
> > b/include/drm/drm_modeset_helper_vtables.h index
> > 474a1029ec79..d74a2cafc3de 100644
> > --- a/include/drm/drm_modeset_helper_vtables.h
> > +++ b/include/drm/drm_modeset_helper_vtables.h
> > @@ -316,24 +316,6 @@ struct drm_crtc_helper_funcs {
> > void (*disable)(struct drm_crtc *crtc);
> >
> > /**
> > - * @enable:
> > - *
> > - * This callback should be used to enable the CRTC. With the atomic
> > - * drivers it is called before all encoders connected to this CRTC are
> > - * enabled through the encoder's own &drm_encoder_helper_funcs.enable
> > - * hook. If that sequence is too simple drivers can just add their
own
> > - * hooks and call it from this CRTC callback here by looping over all
> > - * encoders connected to it using for_each_encoder_on_crtc().
> > - *
> > - * This hook is used only by atomic helpers, for symmetry with
@disable.
> > - * Atomic drivers don't need to implement it if there's no need to
> > - * enable anything at the CRTC level. To ensure that runtime PM
handling
> > - * (using either DPMS or the new "ACTIVE" property) works
> > - * @enable must be the inverse of @disable for atomic drivers.
> > - */
> > - void (*enable)(struct drm_crtc *crtc);
> > -
> > - /**
> > * @atomic_check:
> > *
> > * Drivers should check plane-update related CRTC constraints in this
> > @@ -433,6 +415,26 @@ struct drm_crtc_helper_funcs {
> > struct drm_crtc_state *old_crtc_state);
> >
> > /**
> > + * @atomic_enable:
> > + *
> > + * This callback should be used to enable the CRTC. With the atomic
> > + * drivers it is called before all encoders connected to this CRTC are
> > + * enabled through the encoder's own &drm_encoder_helper_funcs.enable
> > + * hook. If that sequence is too simple drivers can just add their
own
> > + * hooks and call it from this CRTC callback here by looping over all
> > + * encoders connected to it using for_each_encoder_on_crtc().
> > + *
> > + * This hook is used only by atomic helpers, for symmetry with
> > + * @atomic_disable. Atomic drivers don't need to implement it if
there's
> > + * no need to enable anything at the CRTC level. To ensure that
runtime
> > + * PM handling (using either DPMS or the new "ACTIVE" property) works
> > + * @atomic_enable must be the inverse of @atomic_disable for atomic
> > + * drivers.
>
> A few lines explaing what @old_crtc_state is good for would be good here
> (like we already have for @atomic_disable). Otherwise lgtm.
I'll fix that in v2.
> > + void (*atomic_enable)(struct drm_crtc *crtc,
> > + struct drm_crtc_state *old_crtc_state);
> > +
> > + /**
> > * @atomic_disable:
> > *
> > * This callback should be used to disable the CRTC. With the atomic
--
Regards,
Laurent Pinchart
More information about the dri-devel
mailing list