aboutsummaryrefslogtreecommitdiffstats
path: root/include/drm
diff options
context:
space:
mode:
authorPaulo Zanoni <paulo.r.zanoni@intel.com>2012-05-15 17:09:02 -0400
committerDave Airlie <airlied@redhat.com>2012-05-17 06:11:22 -0400
commitc543188afb7a83e66161c026dc6fd5eb38dc0b63 (patch)
tree4897e68dcea04f30a8da6b573a3776f3684ee404 /include/drm
parent7e3bdf4a6dca9eb153cc20d69d717308a68bec00 (diff)
drm: add generic ioctls to get/set properties on any object
Useless for connector properties (since they already have their own ioctls), but useful when we add properties to CRTCs, planes and other objects. Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com> Reviewed-by: Rob Clark <rob.clark@linaro.org> Tested-by: Rob Clark <rob.clark@linaro.org> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'include/drm')
-rw-r--r--include/drm/drm.h2
-rw-r--r--include/drm/drm_crtc.h13
-rw-r--r--include/drm/drm_mode.h15
3 files changed, 30 insertions, 0 deletions
diff --git a/include/drm/drm.h b/include/drm/drm.h
index 64ff02d5b730..5b831df15bf1 100644
--- a/include/drm/drm.h
+++ b/include/drm/drm.h
@@ -730,6 +730,8 @@ struct drm_prime_handle {
730#define DRM_IOCTL_MODE_GETPLANE DRM_IOWR(0xB6, struct drm_mode_get_plane) 730#define DRM_IOCTL_MODE_GETPLANE DRM_IOWR(0xB6, struct drm_mode_get_plane)
731#define DRM_IOCTL_MODE_SETPLANE DRM_IOWR(0xB7, struct drm_mode_set_plane) 731#define DRM_IOCTL_MODE_SETPLANE DRM_IOWR(0xB7, struct drm_mode_set_plane)
732#define DRM_IOCTL_MODE_ADDFB2 DRM_IOWR(0xB8, struct drm_mode_fb_cmd2) 732#define DRM_IOCTL_MODE_ADDFB2 DRM_IOWR(0xB8, struct drm_mode_fb_cmd2)
733#define DRM_IOCTL_MODE_OBJ_GETPROPERTIES DRM_IOWR(0xB9, struct drm_mode_obj_get_properties)
734#define DRM_IOCTL_MODE_OBJ_SETPROPERTY DRM_IOWR(0xBA, struct drm_mode_obj_set_property)
733 735
734/** 736/**
735 * Device specific ioctls should only be in their respective headers 737 * Device specific ioctls should only be in their respective headers
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 77606794308b..b0c32499fcd4 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -903,6 +903,12 @@ extern int drm_connector_property_set_value(struct drm_connector *connector,
903extern int drm_connector_property_get_value(struct drm_connector *connector, 903extern int drm_connector_property_get_value(struct drm_connector *connector,
904 struct drm_property *property, 904 struct drm_property *property,
905 uint64_t *value); 905 uint64_t *value);
906extern int drm_object_property_set_value(struct drm_mode_object *obj,
907 struct drm_property *property,
908 uint64_t val);
909extern int drm_object_property_get_value(struct drm_mode_object *obj,
910 struct drm_property *property,
911 uint64_t *value);
906extern struct drm_display_mode *drm_crtc_mode_create(struct drm_device *dev); 912extern struct drm_display_mode *drm_crtc_mode_create(struct drm_device *dev);
907extern void drm_framebuffer_set_object(struct drm_device *dev, 913extern void drm_framebuffer_set_object(struct drm_device *dev,
908 unsigned long handle); 914 unsigned long handle);
@@ -917,6 +923,9 @@ extern bool drm_crtc_in_use(struct drm_crtc *crtc);
917 923
918extern void drm_connector_attach_property(struct drm_connector *connector, 924extern void drm_connector_attach_property(struct drm_connector *connector,
919 struct drm_property *property, uint64_t init_val); 925 struct drm_property *property, uint64_t init_val);
926extern void drm_object_attach_property(struct drm_mode_object *obj,
927 struct drm_property *property,
928 uint64_t init_val);
920extern struct drm_property *drm_property_create(struct drm_device *dev, int flags, 929extern struct drm_property *drm_property_create(struct drm_device *dev, int flags,
921 const char *name, int num_values); 930 const char *name, int num_values);
922extern struct drm_property *drm_property_create_enum(struct drm_device *dev, int flags, 931extern struct drm_property *drm_property_create_enum(struct drm_device *dev, int flags,
@@ -1029,6 +1038,10 @@ extern int drm_mode_mmap_dumb_ioctl(struct drm_device *dev,
1029 void *data, struct drm_file *file_priv); 1038 void *data, struct drm_file *file_priv);
1030extern int drm_mode_destroy_dumb_ioctl(struct drm_device *dev, 1039extern int drm_mode_destroy_dumb_ioctl(struct drm_device *dev,
1031 void *data, struct drm_file *file_priv); 1040 void *data, struct drm_file *file_priv);
1041extern int drm_mode_obj_get_properties_ioctl(struct drm_device *dev, void *data,
1042 struct drm_file *file_priv);
1043extern int drm_mode_obj_set_property_ioctl(struct drm_device *dev, void *data,
1044 struct drm_file *file_priv);
1032 1045
1033extern void drm_fb_get_bpp_depth(uint32_t format, unsigned int *depth, 1046extern void drm_fb_get_bpp_depth(uint32_t format, unsigned int *depth,
1034 int *bpp); 1047 int *bpp);
diff --git a/include/drm/drm_mode.h b/include/drm/drm_mode.h
index 4a0aae38e160..326f2be0d497 100644
--- a/include/drm/drm_mode.h
+++ b/include/drm/drm_mode.h
@@ -254,6 +254,21 @@ struct drm_mode_connector_set_property {
254 __u32 connector_id; 254 __u32 connector_id;
255}; 255};
256 256
257struct drm_mode_obj_get_properties {
258 __u64 props_ptr;
259 __u64 prop_values_ptr;
260 __u32 count_props;
261 __u32 obj_id;
262 __u32 obj_type;
263};
264
265struct drm_mode_obj_set_property {
266 __u64 value;
267 __u32 prop_id;
268 __u32 obj_id;
269 __u32 obj_type;
270};
271
257struct drm_mode_get_blob { 272struct drm_mode_get_blob {
258 __u32 blob_id; 273 __u32 blob_id;
259 __u32 length; 274 __u32 length;