Skip to content

Commit

Permalink
drm/doc: Clarify mode_fixup vs. atomic_check a bit more
Browse files Browse the repository at this point in the history
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 <[email protected]>
Cc: Laurent Pinchart <[email protected]>
Cc: Jose Abreu <[email protected]>
Reviewed-by: Jose Abreu <[email protected]>
Reviewed-by: Andrzej Hajda <[email protected]>
Signed-off-by: Daniel Vetter <[email protected]>
Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
  • Loading branch information
danvet committed May 23, 2017
1 parent 9de5d4a commit 9f80021
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions include/drm/drm_modeset_helper_vtables.h
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,11 @@ struct drm_crtc_helper_funcs {
* allowed.
*
* 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
* core nor helpers filter modes to the list of probe modes reported by
Expand Down Expand Up @@ -547,7 +551,9 @@ struct drm_encoder_helper_funcs {
* allowed.
*
* 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
* core nor helpers filter modes to the list of probe modes reported by
Expand Down Expand Up @@ -734,6 +740,11 @@ struct drm_encoder_helper_funcs {
* update the CRTC to match what the encoder needs for the requested
* 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.
*
* NOTE:
Expand Down

0 comments on commit 9f80021

Please sign in to comment.