]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
hwmon: (iio_hwmon) Simplify attr.name generation in iio_hwmon_probe()
authorAndrey Smirnov <andrew.smirnov@gmail.com>
Wed, 3 Apr 2019 04:28:11 +0000 (21:28 -0700)
committerGuenter Roeck <linux@roeck-us.net>
Tue, 16 Apr 2019 00:19:53 +0000 (17:19 -0700)
Since every call to devm_kasprintf() in the switch statement is mostly
the same, we can move all of the shared code outside and capture
differencies with two helper variables. No functional change intended.

Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Cc: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/iio_hwmon.c

index 5c3c08449de783a3caba25532f5fbf68b5947789..1770423f7a80929fbd895c11b46b08b0daa7957c 100644 (file)
@@ -92,6 +92,9 @@ static int iio_hwmon_probe(struct platform_device *pdev)
                return -ENOMEM;
 
        for (i = 0; i < st->num_channels; i++) {
+               const char *prefix;
+               int n;
+
                a = devm_kzalloc(dev, sizeof(*a), GFP_KERNEL);
                if (a == NULL)
                        return -ENOMEM;
@@ -103,28 +106,28 @@ static int iio_hwmon_probe(struct platform_device *pdev)
 
                switch (type) {
                case IIO_VOLTAGE:
-                       a->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL,
-                                                              "in%d_input",
-                                                              in_i++);
+                       n = in_i++;
+                       prefix = "in";
                        break;
                case IIO_TEMP:
-                       a->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL,
-                                                              "temp%d_input",
-                                                              temp_i++);
+                       n = temp_i++;
+                       prefix = "temp";
                        break;
                case IIO_CURRENT:
-                       a->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL,
-                                                              "curr%d_input",
-                                                              curr_i++);
+                       n = curr_i++;
+                       prefix = "curr";
                        break;
                case IIO_HUMIDITYRELATIVE:
-                       a->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL,
-                                                              "humidity%d_input",
-                                                              humidity_i++);
+                       n = humidity_i++;
+                       prefix = "humidity";
                        break;
                default:
                        return -EINVAL;
                }
+
+               a->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL,
+                                                      "%s%d_input",
+                                                      prefix, n);
                if (a->dev_attr.attr.name == NULL)
                        return -ENOMEM;