regulator: bd71815: bd71828: bd9576: Use dev_err_probe()
authorMatti Vaittinen <mazziesaccount@gmail.com>
Wed, 23 Nov 2022 12:00:21 +0000 (14:00 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 23 Nov 2022 13:09:05 +0000 (13:09 +0000)
The dev_err_probe() has (at least) following benefits over dev_err()
when printing an error print for a failed function call at a device
driver probe:
        - Omit error level print if error is 'EPRBE_DEFER'
        - Standardized print format for returned error
        - return the error value allowing shortening calls like:

        if (ret) {
                dev_err(...);
                return ret;
        }

        to

        if (ret)
                return dev_err_probe(...);

Convert the ROHM BD71828, ROHM BD71815 and ROHM BD9576 regulator drivers
to use the dev_err_probe() when returned error is not hard-coded constant.

Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
Link: https://lore.kernel.org/r/0b644da4a8f58558ffe474d2593f85c46de2f965.1669203610.git.mazziesaccount@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/bd71815-regulator.c
drivers/regulator/bd71828-regulator.c
drivers/regulator/bd9576-regulator.c

index c2b8b8be78242ee0f080388c5d75e2fb1d79bce7..8b55046eded87ece97e2bf23cbe98a33d5f371cf 100644 (file)
@@ -602,12 +602,10 @@ static int bd7181x_probe(struct platform_device *pdev)
                        config.ena_gpiod = NULL;
 
                rdev = devm_regulator_register(&pdev->dev, desc, &config);
-               if (IS_ERR(rdev)) {
-                       dev_err(&pdev->dev,
-                               "failed to register %s regulator\n",
-                               desc->name);
-                       return PTR_ERR(rdev);
-               }
+               if (IS_ERR(rdev))
+                       return dev_err_probe(&pdev->dev, PTR_ERR(rdev),
+                                            "failed to register %s regulator\n",
+                                            desc->name);
        }
        return 0;
 }
index a4f09a5a30cabc107741310ccba92a4f4b37ce96..ad728f4f22411187dbabf1a76eef1361622c5a84 100644 (file)
@@ -750,23 +750,20 @@ static int bd71828_probe(struct platform_device *pdev)
                rd = &bd71828_rdata[i];
                rdev = devm_regulator_register(&pdev->dev,
                                               &rd->desc, &config);
-               if (IS_ERR(rdev)) {
-                       dev_err(&pdev->dev,
-                               "failed to register %s regulator\n",
-                               rd->desc.name);
-                       return PTR_ERR(rdev);
-               }
+               if (IS_ERR(rdev))
+                       return dev_err_probe(&pdev->dev, PTR_ERR(rdev),
+                                            "failed to register %s regulator\n",
+                                            rd->desc.name);
+
                for (j = 0; j < rd->reg_init_amnt; j++) {
                        ret = regmap_update_bits(config.regmap,
                                                 rd->reg_inits[j].reg,
                                                 rd->reg_inits[j].mask,
                                                 rd->reg_inits[j].val);
-                       if (ret) {
-                               dev_err(&pdev->dev,
-                                       "regulator %s init failed\n",
-                                       rd->desc.name);
-                               return ret;
-                       }
+                       if (ret)
+                               return dev_err_probe(&pdev->dev, ret,
+                                                    "regulator %s init failed\n",
+                                                    rd->desc.name);
                }
        }
        return 0;
index 393c8693b327e2af44e641271e019654919f3572..02c70768652b8a62981f296e934ffe2143493864 100644 (file)
@@ -953,30 +953,28 @@ static int bd957x_probe(struct platform_device *pdev)
                                           dev_fwnode(pdev->dev.parent),
                                           "rohm,vout1-en", GPIOD_OUT_LOW,
                                           "vout1-en");
-               if (!IS_ERR(en)) {
-                       /* VOUT1_OPS gpio ctrl */
-                       /*
-                        * Regulator core prioritizes the ena_gpio over
-                        * enable/disable/is_enabled callbacks so no need to
-                        * clear them. We can still use same ops
-                        */
+
+               /* VOUT1_OPS gpio ctrl */
+               /*
+                * Regulator core prioritizes the ena_gpio over
+                * enable/disable/is_enabled callbacks so no need to clear them
+                * even if GPIO is used. So, we can still use same ops.
+                *
+                * In theory it is possible someone wants to set vout1-en LOW
+                * during OTP loading and set VOUT1 to be controlled by GPIO -
+                * but control the GPIO from some where else than this driver.
+                * For that to work we should unset the is_enabled callback
+                * here.
+                *
+                * I believe such case where rohm,vout1-en-low is set and
+                * vout1-en-gpios is not is likely to be a misconfiguration.
+                * So let's just err out for now.
+                */
+               if (!IS_ERR(en))
                        config.ena_gpiod = en;
-               } else {
-                       /*
-                        * In theory it is possible someone wants to set
-                        * vout1-en LOW during OTP loading and set VOUT1 to be
-                        * controlled by GPIO - but control the GPIO from some
-                        * where else than this driver. For that to work we
-                        * should unset the is_enabled callback here.
-                        *
-                        * I believe such case where rohm,vout1-en-low is set
-                        * and vout1-en-gpios is not is likely to be a
-                        * misconfiguration. So let's just err out for now.
-                        */
-                       dev_err(&pdev->dev,
-                               "Failed to get VOUT1 control GPIO\n");
-                       return PTR_ERR(en);
-               }
+               else
+                       return dev_err_probe(&pdev->dev, PTR_ERR(en),
+                                       "Failed to get VOUT1 control GPIO\n");
        }
 
        /*
@@ -1037,12 +1035,10 @@ static int bd957x_probe(struct platform_device *pdev)
 
                r->rdev = devm_regulator_register(&pdev->dev, desc,
                                                           &config);
-               if (IS_ERR(r->rdev)) {
-                       dev_err(&pdev->dev,
-                               "failed to register %s regulator\n",
-                               desc->name);
-                       return PTR_ERR(r->rdev);
-               }
+               if (IS_ERR(r->rdev))
+                       return dev_err_probe(&pdev->dev, PTR_ERR(r->rdev),
+                                       "failed to register %s regulator\n",
+                                       desc->name);
                /*
                 * Clear the VOUT1 GPIO setting - rest of the regulators do not
                 * support GPIO control