summaryrefslogtreecommitdiff
path: root/linux-core/drm_crtc.h
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2007-12-05 16:03:05 +1000
committerDave Airlie <airlied@redhat.com>2007-12-05 16:03:05 +1000
commit1a6c95ef711fce807659ab5e4fe480d65ac233b6 (patch)
treec50176cc24a94b527a623b99caa9896cb4a4350f /linux-core/drm_crtc.h
parentf7432d187e4b5e13c9e450bf12d5ab8c18ea5146 (diff)
arrgggh.. make all ioctl structs 32/64-bit compatible hopefully.
This also starts to add blob property support. someone needs to check this work for other things like ppc/x86 alignment diffs
Diffstat (limited to 'linux-core/drm_crtc.h')
-rw-r--r--linux-core/drm_crtc.h23
1 files changed, 17 insertions, 6 deletions
diff --git a/linux-core/drm_crtc.h b/linux-core/drm_crtc.h
index 90d6104f..d028f75f 100644
--- a/linux-core/drm_crtc.h
+++ b/linux-core/drm_crtc.h
@@ -234,9 +234,16 @@ struct drm_framebuffer {
struct list_head filp_head;
};
+struct drm_property_blob {
+ struct list_head head;
+ unsigned int id;
+ unsigned int length;
+ void *data;
+};
+
struct drm_property_enum {
struct list_head head;
- uint32_t value;
+ uint64_t value;
unsigned char name[DRM_PROP_NAME_LEN];
};
@@ -246,9 +253,9 @@ struct drm_property {
uint32_t flags;
char name[DRM_PROP_NAME_LEN];
uint32_t num_values;
- uint32_t *values;
+ uint64_t *values;
- struct list_head enum_list;
+ struct list_head enum_blob_list;
};
struct drm_crtc;
@@ -451,7 +458,7 @@ struct drm_output {
struct list_head user_modes;
u32 property_ids[DRM_OUTPUT_MAX_PROPERTY];
- u32 property_values[DRM_OUTPUT_MAX_PROPERTY];
+ uint64_t property_values[DRM_OUTPUT_MAX_PROPERTY];
};
/**
@@ -492,6 +499,10 @@ struct drm_mode_config {
/* DGA stuff? */
struct drm_mode_config_funcs *funcs;
unsigned long fb_base;
+
+ /* pointers to standard properties */
+ struct list_head property_blob_list;
+ struct drm_property *edid_property;
};
struct drm_output *drm_output_create(struct drm_device *dev,
@@ -549,12 +560,12 @@ extern bool drm_crtc_set_mode(struct drm_crtc *crtc, struct drm_display_mode *mo
int x, int y);
extern int drm_output_attach_property(struct drm_output *output,
- struct drm_property *property, int init_val);
+ struct drm_property *property, uint64_t init_val);
extern struct drm_property *drm_property_create(struct drm_device *dev, int flags,
const char *name, int num_values);
extern void drm_property_destroy(struct drm_device *dev, struct drm_property *property);
extern int drm_property_add_enum(struct drm_property *property, int index,
- uint32_t value, const char *name);
+ uint64_t value, const char *name);
/* IOCTLs */
extern int drm_mode_getresources(struct drm_device *dev,