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>
This commit is contained in:
Andrey Smirnov 2019-04-02 21:28:11 -07:00 committed by Guenter Roeck
parent 5aaa58734d
commit cb202bb8b3
1 changed files with 15 additions and 12 deletions

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