From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH V2] drm/atomic-helper: Make atomic_enable/disable crtc callbacks optional Date: Fri, 15 Mar 2019 12:00:31 +0100 Message-ID: <20190315110031.GY2665@phenom.ffwll.local> References: <20190314184845.gjmvkamobj4dilyp@smtp.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <20190314184845.gjmvkamobj4dilyp@smtp.gmail.com> Sender: linux-kernel-owner@vger.kernel.org To: Rodrigo Siqueira Cc: Maarten Lankhorst , Maxime Ripard , Sean Paul , David Airlie , Daniel Vetter , Gerd Hoffmann , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org 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 Reviewed-by: Daniel Vetter > --- > 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