Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+6 -11
+6 -11
drivers/gpio/gpio-max730x.c
··· 165 165 166 166 pdata = dev_get_platdata(dev); 167 167 168 - mutex_init(&ts->lock); 168 + ret = devm_mutex_init(ts->dev, &ts->lock); 169 + if (ret) 170 + return ret; 171 + 169 172 dev_set_drvdata(dev, ts); 170 173 171 174 /* Power up the chip and disable IRQ output */ ··· 209 206 int offset = (i - 1) * 4 + j; 210 207 ret = max7301_direction_input(&ts->chip, offset); 211 208 if (ret) 212 - goto exit_destroy; 209 + return ret; 213 210 } 214 211 } 215 212 216 - ret = gpiochip_add_data(&ts->chip, ts); 217 - if (!ret) 218 - return ret; 219 - 220 - exit_destroy: 221 - mutex_destroy(&ts->lock); 222 - return ret; 213 + return devm_gpiochip_add_data(ts->dev, &ts->chip, ts); 223 214 } 224 215 EXPORT_SYMBOL_GPL(__max730x_probe); 225 216 ··· 223 226 224 227 /* Power down the chip and disable IRQ output */ 225 228 ts->write(dev, 0x04, 0x00); 226 - gpiochip_remove(&ts->chip); 227 - mutex_destroy(&ts->lock); 228 229 } 229 230 EXPORT_SYMBOL_GPL(__max730x_remove); 230 231