Re: [PATCH 4/9] drm: Remove drm_mode_object->atomic_count

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 08/18/2016 02:26 AM, Daniel Vetter wrote:
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@xxxxxxxxxxxxxx>

Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
---
  drivers/gpu/drm/drm_mode_object.c | 31 ++++++++++++-------------------
  include/drm/drm_mode_object.h     |  2 +-
  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


--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux