On Tue, Jun 26, 2018 at 01:09:53PM -0700, Rodrigo Vivi wrote:
On Tue, Jun 26, 2018 at 10:47:07PM +0300, Ville Syrjala wrote:
From: Ville Syrjälä ville.syrjala@linux.intel.com
Add drm_plane_mask() which returns the 1<<index for the plane. We already have an identical drm_crtc_mask() for crtcs.
Mostly performed with coccinelle: @@ @@
- (1<<drm_plane_index(
- drm_plane_mask( ...)
- )
@@ @@
- 1<<drm_plane_index(
- drm_plane_mask( ...)
@@ @@
- BIT(drm_plane_index(
- drm_plane_mask( ...)
- )
Signed-off-by: Ville Syrjälä ville.syrjala@linux.intel.com
Reviewed-by: Rodrigo Vivi rodrigo.vivi@intel.com
Series pushed to drm-misc-next. Thanks for the reviews/acks.
drivers/gpu/drm/drm_atomic.c | 4 ++-- drivers/gpu/drm/drm_framebuffer.c | 2 +- drivers/gpu/drm/drm_simple_kms_helper.c | 2 +- include/drm/drm_plane.h | 14 ++++++++++++-- 4 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c index 178842380f75..684c9d3a1d6c 100644 --- a/drivers/gpu/drm/drm_atomic.c +++ b/drivers/gpu/drm/drm_atomic.c @@ -1581,7 +1581,7 @@ drm_atomic_set_crtc_for_plane(struct drm_plane_state *plane_state, if (WARN_ON(IS_ERR(crtc_state))) return PTR_ERR(crtc_state);
crtc_state->plane_mask &= ~(1 << drm_plane_index(plane));
crtc_state->plane_mask &= ~drm_plane_mask(plane);
}
plane_state->crtc = crtc;
@@ -1591,7 +1591,7 @@ drm_atomic_set_crtc_for_plane(struct drm_plane_state *plane_state, crtc); if (IS_ERR(crtc_state)) return PTR_ERR(crtc_state);
crtc_state->plane_mask |= (1 << drm_plane_index(plane));
crtc_state->plane_mask |= drm_plane_mask(plane);
}
if (crtc)
diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c index ed90974a452a..781af1d42d76 100644 --- a/drivers/gpu/drm/drm_framebuffer.c +++ b/drivers/gpu/drm/drm_framebuffer.c @@ -847,7 +847,7 @@ static int atomic_remove_fb(struct drm_framebuffer *fb) if (ret) goto unlock;
plane_mask |= BIT(drm_plane_index(plane));
plane_mask |= drm_plane_mask(plane);
}
/* This list is only filled when disable_crtcs is set. */
diff --git a/drivers/gpu/drm/drm_simple_kms_helper.c b/drivers/gpu/drm/drm_simple_kms_helper.c index 7a00455ca568..9d87961da1db 100644 --- a/drivers/gpu/drm/drm_simple_kms_helper.c +++ b/drivers/gpu/drm/drm_simple_kms_helper.c @@ -52,7 +52,7 @@ static int drm_simple_kms_crtc_check(struct drm_crtc *crtc, struct drm_crtc_state *state) { bool has_primary = state->plane_mask &
BIT(drm_plane_index(crtc->primary));
drm_plane_mask(crtc->primary);
/* We always want to have an active plane with an active CRTC */ if (has_primary != state->enable)
diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h index 7d4d6c7f0afd..cee9dfaaa740 100644 --- a/include/drm/drm_plane.h +++ b/include/drm/drm_plane.h @@ -639,10 +639,20 @@ void drm_plane_cleanup(struct drm_plane *plane);
- Given a registered plane, return the index of that plane within a DRM
- device's list of planes.
*/ -static inline unsigned int drm_plane_index(struct drm_plane *plane) +static inline unsigned int drm_plane_index(const struct drm_plane *plane) { return plane->index; }
+/**
- drm_plane_mask - find the mask of a registered plane
- @plane: plane to find mask for
- */
+static inline u32 drm_plane_mask(const struct drm_plane *plane) +{
- return 1 << drm_plane_index(plane);
+}
struct drm_plane * drm_plane_from_index(struct drm_device *dev, int idx); void drm_plane_force_disable(struct drm_plane *plane);
@@ -678,7 +688,7 @@ static inline struct drm_plane *drm_plane_find(struct drm_device *dev, */ #define drm_for_each_plane_mask(plane, dev, plane_mask) \ list_for_each_entry((plane), &(dev)->mode_config.plane_list, head) \
for_each_if ((plane_mask) & (1 << drm_plane_index(plane)))
for_each_if ((plane_mask) & drm_plane_mask(plane))
/**
- drm_for_each_legacy_plane - iterate over all planes for legacy userspace
-- 2.16.4
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel