clk: cdce925: simplify using devm_regulator_get_enable()
authorMatti Vaittinen <mazziesaccount@gmail.com>
Fri, 19 Aug 2022 19:17:53 +0000 (22:17 +0300)
committerStephen Boyd <sboyd@kernel.org>
Mon, 17 Oct 2022 23:06:49 +0000 (16:06 -0700)
Simplify the driver using devm_regulator_get_enable() instead of
open-coding the devm_add_action_or_reset().

A (minor?) functional change is that we don't print an error in case of a
deferred probe. Now we also print the error no matter which of the
involved calls caused the failure.

Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
Link: https://lore.kernel.org/r/1f46b06be44527a93cd0bfd5de2fa8e2899524ab.1660934107.git.mazziesaccount@gmail.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/clk-cdce925.c

index ef9a2d44e40c3670d205975bc2435f2204431711..6350682f7e6d23d7035c6cc1a83f30d413678ebc 100644 (file)
@@ -603,28 +603,15 @@ of_clk_cdce925_get(struct of_phandle_args *clkspec, void *_data)
        return &data->clk[idx].hw;
 }
 
-static void cdce925_regulator_disable(void *regulator)
-{
-       regulator_disable(regulator);
-}
-
 static int cdce925_regulator_enable(struct device *dev, const char *name)
 {
-       struct regulator *regulator;
        int err;
 
-       regulator = devm_regulator_get(dev, name);
-       if (IS_ERR(regulator))
-               return PTR_ERR(regulator);
-
-       err = regulator_enable(regulator);
-       if (err) {
-               dev_err(dev, "Failed to enable %s: %d\n", name, err);
-               return err;
-       }
+       err = devm_regulator_get_enable(dev, name);
+       if (err)
+               dev_err_probe(dev, err, "Failed to enable %s:\n", name);
 
-       return devm_add_action_or_reset(dev, cdce925_regulator_disable,
-                                       regulator);
+       return err;
 }
 
 /* The CDCE925 uses a funky way to read/write registers. Bulk mode is