mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-17 10:46:33 +00:00
gpio: twl4030: 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> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
parent
2148a7ac3b
commit
fbc8ab2ccd
@ -492,18 +492,6 @@ static struct twl4030_gpio_platform_data *of_gpio_twl4030(struct device *dev,
|
||||
return omap_twl_info;
|
||||
}
|
||||
|
||||
/* Cannot use as gpio_twl4030_probe() calls us */
|
||||
static int gpio_twl4030_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct gpio_twl4030_priv *priv = platform_get_drvdata(pdev);
|
||||
|
||||
gpiochip_remove(&priv->gpio_chip);
|
||||
|
||||
/* REVISIT no support yet for deregistering all the IRQs */
|
||||
WARN_ON(!is_module());
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int gpio_twl4030_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct twl4030_gpio_platform_data *pdata = dev_get_platdata(&pdev->dev);
|
||||
@ -577,16 +565,13 @@ no_irqs:
|
||||
if (pdata->use_leds)
|
||||
priv->gpio_chip.ngpio += 2;
|
||||
|
||||
ret = gpiochip_add_data(&priv->gpio_chip, priv);
|
||||
ret = devm_gpiochip_add_data(&pdev->dev, &priv->gpio_chip, priv);
|
||||
if (ret < 0) {
|
||||
dev_err(&pdev->dev, "could not register gpiochip, %d\n", ret);
|
||||
priv->gpio_chip.ngpio = 0;
|
||||
gpio_twl4030_remove(pdev);
|
||||
goto out;
|
||||
return ret;
|
||||
}
|
||||
|
||||
platform_set_drvdata(pdev, priv);
|
||||
|
||||
if (pdata->setup) {
|
||||
int status;
|
||||
|
||||
@ -596,8 +581,7 @@ no_irqs:
|
||||
dev_dbg(&pdev->dev, "setup --> %d\n", status);
|
||||
}
|
||||
|
||||
out:
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct of_device_id twl_gpio_match[] = {
|
||||
@ -615,7 +599,6 @@ static struct platform_driver gpio_twl4030_driver = {
|
||||
.of_match_table = twl_gpio_match,
|
||||
},
|
||||
.probe = gpio_twl4030_probe,
|
||||
.remove = gpio_twl4030_remove,
|
||||
};
|
||||
|
||||
static int __init gpio_twl4030_init(void)
|
||||
|
Loading…
x
Reference in New Issue
Block a user