summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaarten Maathuis <madman2003@gmail.com>2008-06-27 18:45:08 +0200
committerMaarten Maathuis <madman2003@gmail.com>2008-06-27 18:45:08 +0200
commit9f28da80f6cc8e45670b217a2483983f2838095d (patch)
tree882c95412d4f38d96d1c4cacbf4a290be3bf7958
parent71906e86e81440037aa08b6f23f36e9fd3835639 (diff)
Change some obviously wrong things about property blobs, still broken though.
- I do not fully understand these blobs, so i'm leaving it at this for the moment.
-rw-r--r--libdrm/xf86drmMode.c2
-rw-r--r--linux-core/drm_crtc.c3
2 files changed, 2 insertions, 3 deletions
diff --git a/libdrm/xf86drmMode.c b/libdrm/xf86drmMode.c
index df865415..ca21a961 100644
--- a/libdrm/xf86drmMode.c
+++ b/libdrm/xf86drmMode.c
@@ -495,7 +495,7 @@ drmModePropertyPtr drmModeGetProperty(int fd, uint32_t property_id)
if (prop.flags & DRM_MODE_PROP_ENUM) {
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_ENUM) {
+ } else if (prop.flags & DRM_MODE_PROP_BLOB) {
r->values = drmAllocCpy(U642VOID(prop.values_ptr), prop.count_enum_blobs, sizeof(uint32_t));
r->blob_ids = drmAllocCpy(U642VOID(prop.enum_blob_ptr), prop.count_enum_blobs, sizeof(uint32_t));
r->count_blobs = prop.count_enum_blobs;
diff --git a/linux-core/drm_crtc.c b/linux-core/drm_crtc.c
index b9276c3a..23ae7d83 100644
--- a/linux-core/drm_crtc.c
+++ b/linux-core/drm_crtc.c
@@ -1837,7 +1837,6 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
out_resp->count_values = value_count;
if (property->flags & DRM_MODE_PROP_ENUM) {
-
if ((out_resp->count_enum_blobs >= enum_count) && enum_count) {
copied = 0;
enum_ptr = (struct drm_mode_property_enum *)(unsigned long)out_resp->enum_blob_ptr;
@@ -1879,7 +1878,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
copied++;
}
}
- out_resp->count_enum_blobs = enum_count;
+ out_resp->count_enum_blobs = blob_count;
}
done:
mutex_unlock(&dev->mode_config.mutex);