drm: Remove drm_mode_object->atomic_count
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 29 Aug 2016 08:27:52 +0000 (10:27 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 29 Aug 2016 13:37:18 +0000 (15:37 +0200)
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
drivers/gpu/drm/drm_mode_object.c
include/drm/drm_mode_object.h

index cef9104..a92aeed 100644 (file)
@@ -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;
 }
index c0e4414..b8adb64 100644 (file)
@@ -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