summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2016-08-29 11:27:52 +0300
committerDaniel Vetter <daniel.vetter@ffwll.ch>2016-08-29 16:37:18 +0300
commitf094d881954982b559e98e90aca1bf6f45141420 (patch)
treea1dcb754d2a2aa548d24fe4b22534e77d68e56fc
parent949619f32eee37a6385de1e976523501c8256768 (diff)
downloadlinux-f094d881954982b559e98e90aca1bf6f45141420.tar.xz
drm: Remove drm_mode_object->atomic_count
It's only used in drm_mode_object_get_properties, and we can compute it there directly with a bit of code shuffling. Reviewed-by: Archit Taneja <architt@codeaurora.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20160829082757.17913-4-daniel.vetter@ffwll.ch
-rw-r--r--drivers/gpu/drm/drm_mode_object.c31
-rw-r--r--include/drm/drm_mode_object.h2
2 files changed, 13 insertions, 20 deletions
diff --git a/drivers/gpu/drm/drm_mode_object.c b/drivers/gpu/drm/drm_mode_object.c
index cef9104e8285..a92aeed51156 100644
--- a/drivers/gpu/drm/drm_mode_object.c
+++ b/drivers/gpu/drm/drm_mode_object.c
@@ -209,8 +209,6 @@ void drm_object_attach_property(struct drm_mode_object *obj,
obj->properties->properties[count] = property;
obj->properties->values[count] = init_val;
obj->properties->count++;
- if (property->flags & DRM_MODE_PROP_ATOMIC)
- obj->properties->atomic_count++;
}
EXPORT_SYMBOL(drm_object_attach_property);
@@ -288,35 +286,30 @@ int drm_mode_object_get_properties(struct drm_mode_object *obj, bool atomic,
uint64_t __user *prop_values,
uint32_t *arg_count_props)
{
- int props_count;
- int i, ret, copied;
+ int i, ret, count;
- props_count = obj->properties->count;
- if (!atomic)
- props_count -= obj->properties->atomic_count;
+ for (i = 0, count = 0; i < obj->properties->count; i++) {
+ struct drm_property *prop = obj->properties->properties[i];
+ uint64_t val;
- if ((*arg_count_props >= props_count) && props_count) {
- for (i = 0, copied = 0; copied < props_count; i++) {
- struct drm_property *prop = obj->properties->properties[i];
- uint64_t val;
-
- if ((prop->flags & DRM_MODE_PROP_ATOMIC) && !atomic)
- continue;
+ if ((prop->flags & DRM_MODE_PROP_ATOMIC) && !atomic)
+ continue;
+ if (*arg_count_props > count) {
ret = drm_object_property_get_value(obj, prop, &val);
if (ret)
return ret;
- if (put_user(prop->base.id, prop_ptr + copied))
+ if (put_user(prop->base.id, prop_ptr + count))
return -EFAULT;
- if (put_user(val, prop_values + copied))
+ if (put_user(val, prop_values + count))
return -EFAULT;
-
- copied++;
}
+
+ count++;
}
- *arg_count_props = props_count;
+ *arg_count_props = count;
return 0;
}
diff --git a/include/drm/drm_mode_object.h b/include/drm/drm_mode_object.h
index c0e4414299f7..b8adb6425f2a 100644
--- a/include/drm/drm_mode_object.h
+++ b/include/drm/drm_mode_object.h
@@ -37,7 +37,7 @@ struct drm_mode_object {
#define DRM_OBJECT_MAX_PROPERTY 24
struct drm_object_properties {
- int count, atomic_count;
+ int count;
/* NOTE: if we ever start dynamically destroying properties (ie.
* not at drm_mode_config_cleanup() time), then we'd have to do
* a better job of detaching property from mode objects to avoid