diff options
| -rw-r--r-- | include/drm/drm_mode.h | 1 | ||||
| -rw-r--r-- | xf86drmMode.c | 4 | 
2 files changed, 3 insertions, 2 deletions
diff --git a/include/drm/drm_mode.h b/include/drm/drm_mode.h index f303d94c..62ba997f 100644 --- a/include/drm/drm_mode.h +++ b/include/drm/drm_mode.h @@ -226,6 +226,7 @@ struct drm_mode_get_connector {  #define DRM_MODE_PROP_IMMUTABLE	(1<<2)  #define DRM_MODE_PROP_ENUM	(1<<3) /* enumerated type with text strings */  #define DRM_MODE_PROP_BLOB	(1<<4) +#define DRM_MODE_PROP_BITMASK	(1<<5) /* bitmask of enumerated types */  struct drm_mode_property_enum {  	__u64 value; diff --git a/xf86drmMode.c b/xf86drmMode.c index a60c7cb1..04fdf1ff 100644 --- a/xf86drmMode.c +++ b/xf86drmMode.c @@ -575,7 +575,7 @@ drmModePropertyPtr drmModeGetProperty(int fd, uint32_t property_id)  	if (prop.count_values)  		prop.values_ptr = VOID2U64(drmMalloc(prop.count_values * sizeof(uint64_t))); -	if (prop.count_enum_blobs && (prop.flags & DRM_MODE_PROP_ENUM)) +	if (prop.count_enum_blobs && (prop.flags & (DRM_MODE_PROP_ENUM | DRM_MODE_PROP_BITMASK)))  		prop.enum_blob_ptr = VOID2U64(drmMalloc(prop.count_enum_blobs * sizeof(struct drm_mode_property_enum)));  	if (prop.count_enum_blobs && (prop.flags & DRM_MODE_PROP_BLOB)) { @@ -597,7 +597,7 @@ drmModePropertyPtr drmModeGetProperty(int fd, uint32_t property_id)  	r->flags = prop.flags;  	if (prop.count_values)  		r->values = drmAllocCpy(U642VOID(prop.values_ptr), prop.count_values, sizeof(uint64_t)); -	if (prop.flags & DRM_MODE_PROP_ENUM) { +	if (prop.flags & (DRM_MODE_PROP_ENUM | DRM_MODE_PROP_BITMASK)) {  		r->count_enums = prop.count_enum_blobs;  		r->enums = drmAllocCpy(U642VOID(prop.enum_blob_ptr), prop.count_enum_blobs, sizeof(struct drm_mode_property_enum));  	} else if (prop.flags & DRM_MODE_PROP_BLOB) {  | 
