regulator: fixed: Let core handle GPIO descriptor
authorLinus Walleij <[email protected]>
Thu, 6 Dec 2018 12:43:38 +0000 (13:43 +0100)
committerMark Brown <[email protected]>
Tue, 11 Dec 2018 01:03:40 +0000 (01:03 +0000)
Use the gpiod_get() rather than the devm_* version so that the
regulator core can handle the lifecycle of these descriptors.

Fixes: efdfeb079cc3 ("regulator: fixed: Convert to use GPIO descriptor only")
Signed-off-by: Linus Walleij <[email protected]>
Reviewed-by: Marek Szyprowski <[email protected]>
Tested-by: Marek Szyprowski <[email protected]>
Reviewed-by: Charles Keepax <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
drivers/regulator/fixed.c

index ccc29038f19a98c8d7b292ab60536cc616345c0a..9abdb91307662a8abf5a64e2d52c023180755231 100644 (file)
@@ -183,7 +183,11 @@ static int reg_fixed_voltage_probe(struct platform_device *pdev)
         */
        gflags |= GPIOD_FLAGS_BIT_NONEXCLUSIVE;
 
-       cfg.ena_gpiod = devm_gpiod_get_optional(&pdev->dev, NULL, gflags);
+       /*
+        * Do not use devm* here: the regulator core takes over the
+        * lifecycle management of the GPIO descriptor.
+        */
+       cfg.ena_gpiod = gpiod_get_optional(&pdev->dev, NULL, gflags);
        if (IS_ERR(cfg.ena_gpiod))
                return PTR_ERR(cfg.ena_gpiod);