Commit 9f800214 authored by Daniel Vetter's avatar Daniel Vetter

drm/doc: Clarify mode_fixup vs. atomic_check a bit more

Brought up by both Laurent and Andrzej when reviewing the new
->mode_valid hooks. Since mode_fixup is just a simpler version of the
much more generic atomic_check we can't really unify it with
mode_valid. Most drivers should probably switch their current
mode_fixup code to either the new mode_valid or the atomic_check
hooks, but e.g. that doesn't exist yet for bridges, and for CRTCs the
situation is a bit more complicated. Hence there's no clear
equivalence between mode_fixup and mode_valid, even if it looks like
that at first glance.

v2: Fix accidental double-dot (Adnrzej).

Cc: Andrzej Hajda <a.hajda@samsung.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Jose Abreu <Jose.Abreu@synopsys.com>
Reviewed-by: default avatarJose Abreu <joabreu@synopsys.com>
Reviewed-by: default avatarAndrzej Hajda <a.hajda@samsung.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170515091136.26307-2-daniel.vetter@ffwll.ch
parent 9de5d4a6
...@@ -165,7 +165,11 @@ struct drm_crtc_helper_funcs { ...@@ -165,7 +165,11 @@ struct drm_crtc_helper_funcs {
* allowed. * allowed.
* *
* Atomic drivers which need to inspect and adjust more state should * Atomic drivers which need to inspect and adjust more state should
* instead use the @atomic_check callback. * instead use the @atomic_check callback, but note that they're not
* perfectly equivalent: @mode_valid is called from
* drm_atomic_helper_check_modeset(), but @atomic_check is called from
* drm_atomic_helper_check_planes(), because originally it was meant for
* plane update checks only.
* *
* Also beware that userspace can request its own custom modes, neither * Also beware that userspace can request its own custom modes, neither
* core nor helpers filter modes to the list of probe modes reported by * core nor helpers filter modes to the list of probe modes reported by
...@@ -547,7 +551,9 @@ struct drm_encoder_helper_funcs { ...@@ -547,7 +551,9 @@ struct drm_encoder_helper_funcs {
* allowed. * allowed.
* *
* Atomic drivers which need to inspect and adjust more state should * Atomic drivers which need to inspect and adjust more state should
* instead use the @atomic_check callback. * instead use the @atomic_check callback. If @atomic_check is used,
* this hook isn't called since @atomic_check allows a strict superset
* of the functionality of @mode_fixup.
* *
* Also beware that userspace can request its own custom modes, neither * Also beware that userspace can request its own custom modes, neither
* core nor helpers filter modes to the list of probe modes reported by * core nor helpers filter modes to the list of probe modes reported by
...@@ -734,6 +740,11 @@ struct drm_encoder_helper_funcs { ...@@ -734,6 +740,11 @@ struct drm_encoder_helper_funcs {
* update the CRTC to match what the encoder needs for the requested * update the CRTC to match what the encoder needs for the requested
* connector. * connector.
* *
* Since this provides a strict superset of the functionality of
* @mode_fixup (the requested and adjusted modes are both available
* through the passed in &struct drm_crtc_state) @mode_fixup is not
* called when @atomic_check is implemented.
*
* This function is used by the atomic helpers, but it is optional. * This function is used by the atomic helpers, but it is optional.
* *
* NOTE: * NOTE:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment