mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 23:23:03 +00:00
leds: tca6507: Use devm_gpiochip_add_data() to simplify remove path
Use devm version of gpiochip add function to handle removal for us. Signed-off-by: Andrew Davis <afd@ti.com> Link: https://lore.kernel.org/r/20231116224121.302150-1-afd@ti.com Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
parent
804073f542
commit
130199ec02
@ -638,19 +638,13 @@ static int tca6507_probe_gpios(struct device *dev,
|
||||
tca->gpio.direction_output = tca6507_gpio_direction_output;
|
||||
tca->gpio.set = tca6507_gpio_set_value;
|
||||
tca->gpio.parent = dev;
|
||||
err = gpiochip_add_data(&tca->gpio, tca);
|
||||
err = devm_gpiochip_add_data(dev, &tca->gpio, tca);
|
||||
if (err) {
|
||||
tca->gpio.ngpio = 0;
|
||||
return err;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void tca6507_remove_gpio(struct tca6507_chip *tca)
|
||||
{
|
||||
if (tca->gpio.ngpio)
|
||||
gpiochip_remove(&tca->gpio);
|
||||
}
|
||||
#else /* CONFIG_GPIOLIB */
|
||||
static int tca6507_probe_gpios(struct device *dev,
|
||||
struct tca6507_chip *tca,
|
||||
@ -658,9 +652,6 @@ static int tca6507_probe_gpios(struct device *dev,
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static void tca6507_remove_gpio(struct tca6507_chip *tca)
|
||||
{
|
||||
}
|
||||
#endif /* CONFIG_GPIOLIB */
|
||||
|
||||
static struct tca6507_platform_data *
|
||||
@ -793,7 +784,6 @@ static void tca6507_remove(struct i2c_client *client)
|
||||
if (tca_leds[i].led_cdev.name)
|
||||
led_classdev_unregister(&tca_leds[i].led_cdev);
|
||||
}
|
||||
tca6507_remove_gpio(tca);
|
||||
cancel_work_sync(&tca->work);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user