diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2019-04-03 07:28:11 +0300 |
---|---|---|
committer | Guenter Roeck <linux@roeck-us.net> | 2019-04-16 03:19:53 +0300 |
commit | cb202bb8b3238f12fdb682e0361be9570b47288d (patch) | |
tree | 5d62349974914a2329e4bbc5d2ce28e70bce9ec1 /drivers/hwmon/iio_hwmon.c | |
parent | 5aaa58734d8876640fe0a730c699ce7b9ea90b1c (diff) | |
download | linux-cb202bb8b3238f12fdb682e0361be9570b47288d.tar.xz |
hwmon: (iio_hwmon) Simplify attr.name generation in iio_hwmon_probe()
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>
Diffstat (limited to 'drivers/hwmon/iio_hwmon.c')
-rw-r--r-- | drivers/hwmon/iio_hwmon.c | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/drivers/hwmon/iio_hwmon.c b/drivers/hwmon/iio_hwmon.c index 5c3c08449de7..1770423f7a80 100644 --- a/drivers/hwmon/iio_hwmon.c +++ b/drivers/hwmon/iio_hwmon.c @@ -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; |