aboutsummaryrefslogtreecommitdiffstats
path: root/include/drm
diff options
context:
space:
mode:
authorJessica Zhang <quic_jesszhan@quicinc.com>2023-10-27 15:32:51 -0700
committerDmitry Baryshkov <dmitry.baryshkov@linaro.org>2023-12-02 01:56:46 +0200
commite50e5fed41c7eed2db4119645bf3480ec43fec11 (patch)
tree21c7994957b46423b1b44b6efdbf6a7863240449 /include/drm
parent70e67aaec2f4706df0006423eebca813b00f5840 (diff)
downloadlinux-e50e5fed41c7eed2db4119645bf3480ec43fec11.tar.gz
drm: Introduce pixel_source DRM plane property
Add support for pixel_source property to drm_plane and related documentation. In addition, force pixel_source to DRM_PLANE_PIXEL_SOURCE_FB in DRM_IOCTL_MODE_SETPLANE as to not break legacy userspace. This enum property will allow user to specify a pixel source for the plane. Possible pixel sources will be defined in the drm_plane_pixel_source enum. Currently, the only pixel sources are DRM_PLANE_PIXEL_SOURCE_FB (the default value) and DRM_PLANE_PIXEL_SOURCE_NONE. Acked-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com> Acked-by: Harry Wentland <harry.wentland@amd.com> Acked-by: Sebastian Wick <sebastian@sebastianwick.net> Acked-by: Simon Ser <contact@emersion.fr> Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Link: https://patchwork.freedesktop.org/patch/msgid/20231027-solid-fill-v7-1-780188bfa7b2@quicinc.com
Diffstat (limited to 'include/drm')
-rw-r--r--include/drm/drm_blend.h2
-rw-r--r--include/drm/drm_plane.h21
2 files changed, 23 insertions, 0 deletions
diff --git a/include/drm/drm_blend.h b/include/drm/drm_blend.h
index 88bdfec3bd884..122bbfbaae33c 100644
--- a/include/drm/drm_blend.h
+++ b/include/drm/drm_blend.h
@@ -58,4 +58,6 @@ int drm_atomic_normalize_zpos(struct drm_device *dev,
struct drm_atomic_state *state);
int drm_plane_create_blend_mode_property(struct drm_plane *plane,
unsigned int supported_modes);
+int drm_plane_create_pixel_source_property(struct drm_plane *plane,
+ unsigned long extra_sources);
#endif
diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h
index c6565a6f9324c..bc0176ba25be1 100644
--- a/include/drm/drm_plane.h
+++ b/include/drm/drm_plane.h
@@ -40,6 +40,12 @@ enum drm_scaling_filter {
DRM_SCALING_FILTER_NEAREST_NEIGHBOR,
};
+enum drm_plane_pixel_source {
+ DRM_PLANE_PIXEL_SOURCE_NONE,
+ DRM_PLANE_PIXEL_SOURCE_FB,
+ DRM_PLANE_PIXEL_SOURCE_MAX
+};
+
/**
* struct drm_plane_state - mutable plane state
*
@@ -121,6 +127,14 @@ struct drm_plane_state {
int32_t hotspot_x, hotspot_y;
/**
+ * @pixel_source:
+ *
+ * Source of pixel information for the plane. See
+ * drm_plane_create_pixel_source_property() for more details.
+ */
+ enum drm_plane_pixel_source pixel_source;
+
+ /**
* @alpha:
* Opacity of the plane with 0 as completely transparent and 0xffff as
* completely opaque. See drm_plane_create_alpha_property() for more
@@ -713,6 +727,13 @@ struct drm_plane {
*/
struct drm_plane_state *state;
+ /*
+ * @pixel_source_property:
+ * Optional pixel_source property for this plane. See
+ * drm_plane_create_pixel_source_property().
+ */
+ struct drm_property *pixel_source_property;
+
/**
* @alpha_property:
* Optional alpha property for this plane. See