summaryrefslogtreecommitdiffstats
path: root/include/drm
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2016-09-26 19:30:48 +0300
committerDaniel Vetter <daniel.vetter@ffwll.ch>2016-10-21 18:23:50 +0200
commitd138dd3c0c70979215f3184cf36f95875e37932e (patch)
tree61bd350525aca0355886f3fb51304271e442d3eb /include/drm
parent6e0c7c3358d4e8e9917a97348e6f77da88226cbe (diff)
downloadlinux-d138dd3c0c70979215f3184cf36f95875e37932e.tar.gz
linux-d138dd3c0c70979215f3184cf36f95875e37932e.tar.bz2
linux-d138dd3c0c70979215f3184cf36f95875e37932e.zip
drm: Add support for optional per-plane rotation property
Not all planes on the system may support the same rotations/reflections, so make it possible to create a separate property for each plane. This way userspace gets told exactly which rotations/reflections are possible for each plane. v2: Add drm_plane_create_rotation_property() helper v3: Drop the BIT(), __builtin_ffs(x) - 1, Moar WARNs for bad parameters Deal with superfluous code shuffling Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> (v1) Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1474907460-10717-4-git-send-email-ville.syrjala@linux.intel.com
Diffstat (limited to 'include/drm')
-rw-r--r--include/drm/drm_blend.h3
-rw-r--r--include/drm/drm_plane.h2
2 files changed, 5 insertions, 0 deletions
diff --git a/include/drm/drm_blend.h b/include/drm/drm_blend.h
index bb493410396c..fd351924e1c5 100644
--- a/include/drm/drm_blend.h
+++ b/include/drm/drm_blend.h
@@ -54,6 +54,9 @@ static inline bool drm_rotation_90_or_270(unsigned int rotation)
struct drm_property *drm_mode_create_rotation_property(struct drm_device *dev,
unsigned int supported_rotations);
+int drm_plane_create_rotation_property(struct drm_plane *plane,
+ unsigned int rotation,
+ unsigned int supported_rotations);
unsigned int drm_rotation_simplify(unsigned int rotation,
unsigned int supported_rotations);
diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h
index 02353904cdba..98b39d66eb32 100644
--- a/include/drm/drm_plane.h
+++ b/include/drm/drm_plane.h
@@ -385,6 +385,7 @@ enum drm_plane_type {
* @type: type of plane (overlay, primary, cursor)
* @state: current atomic state for this plane
* @zpos_property: zpos property for this plane
+ * @rotation_property: rotation property for this plane
* @helper_private: mid-layer private data
*/
struct drm_plane {
@@ -431,6 +432,7 @@ struct drm_plane {
struct drm_plane_state *state;
struct drm_property *zpos_property;
+ struct drm_property *rotation_property;
};
#define obj_to_plane(x) container_of(x, struct drm_plane, base)