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

Archit Taneja
2016-08-25T12:25:01Z

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@codeaurora.org>

> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
> 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