]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
power: supply: twl4030-charger: allocate iio by devm_iio_channel_get() and fix error path
authorH. Nikolaus Schaller <hns@goldelico.com>
Wed, 14 Jun 2017 09:25:53 +0000 (11:25 +0200)
committerSebastian Reichel <sre@kernel.org>
Wed, 14 Jun 2017 20:10:43 +0000 (22:10 +0200)
Suggested-by: Sebastian Reichel <sre@kernel.org>
Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
drivers/power/supply/twl4030_charger.c

index 07c70e59f31aee9b061e49bc3a80a7b963cf92ec..33f2415680d9832053efdda97acd13d5fce5f4a0 100644 (file)
@@ -1013,7 +1013,7 @@ static int twl4030_bci_probe(struct platform_device *pdev)
                return ret;
        }
 
-       bci->channel_vac = iio_channel_get(&pdev->dev, "vac");
+       bci->channel_vac = devm_iio_channel_get(&pdev->dev, "vac");
        if (IS_ERR(bci->channel_vac)) {
                bci->channel_vac = NULL;
                dev_warn(&pdev->dev, "could not request vac iio channel");
@@ -1040,7 +1040,7 @@ static int twl4030_bci_probe(struct platform_device *pdev)
                               TWL4030_INTERRUPTS_BCIIMR1A);
        if (ret < 0) {
                dev_err(&pdev->dev, "failed to unmask interrupts: %d\n", ret);
-               goto fail;
+               return ret;
        }
 
        reg = ~(u32)(TWL4030_VBATOV | TWL4030_VBUSOV | TWL4030_ACCHGOV);
@@ -1069,10 +1069,6 @@ static int twl4030_bci_probe(struct platform_device *pdev)
                twl4030_charger_enable_backup(0, 0);
 
        return 0;
-fail:
-       iio_channel_release(bci->channel_vac);
-
-       return ret;
 }
 
 static int twl4030_bci_remove(struct platform_device *pdev)
@@ -1083,8 +1079,6 @@ static int twl4030_bci_remove(struct platform_device *pdev)
        twl4030_charger_enable_usb(bci, false);
        twl4030_charger_enable_backup(0, 0);
 
-       iio_channel_release(bci->channel_vac);
-
        device_remove_file(&bci->usb->dev, &dev_attr_mode);
        device_remove_file(&bci->ac->dev, &dev_attr_mode);
        /* mask interrupts */