diff mbox

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

Message ID A98B49F3E938DC4A837FD9A548D117E612880037@IRSMSX106.ger.corp.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Stanislav Lisovskiy April 23, 2018, 1:59 p.m. UTC
Acked-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>

Best Regards,

Lisovskiy Stanislav

Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo>
diff mbox

Patch

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);