|
@@ -159,7 +159,7 @@ void drm_atomic_helper_legacy_gamma_set(struct drm_crtc *crtc,
|
|
|
* This iterates over the current state, useful (for example) when applying
|
|
|
* atomic state after it has been checked and swapped. To iterate over the
|
|
|
* planes which *will* be attached (for ->atomic_check()) see
|
|
|
- * drm_crtc_for_each_pending_plane()
|
|
|
+ * drm_crtc_for_each_pending_plane().
|
|
|
*/
|
|
|
#define drm_atomic_crtc_for_each_plane(plane, crtc) \
|
|
|
drm_for_each_plane_mask(plane, (crtc)->dev, (crtc)->state->plane_mask)
|
|
@@ -171,11 +171,31 @@ void drm_atomic_helper_legacy_gamma_set(struct drm_crtc *crtc,
|
|
|
*
|
|
|
* Similar to drm_crtc_for_each_plane(), but iterates the planes that will be
|
|
|
* attached if the specified state is applied. Useful during (for example)
|
|
|
- * ->atomic_check() operations, to validate the incoming state
|
|
|
+ * ->atomic_check() operations, to validate the incoming state.
|
|
|
*/
|
|
|
#define drm_atomic_crtc_state_for_each_plane(plane, crtc_state) \
|
|
|
drm_for_each_plane_mask(plane, (crtc_state)->state->dev, (crtc_state)->plane_mask)
|
|
|
|
|
|
+/**
|
|
|
+ * drm_crtc_atomic_state_for_each_plane_state - iterate over attached planes in new state
|
|
|
+ * @plane: the loop cursor
|
|
|
+ * @plane_state: loop cursor for the plane's state, must be const
|
|
|
+ * @crtc_state: the incoming crtc-state
|
|
|
+ *
|
|
|
+ * Similar to drm_crtc_for_each_plane(), but iterates the planes that will be
|
|
|
+ * attached if the specified state is applied. Useful during (for example)
|
|
|
+ * ->atomic_check() operations, to validate the incoming state.
|
|
|
+ *
|
|
|
+ * Compared to just drm_atomic_crtc_state_for_each_plane() this also fills in a
|
|
|
+ * const plane_state. This is useful when a driver just wants to peek at other
|
|
|
+ * active planes on this crtc, but does not need to change it.
|
|
|
+ */
|
|
|
+#define drm_atomic_crtc_state_for_each_plane_state(plane, plane_state, crtc_state) \
|
|
|
+ drm_for_each_plane_mask(plane, (crtc_state)->state->dev, (crtc_state)->plane_mask) \
|
|
|
+ for_each_if ((plane_state = \
|
|
|
+ __drm_atomic_get_current_plane_state((crtc_state)->state, \
|
|
|
+ plane)))
|
|
|
+
|
|
|
/*
|
|
|
* drm_atomic_plane_disabling - check whether a plane is being disabled
|
|
|
* @plane: plane object
|