gpio: max730x: use devres to shrink and simplify code

Use managed variants of gpiochip_add_data() and mutex_init() to drop a
label and lose a couple LOC.

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20241017121447.73754-1-brgl@bgdev.pl
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
Bartosz Golaszewski 2024-10-17 14:14:47 +02:00
parent 68d51a0207
commit 57e0e71887

View File

@ -165,7 +165,10 @@ int __max730x_probe(struct max7301 *ts)
pdata = dev_get_platdata(dev);
mutex_init(&ts->lock);
ret = devm_mutex_init(ts->dev, &ts->lock);
if (ret)
return ret;
dev_set_drvdata(dev, ts);
/* Power up the chip and disable IRQ output */
@ -206,17 +209,11 @@ int __max730x_probe(struct max7301 *ts)
int offset = (i - 1) * 4 + j;
ret = max7301_direction_input(&ts->chip, offset);
if (ret)
goto exit_destroy;
return ret;
}
}
ret = gpiochip_add_data(&ts->chip, ts);
if (!ret)
return ret;
exit_destroy:
mutex_destroy(&ts->lock);
return ret;
return devm_gpiochip_add_data(ts->dev, &ts->chip, ts);
}
EXPORT_SYMBOL_GPL(__max730x_probe);
@ -226,8 +223,6 @@ void __max730x_remove(struct device *dev)
/* Power down the chip and disable IRQ output */
ts->write(dev, 0x04, 0x00);
gpiochip_remove(&ts->chip);
mutex_destroy(&ts->lock);
}
EXPORT_SYMBOL_GPL(__max730x_remove);