Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fe616928 authored by Rodrigo Siqueira's avatar Rodrigo Siqueira Committed by Gerd Hoffmann
Browse files

drm/atomic-helper: Make atomic_enable/disable crtc callbacks optional



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: default avatarRodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20190314184845.gjmvkamobj4dilyp@smtp.gmail.com


Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
parent 36a1da15
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -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);
		}
	}
+4 −0
Original line number Diff line number Diff line
@@ -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);