[PATCH] drm: Don't pass the index to drm_property_add_enum()

Ville Syrjälä ville.syrjala at linux.intel.com
Fri Apr 27 14:11:49 UTC 2018


On Thu, Apr 26, 2018 at 12:45:13PM +0000, Lisovskiy, Stanislav wrote:
> Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy at intel.com>

Thanks. Pushed to drm-misc-next.

> 
> Best Regards,
> 
> Lisovskiy Stanislav
> 
> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo
> 
> ________________________________________
> From: Intel-gfx [intel-gfx-bounces at lists.freedesktop.org] on behalf of Lisovskiy, Stanislav [stanislav.lisovskiy at intel.com]
> Sent: Monday, April 23, 2018 4:59 PM
> To: Ville Syrjala; dri-devel at lists.freedesktop.org
> Cc: nouveau at lists.freedesktop.org; intel-gfx at lists.freedesktop.org; Ben Skeggs
> Subject: Re: [Intel-gfx] [PATCH] drm: Don't pass the index to drm_property_add_enum()
> 
> Acked-by: Stanislav Lisovskiy <stanislav.lisovskiy at intel.com>
> 
> Best Regards,
> 
> Lisovskiy Stanislav
> 
> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo>
> 
> ________________________________________
> From: Ville Syrjala [ville.syrjala at linux.intel.com]
> Sent: Friday, March 16, 2018 9:04 PM
> To: dri-devel at lists.freedesktop.org
> Cc: intel-gfx at lists.freedesktop.org; Patrik Jakobsson; Ben Skeggs; nouveau at lists.freedesktop.org
> Subject: [PATCH] drm: Don't pass the index to drm_property_add_enum()
> 
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> drm_property_add_enum() can calculate the index itself just fine,
> so no point in having the caller pass it in.
> 
> Cc: Patrik Jakobsson <patrik.r.jakobsson at gmail.com>
> Cc: Ben Skeggs <bskeggs at redhat.com>
> Cc: nouveau at lists.freedesktop.org
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
>  drivers/gpu/drm/drm_connector.c           |  6 +++---
>  drivers/gpu/drm/drm_property.c            | 27 +++++++++++++--------------
>  drivers/gpu/drm/gma500/cdv_device.c       |  4 ++--
>  drivers/gpu/drm/gma500/psb_intel_sdvo.c   |  2 +-
>  drivers/gpu/drm/i915/intel_sdvo.c         |  5 ++---
>  drivers/gpu/drm/nouveau/nouveau_display.c |  4 +---
>  include/drm/drm_property.h                |  2 +-
>  7 files changed, 23 insertions(+), 27 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> index b3cde897cd80..dfc8ca1e9413 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -1069,7 +1069,7 @@ int drm_mode_create_tv_properties(struct drm_device *dev,
>                 goto nomem;
> 
>         for (i = 0; i < num_modes; i++)
> -               drm_property_add_enum(dev->mode_config.tv_mode_property, i,
> +               drm_property_add_enum(dev->mode_config.tv_mode_property,
>                                       i, modes[i]);
> 
>         dev->mode_config.tv_brightness_property =
> @@ -1156,7 +1156,7 @@ int drm_connector_attach_scaling_mode_property(struct drm_connector *connector,
>  {
>         struct drm_device *dev = connector->dev;
>         struct drm_property *scaling_mode_property;
> -       int i, j = 0;
> +       int i;
>         const unsigned valid_scaling_mode_mask =
>                 (1U << ARRAY_SIZE(drm_scaling_mode_enum_list)) - 1;
> 
> @@ -1177,7 +1177,7 @@ int drm_connector_attach_scaling_mode_property(struct drm_connector *connector,
>                 if (!(BIT(i) & scaling_mode_mask))
>                         continue;
> 
> -               ret = drm_property_add_enum(scaling_mode_property, j++,
> +               ret = drm_property_add_enum(scaling_mode_property,
>                                             drm_scaling_mode_enum_list[i].type,
>                                             drm_scaling_mode_enum_list[i].name);
> 
> diff --git a/drivers/gpu/drm/drm_property.c b/drivers/gpu/drm/drm_property.c
> index 8f4672daac7f..1f8031e30f53 100644
> --- a/drivers/gpu/drm/drm_property.c
> +++ b/drivers/gpu/drm/drm_property.c
> @@ -169,9 +169,9 @@ struct drm_property *drm_property_create_enum(struct drm_device *dev,
>                 return NULL;
> 
>         for (i = 0; i < num_values; i++) {
> -               ret = drm_property_add_enum(property, i,
> -                                     props[i].type,
> -                                     props[i].name);
> +               ret = drm_property_add_enum(property,
> +                                           props[i].type,
> +                                           props[i].name);
>                 if (ret) {
>                         drm_property_destroy(dev, property);
>                         return NULL;
> @@ -209,7 +209,7 @@ struct drm_property *drm_property_create_bitmask(struct drm_device *dev,
>                                                  uint64_t supported_bits)
>  {
>         struct drm_property *property;
> -       int i, ret, index = 0;
> +       int i, ret;
>         int num_values = hweight64(supported_bits);
> 
>         flags |= DRM_MODE_PROP_BITMASK;
> @@ -221,14 +221,9 @@ struct drm_property *drm_property_create_bitmask(struct drm_device *dev,
>                 if (!(supported_bits & (1ULL << props[i].type)))
>                         continue;
> 
> -               if (WARN_ON(index >= num_values)) {
> -                       drm_property_destroy(dev, property);
> -                       return NULL;
> -               }
> -
> -               ret = drm_property_add_enum(property, index++,
> -                                     props[i].type,
> -                                     props[i].name);
> +               ret = drm_property_add_enum(property,
> +                                           props[i].type,
> +                                           props[i].name);
>                 if (ret) {
>                         drm_property_destroy(dev, property);
>                         return NULL;
> @@ -376,7 +371,6 @@ EXPORT_SYMBOL(drm_property_create_bool);
>  /**
>   * drm_property_add_enum - add a possible value to an enumeration property
>   * @property: enumeration property to change
> - * @index: index of the new enumeration
>   * @value: value of the new enumeration
>   * @name: symbolic name of the new enumeration
>   *
> @@ -388,10 +382,11 @@ EXPORT_SYMBOL(drm_property_create_bool);
>   * Returns:
>   * Zero on success, error code on failure.
>   */
> -int drm_property_add_enum(struct drm_property *property, int index,
> +int drm_property_add_enum(struct drm_property *property,
>                           uint64_t value, const char *name)
>  {
>         struct drm_property_enum *prop_enum;
> +       int index = 0;
> 
>         if (WARN_ON(strlen(name) >= DRM_PROP_NAME_LEN))
>                 return -EINVAL;
> @@ -411,8 +406,12 @@ int drm_property_add_enum(struct drm_property *property, int index,
>         list_for_each_entry(prop_enum, &property->enum_list, head) {
>                 if (WARN_ON(prop_enum->value == value))
>                         return -EINVAL;
> +               index++;
>         }
> 
> +       if (WARN_ON(index >= property->num_values))
> +               return -EINVAL;
> +
>         prop_enum = kzalloc(sizeof(struct drm_property_enum), GFP_KERNEL);
>         if (!prop_enum)
>                 return -ENOMEM;
> diff --git a/drivers/gpu/drm/gma500/cdv_device.c b/drivers/gpu/drm/gma500/cdv_device.c
> index 3a3bf752e03a..34b85767e4da 100644
> --- a/drivers/gpu/drm/gma500/cdv_device.c
> +++ b/drivers/gpu/drm/gma500/cdv_device.c
> @@ -485,7 +485,7 @@ void cdv_intel_attach_force_audio_property(struct drm_connector *connector)
>                         return;
> 
>                 for (i = 0; i < ARRAY_SIZE(force_audio_names); i++)
> -                       drm_property_add_enum(prop, i, i-1, force_audio_names[i]);
> +                       drm_property_add_enum(prop, i-1, force_audio_names[i]);
> 
>                 dev_priv->force_audio_property = prop;
>         }
> @@ -514,7 +514,7 @@ void cdv_intel_attach_broadcast_rgb_property(struct drm_connector *connector)
>                         return;
> 
>                 for (i = 0; i < ARRAY_SIZE(broadcast_rgb_names); i++)
> -                       drm_property_add_enum(prop, i, i, broadcast_rgb_names[i]);
> +                       drm_property_add_enum(prop, i, broadcast_rgb_names[i]);
> 
>                 dev_priv->broadcast_rgb_property = prop;
>         }
> diff --git a/drivers/gpu/drm/gma500/psb_intel_sdvo.c b/drivers/gpu/drm/gma500/psb_intel_sdvo.c
> index 84507912be84..674182805697 100644
> --- a/drivers/gpu/drm/gma500/psb_intel_sdvo.c
> +++ b/drivers/gpu/drm/gma500/psb_intel_sdvo.c
> @@ -2281,7 +2281,7 @@ static bool psb_intel_sdvo_tv_create_property(struct psb_intel_sdvo *psb_intel_s
> 
>         for (i = 0; i < psb_intel_sdvo_connector->format_supported_num; i++)
>                 drm_property_add_enum(
> -                               psb_intel_sdvo_connector->tv_format, i,
> +                               psb_intel_sdvo_connector->tv_format,
>                                 i, tv_format_names[psb_intel_sdvo_connector->tv_format_supported[i]]);
> 
>         psb_intel_sdvo->tv_format_index = psb_intel_sdvo_connector->tv_format_supported[0];
> diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
> index 96e213ec202d..25005023c243 100644
> --- a/drivers/gpu/drm/i915/intel_sdvo.c
> +++ b/drivers/gpu/drm/i915/intel_sdvo.c
> @@ -2779,9 +2779,8 @@ static bool intel_sdvo_tv_create_property(struct intel_sdvo *intel_sdvo,
>                 return false;
> 
>         for (i = 0; i < intel_sdvo_connector->format_supported_num; i++)
> -               drm_property_add_enum(
> -                               intel_sdvo_connector->tv_format, i,
> -                               i, tv_format_names[intel_sdvo_connector->tv_format_supported[i]]);
> +               drm_property_add_enum(intel_sdvo_connector->tv_format, i,
> +                                     tv_format_names[intel_sdvo_connector->tv_format_supported[i]]);
> 
>         intel_sdvo_connector->base.base.state->tv.mode = intel_sdvo_connector->tv_format_supported[0];
>         drm_object_attach_property(&intel_sdvo_connector->base.base.base,
> diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
> index 009713404cc4..7d0bec8dd03d 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_display.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_display.c
> @@ -338,11 +338,9 @@ static struct nouveau_drm_prop_enum_list dither_depth[] = {
>         if (c) {                                                               \
>                 p = drm_property_create(dev, DRM_MODE_PROP_ENUM, n, c);        \
>                 l = (list);                                                    \
> -               c = 0;                                                         \
>                 while (p && l->gen_mask) {                                     \
>                         if (l->gen_mask & (1 << (gen))) {                      \
> -                               drm_property_add_enum(p, c, l->type, l->name); \
> -                               c++;                                           \
> +                               drm_property_add_enum(p, l->type, l->name);    \
>                         }                                                      \
>                         l++;                                                   \
>                 }                                                              \
> diff --git a/include/drm/drm_property.h b/include/drm/drm_property.h
> index d1423c7f3c73..9e2cea518572 100644
> --- a/include/drm/drm_property.h
> +++ b/include/drm/drm_property.h
> @@ -260,7 +260,7 @@ struct drm_property *drm_property_create_object(struct drm_device *dev,
>                                                 uint32_t type);
>  struct drm_property *drm_property_create_bool(struct drm_device *dev,
>                                               u32 flags, const char *name);
> -int drm_property_add_enum(struct drm_property *property, int index,
> +int drm_property_add_enum(struct drm_property *property,
>                           uint64_t value, const char *name);
>  void drm_property_destroy(struct drm_device *dev, struct drm_property *property);
> 
> --
> 2.16.1
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel


More information about the dri-devel mailing list