summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLiviu Dudau <Liviu.Dudau@arm.com>2018-02-28 14:11:23 +0000
committerLiviu Dudau <Liviu.Dudau@arm.com>2018-06-20 15:30:20 +0100
commitd67b6a2065076d763c7df626b8c54f16038ad862 (patch)
treefb7d98ec56e8a726aa2ea0696c55b6702265729e /include
parentb13cc8dd588434e2aec781e6d12224e4c408ac18 (diff)
downloadlinux-d67b6a2065076d763c7df626b8c54f16038ad862.tar.gz
linux-d67b6a2065076d763c7df626b8c54f16038ad862.tar.bz2
linux-d67b6a2065076d763c7df626b8c54f16038ad862.zip
drm: writeback: Add client capability for exposing writeback connectors
Due to the fact that writeback connectors behave in a special way in DRM (they always report being disconnected) we might confuse some userspace. Add a client capability for writeback connectors that will filter them out for clients that don't understand the capability. Changelog: - only accept the capability if the client has already set the DRM_CLIENT_CAP_ATOMIC one. Cc: Sean Paul <seanpaul@chromium.org> Cc: Brian Starkey <brian.starkey@arm.com> Signed-off-by: Liviu Dudau <liviu.dudau@arm.com> Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Brian Starkey <brian.starkey@arm.com> Link: https://patchwork.freedesktop.org/patch/229038/
Diffstat (limited to 'include')
-rw-r--r--include/drm/drm_file.h7
-rw-r--r--include/uapi/drm/drm.h9
2 files changed, 16 insertions, 0 deletions
diff --git a/include/drm/drm_file.h b/include/drm/drm_file.h
index 027ac16da3d1..26485acc51d7 100644
--- a/include/drm/drm_file.h
+++ b/include/drm/drm_file.h
@@ -193,6 +193,13 @@ struct drm_file {
unsigned aspect_ratio_allowed:1;
/**
+ * @writeback_connectors:
+ *
+ * True if client understands writeback connectors
+ */
+ unsigned writeback_connectors:1;
+
+ /**
* @is_master:
*
* This client is the creator of @master. Protected by struct
diff --git a/include/uapi/drm/drm.h b/include/uapi/drm/drm.h
index 9c660e1688ab..300f336633f2 100644
--- a/include/uapi/drm/drm.h
+++ b/include/uapi/drm/drm.h
@@ -687,6 +687,15 @@ struct drm_get_cap {
*/
#define DRM_CLIENT_CAP_ASPECT_RATIO 4
+/**
+ * DRM_CLIENT_CAP_WRITEBACK_CONNECTORS
+ *
+ * If set to 1, the DRM core will expose special connectors to be used for
+ * writing back to memory the scene setup in the commit. Depends on client
+ * also supporting DRM_CLIENT_CAP_ATOMIC
+ */
+#define DRM_CLIENT_CAP_WRITEBACK_CONNECTORS 5
+
/** DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */
struct drm_set_client_cap {
__u64 capability;