mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-02 16:44:10 +08:00
drm: Add drm_plane_mask()
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> Link: https://patchwork.freedesktop.org/patch/msgid/20180626194716.12522-1-ville.syrjala@linux.intel.com Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
parent
e35a2f9aee
commit
62f77ad096
@ -1581,7 +1581,7 @@ drm_atomic_set_crtc_for_plane(struct drm_plane_state *plane_state,
|
|||||||
if (WARN_ON(IS_ERR(crtc_state)))
|
if (WARN_ON(IS_ERR(crtc_state)))
|
||||||
return PTR_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;
|
plane_state->crtc = crtc;
|
||||||
@ -1591,7 +1591,7 @@ drm_atomic_set_crtc_for_plane(struct drm_plane_state *plane_state,
|
|||||||
crtc);
|
crtc);
|
||||||
if (IS_ERR(crtc_state))
|
if (IS_ERR(crtc_state))
|
||||||
return PTR_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)
|
if (crtc)
|
||||||
|
@ -847,7 +847,7 @@ retry:
|
|||||||
if (ret)
|
if (ret)
|
||||||
goto unlock;
|
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. */
|
/* This list is only filled when disable_crtcs is set. */
|
||||||
|
@ -52,7 +52,7 @@ static int drm_simple_kms_crtc_check(struct drm_crtc *crtc,
|
|||||||
struct drm_crtc_state *state)
|
struct drm_crtc_state *state)
|
||||||
{
|
{
|
||||||
bool has_primary = state->plane_mask &
|
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 */
|
/* We always want to have an active plane with an active CRTC */
|
||||||
if (has_primary != state->enable)
|
if (has_primary != state->enable)
|
||||||
|
@ -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
|
* Given a registered plane, return the index of that plane within a DRM
|
||||||
* device's list of planes.
|
* 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;
|
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);
|
struct drm_plane * drm_plane_from_index(struct drm_device *dev, int idx);
|
||||||
void drm_plane_force_disable(struct drm_plane *plane);
|
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) \
|
#define drm_for_each_plane_mask(plane, dev, plane_mask) \
|
||||||
list_for_each_entry((plane), &(dev)->mode_config.plane_list, head) \
|
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
|
* drm_for_each_legacy_plane - iterate over all planes for legacy userspace
|
||||||
|
Loading…
Reference in New Issue
Block a user