Message ID | 20190314184845.gjmvkamobj4dilyp@smtp.gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [V2] drm/atomic-helper: Make atomic_enable/disable crtc callbacks optional | expand |
On Thu, Mar 14, 2019 at 03:48:45PM -0300, Rodrigo Siqueira wrote: > Allow atomic_enable and atomic_disable operations from > drm_crtc_helper_funcs struct optional. With this, the target display > drivers don't need to define a dummy function if they don't need one. > > Changes since v2: > * Don't make funcs optional > * Update kerneldoc for atomic_enable/disable > * Replace "if (funcs->atomic_enable)" by "if (funcs->commit)" > * Improve commit message > > Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > drivers/gpu/drm/drm_atomic_helper.c | 5 ++--- > include/drm/drm_modeset_helper_vtables.h | 4 ++++ > 2 files changed, 6 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c > index 540a77a2ade9..d506e13c2945 100644 > --- a/drivers/gpu/drm/drm_atomic_helper.c > +++ b/drivers/gpu/drm/drm_atomic_helper.c > @@ -1034,7 +1034,7 @@ disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state) > funcs->atomic_disable(crtc, old_crtc_state); > else if (funcs->disable) > funcs->disable(crtc); > - else > + else if (funcs->dpms) > funcs->dpms(crtc, DRM_MODE_DPMS_OFF); > > if (!(dev->irq_enabled && dev->num_crtcs)) > @@ -1277,10 +1277,9 @@ void drm_atomic_helper_commit_modeset_enables(struct drm_device *dev, > if (new_crtc_state->enable) { > DRM_DEBUG_ATOMIC("enabling [CRTC:%d:%s]\n", > crtc->base.id, crtc->name); > - > if (funcs->atomic_enable) > funcs->atomic_enable(crtc, old_crtc_state); > - else > + else if (funcs->commit) > funcs->commit(crtc); > } > } > diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h > index cfb7be40bed7..ce4de6b1e444 100644 > --- a/include/drm/drm_modeset_helper_vtables.h > +++ b/include/drm/drm_modeset_helper_vtables.h > @@ -418,6 +418,8 @@ struct drm_crtc_helper_funcs { > * Drivers can use the @old_crtc_state input parameter if the operations > * needed to enable the CRTC don't depend solely on the new state but > * also on the transition between the old state and the new state. > + * > + * This function is optional. > */ > void (*atomic_enable)(struct drm_crtc *crtc, > struct drm_crtc_state *old_crtc_state); > @@ -441,6 +443,8 @@ struct drm_crtc_helper_funcs { > * parameter @old_crtc_state which could be used to access the old > * state. Atomic drivers should consider to use this one instead > * of @disable. > + * > + * This function is optional. > */ > void (*atomic_disable)(struct drm_crtc *crtc, > struct drm_crtc_state *old_crtc_state); > -- > 2.21.0
On 03/15, Daniel Vetter wrote: > On Thu, Mar 14, 2019 at 03:48:45PM -0300, Rodrigo Siqueira wrote: > > Allow atomic_enable and atomic_disable operations from > > drm_crtc_helper_funcs struct optional. With this, the target display > > drivers don't need to define a dummy function if they don't need one. > > > > Changes since v2: > > * Don't make funcs optional > > * Update kerneldoc for atomic_enable/disable > > * Replace "if (funcs->atomic_enable)" by "if (funcs->commit)" > > * Improve commit message > > > > Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com> > > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Hi, Is it ok if I apply this patch? > > --- > > drivers/gpu/drm/drm_atomic_helper.c | 5 ++--- > > include/drm/drm_modeset_helper_vtables.h | 4 ++++ > > 2 files changed, 6 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c > > index 540a77a2ade9..d506e13c2945 100644 > > --- a/drivers/gpu/drm/drm_atomic_helper.c > > +++ b/drivers/gpu/drm/drm_atomic_helper.c > > @@ -1034,7 +1034,7 @@ disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state) > > funcs->atomic_disable(crtc, old_crtc_state); > > else if (funcs->disable) > > funcs->disable(crtc); > > - else > > + else if (funcs->dpms) > > funcs->dpms(crtc, DRM_MODE_DPMS_OFF); > > > > if (!(dev->irq_enabled && dev->num_crtcs)) > > @@ -1277,10 +1277,9 @@ void drm_atomic_helper_commit_modeset_enables(struct drm_device *dev, > > if (new_crtc_state->enable) { > > DRM_DEBUG_ATOMIC("enabling [CRTC:%d:%s]\n", > > crtc->base.id, crtc->name); > > - > > if (funcs->atomic_enable) > > funcs->atomic_enable(crtc, old_crtc_state); > > - else > > + else if (funcs->commit) > > funcs->commit(crtc); > > } > > } > > diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h > > index cfb7be40bed7..ce4de6b1e444 100644 > > --- a/include/drm/drm_modeset_helper_vtables.h > > +++ b/include/drm/drm_modeset_helper_vtables.h > > @@ -418,6 +418,8 @@ struct drm_crtc_helper_funcs { > > * Drivers can use the @old_crtc_state input parameter if the operations > > * needed to enable the CRTC don't depend solely on the new state but > > * also on the transition between the old state and the new state. > > + * > > + * This function is optional. > > */ > > void (*atomic_enable)(struct drm_crtc *crtc, > > struct drm_crtc_state *old_crtc_state); > > @@ -441,6 +443,8 @@ struct drm_crtc_helper_funcs { > > * parameter @old_crtc_state which could be used to access the old > > * state. Atomic drivers should consider to use this one instead > > * of @disable. > > + * > > + * This function is optional. > > */ > > void (*atomic_disable)(struct drm_crtc *crtc, > > struct drm_crtc_state *old_crtc_state); > > -- > > 2.21.0 > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch
On Mon, Mar 25, 2019 at 08:29:06AM -0300, Rodrigo Siqueira wrote: > On 03/15, Daniel Vetter wrote: > > On Thu, Mar 14, 2019 at 03:48:45PM -0300, Rodrigo Siqueira wrote: > > > Allow atomic_enable and atomic_disable operations from > > > drm_crtc_helper_funcs struct optional. With this, the target display > > > drivers don't need to define a dummy function if they don't need one. > > > > > > Changes since v2: > > > * Don't make funcs optional > > > * Update kerneldoc for atomic_enable/disable > > > * Replace "if (funcs->atomic_enable)" by "if (funcs->commit)" > > > * Improve commit message > > > > > > Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com> > > > > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > > Hi, > Is it ok if I apply this patch? Sure. -Daniel > > > > --- > > > drivers/gpu/drm/drm_atomic_helper.c | 5 ++--- > > > include/drm/drm_modeset_helper_vtables.h | 4 ++++ > > > 2 files changed, 6 insertions(+), 3 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c > > > index 540a77a2ade9..d506e13c2945 100644 > > > --- a/drivers/gpu/drm/drm_atomic_helper.c > > > +++ b/drivers/gpu/drm/drm_atomic_helper.c > > > @@ -1034,7 +1034,7 @@ disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state) > > > funcs->atomic_disable(crtc, old_crtc_state); > > > else if (funcs->disable) > > > funcs->disable(crtc); > > > - else > > > + else if (funcs->dpms) > > > funcs->dpms(crtc, DRM_MODE_DPMS_OFF); > > > > > > if (!(dev->irq_enabled && dev->num_crtcs)) > > > @@ -1277,10 +1277,9 @@ void drm_atomic_helper_commit_modeset_enables(struct drm_device *dev, > > > if (new_crtc_state->enable) { > > > DRM_DEBUG_ATOMIC("enabling [CRTC:%d:%s]\n", > > > crtc->base.id, crtc->name); > > > - > > > if (funcs->atomic_enable) > > > funcs->atomic_enable(crtc, old_crtc_state); > > > - else > > > + else if (funcs->commit) > > > funcs->commit(crtc); > > > } > > > } > > > diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h > > > index cfb7be40bed7..ce4de6b1e444 100644 > > > --- a/include/drm/drm_modeset_helper_vtables.h > > > +++ b/include/drm/drm_modeset_helper_vtables.h > > > @@ -418,6 +418,8 @@ struct drm_crtc_helper_funcs { > > > * Drivers can use the @old_crtc_state input parameter if the operations > > > * needed to enable the CRTC don't depend solely on the new state but > > > * also on the transition between the old state and the new state. > > > + * > > > + * This function is optional. > > > */ > > > void (*atomic_enable)(struct drm_crtc *crtc, > > > struct drm_crtc_state *old_crtc_state); > > > @@ -441,6 +443,8 @@ struct drm_crtc_helper_funcs { > > > * parameter @old_crtc_state which could be used to access the old > > > * state. Atomic drivers should consider to use this one instead > > > * of @disable. > > > + * > > > + * This function is optional. > > > */ > > > void (*atomic_disable)(struct drm_crtc *crtc, > > > struct drm_crtc_state *old_crtc_state); > > > -- > > > 2.21.0 > > > > -- > > Daniel Vetter > > Software Engineer, Intel Corporation > > http://blog.ffwll.ch > > -- > Rodrigo Siqueira > https://siqueira.tech > Graduate Student > Department of Computer Science > University of São Paulo > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
On Tue, Mar 26, 2019 at 08:50:03AM +0100, Daniel Vetter wrote: > On Mon, Mar 25, 2019 at 08:29:06AM -0300, Rodrigo Siqueira wrote: > > On 03/15, Daniel Vetter wrote: > > > On Thu, Mar 14, 2019 at 03:48:45PM -0300, Rodrigo Siqueira wrote: > > > > Allow atomic_enable and atomic_disable operations from > > > > drm_crtc_helper_funcs struct optional. With this, the target display > > > > drivers don't need to define a dummy function if they don't need one. > > > > > > > > Changes since v2: > > > > * Don't make funcs optional > > > > * Update kerneldoc for atomic_enable/disable > > > > * Replace "if (funcs->atomic_enable)" by "if (funcs->commit)" > > > > * Improve commit message > > > > > > > > Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com> > > > > > > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > > > > Hi, > > Is it ok if I apply this patch? > > Sure. > -Daniel Hmm, seems to not be applied yet. Pushed to drm-misc-fixes. cheers, Gerd
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 540a77a2ade9..d506e13c2945 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -1034,7 +1034,7 @@ disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state) funcs->atomic_disable(crtc, old_crtc_state); else if (funcs->disable) funcs->disable(crtc); - else + else if (funcs->dpms) funcs->dpms(crtc, DRM_MODE_DPMS_OFF); if (!(dev->irq_enabled && dev->num_crtcs)) @@ -1277,10 +1277,9 @@ void drm_atomic_helper_commit_modeset_enables(struct drm_device *dev, if (new_crtc_state->enable) { DRM_DEBUG_ATOMIC("enabling [CRTC:%d:%s]\n", crtc->base.id, crtc->name); - if (funcs->atomic_enable) funcs->atomic_enable(crtc, old_crtc_state); - else + else if (funcs->commit) funcs->commit(crtc); } } diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h index cfb7be40bed7..ce4de6b1e444 100644 --- a/include/drm/drm_modeset_helper_vtables.h +++ b/include/drm/drm_modeset_helper_vtables.h @@ -418,6 +418,8 @@ struct drm_crtc_helper_funcs { * Drivers can use the @old_crtc_state input parameter if the operations * needed to enable the CRTC don't depend solely on the new state but * also on the transition between the old state and the new state. + * + * This function is optional. */ void (*atomic_enable)(struct drm_crtc *crtc, struct drm_crtc_state *old_crtc_state); @@ -441,6 +443,8 @@ struct drm_crtc_helper_funcs { * parameter @old_crtc_state which could be used to access the old * state. Atomic drivers should consider to use this one instead * of @disable. + * + * This function is optional. */ void (*atomic_disable)(struct drm_crtc *crtc, struct drm_crtc_state *old_crtc_state);
Allow atomic_enable and atomic_disable operations from drm_crtc_helper_funcs struct optional. With this, the target display drivers don't need to define a dummy function if they don't need one. Changes since v2: * Don't make funcs optional * Update kerneldoc for atomic_enable/disable * Replace "if (funcs->atomic_enable)" by "if (funcs->commit)" * Improve commit message Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com> --- drivers/gpu/drm/drm_atomic_helper.c | 5 ++--- include/drm/drm_modeset_helper_vtables.h | 4 ++++ 2 files changed, 6 insertions(+), 3 deletions(-)