]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
pinctrl: as3722: Use devm_gpiochip_add_data() to simplify remove path
authorAndrew Davis <afd@ti.com>
Thu, 16 Nov 2023 22:30:45 +0000 (16:30 -0600)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 24 Nov 2023 10:22:12 +0000 (11:22 +0100)
Use devm version of gpiochip add function to handle removal for us.

Signed-off-by: Andrew Davis <afd@ti.com>
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20231116223045.274211-1-afd@ti.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-as3722.c

index 6a5f23cf7a2a2119b6a9c4e43815f5a2094414d2..0d8c75ce20eda97627aef773342a0b63ff6114a1 100644 (file)
@@ -542,7 +542,6 @@ static int as3722_pinctrl_probe(struct platform_device *pdev)
 
        as_pci->dev = &pdev->dev;
        as_pci->as3722 = dev_get_drvdata(pdev->dev.parent);
-       platform_set_drvdata(pdev, as_pci);
 
        as_pci->pins = as3722_pins_desc;
        as_pci->num_pins = ARRAY_SIZE(as3722_pins_desc);
@@ -562,7 +561,7 @@ static int as3722_pinctrl_probe(struct platform_device *pdev)
 
        as_pci->gpio_chip = as3722_gpio_chip;
        as_pci->gpio_chip.parent = &pdev->dev;
-       ret = gpiochip_add_data(&as_pci->gpio_chip, as_pci);
+       ret = devm_gpiochip_add_data(&pdev->dev, &as_pci->gpio_chip, as_pci);
        if (ret < 0) {
                dev_err(&pdev->dev, "Couldn't register gpiochip, %d\n", ret);
                return ret;
@@ -572,21 +571,10 @@ static int as3722_pinctrl_probe(struct platform_device *pdev)
                                0, 0, AS3722_PIN_NUM);
        if (ret < 0) {
                dev_err(&pdev->dev, "Couldn't add pin range, %d\n", ret);
-               goto fail_range_add;
+               return ret;
        }
 
        return 0;
-
-fail_range_add:
-       gpiochip_remove(&as_pci->gpio_chip);
-       return ret;
-}
-
-static void as3722_pinctrl_remove(struct platform_device *pdev)
-{
-       struct as3722_pctrl_info *as_pci = platform_get_drvdata(pdev);
-
-       gpiochip_remove(&as_pci->gpio_chip);
 }
 
 static const struct of_device_id as3722_pinctrl_of_match[] = {
@@ -601,7 +589,6 @@ static struct platform_driver as3722_pinctrl_driver = {
                .of_match_table = as3722_pinctrl_of_match,
        },
        .probe = as3722_pinctrl_probe,
-       .remove_new = as3722_pinctrl_remove,
 };
 module_platform_driver(as3722_pinctrl_driver);