diff mbox series

[PATCHv2] regulator: pwm-regulator: Make use of the helper function dev_err_probe()

Message ID 20210920203735.675-1-linux.amoon@gmail.com (mailing list archive)
State Superseded
Headers show
Series [PATCHv2] regulator: pwm-regulator: Make use of the helper function dev_err_probe() | expand

Commit Message

Anand Moon Sept. 20, 2021, 8:37 p.m. UTC
devm_pwm_get() can return -EPROBE_DEFER if the pwm regulator is not
ready yet. Use dev_err_probe() for pwm regulator resources
to indicate the deferral reason when waiting for the
resource to come up.

Fixes: 0cd71b9a43ad ("regulator: pwm: Don't warn on probe deferral")

Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Anand Moon <linux.amoon@gmail.com>
---
V1 - Fix the wrong probe defer for devm_regulator_register.
   - Fix the commit message.
---
 drivers/regulator/pwm-regulator.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

Comments

Martin Blumenstingl Sept. 21, 2021, 5:34 a.m. UTC | #1
Hi Anand,

On Mon, Sep 20, 2021 at 10:38 PM Anand Moon <linux.amoon@gmail.com> wrote:
>
> devm_pwm_get() can return -EPROBE_DEFER if the pwm regulator is not
> ready yet. Use dev_err_probe() for pwm regulator resources
> to indicate the deferral reason when waiting for the
> resource to come up.
>
> Fixes: 0cd71b9a43ad ("regulator: pwm: Don't warn on probe deferral")
Personally I consider this as an improvement (having the deferral
reason show up in debugfs), not a bugfix.
Because of that I would drop the Fixes tag.
Let's wait on other people's opinions though.

[...]
> -                       dev_err(&pdev->dev, "Failed to get PWM: %d\n", ret);
> -               return ret;
> +               return dev_err_probe(&pdev->dev, PTR_ERR(drvdata->pwm),
> +                                    "Failed to register regulator %s\n",
The message here should still be similar to the original one since the
actual problem is that we could not get a reference to the PWM
controller. At this point we are not trying to register the
pwm-regulator yet.


Best regards,
Martin
Anand Moon Sept. 21, 2021, 7:21 p.m. UTC | #2
Hi Martin,

On Tue, 21 Sept 2021 at 11:04, Martin Blumenstingl
<martin.blumenstingl@googlemail.com> wrote:
>
> Hi Anand,
>
> On Mon, Sep 20, 2021 at 10:38 PM Anand Moon <linux.amoon@gmail.com> wrote:
> >
> > devm_pwm_get() can return -EPROBE_DEFER if the pwm regulator is not
> > ready yet. Use dev_err_probe() for pwm regulator resources
> > to indicate the deferral reason when waiting for the
> > resource to come up.
> >
> > Fixes: 0cd71b9a43ad ("regulator: pwm: Don't warn on probe deferral")
> Personally I consider this as an improvement (having the deferral
> reason show up in debugfs), not a bugfix.
> Because of that I would drop the Fixes tag.
> Let's wait on other people's opinions though.
>
Ok will drop this in the next version.

> [...]
> > -                       dev_err(&pdev->dev, "Failed to get PWM: %d\n", ret);
> > -               return ret;
> > +               return dev_err_probe(&pdev->dev, PTR_ERR(drvdata->pwm),
> > +                                    "Failed to register regulator %s\n",
> The message here should still be similar to the original one since the
> actual problem is that we could not get a reference to the PWM
> controller. At this point we are not trying to register the
> pwm-regulator yet.
>

Yep, Typo I mixed up the logs completely.
it should be  "Failed to get PWM, deferring probe"

Thanks
-Anand
>
> Best regards,
> Martin
Martin Blumenstingl Sept. 21, 2021, 7:28 p.m. UTC | #3
Hi Anand,

On Tue, Sep 21, 2021 at 9:21 PM Anand Moon <linux.amoon@gmail.com> wrote:
[...]
> > > -                       dev_err(&pdev->dev, "Failed to get PWM: %d\n", ret);
> > > -               return ret;
> > > +               return dev_err_probe(&pdev->dev, PTR_ERR(drvdata->pwm),
> > > +                                    "Failed to register regulator %s\n",
> > The message here should still be similar to the original one since the
> > actual problem is that we could not get a reference to the PWM
> > controller. At this point we are not trying to register the
> > pwm-regulator yet.
> >
>
> Yep, Typo I mixed up the logs completely.
> it should be  "Failed to get PWM, deferring probe"
I think it should only be "Failed to get PWM" only - without "deferring probe".
If the PWM is missing in .dts (which is not valid but might happen for
someone who's creating a new .dts) then the "deferring probe" part is
not correct as the error code is not -EPROBE_DEFER (it may be -ENOENT
instead - or similar).


Best regards,
Martin
diff mbox series

Patch

diff --git a/drivers/regulator/pwm-regulator.c b/drivers/regulator/pwm-regulator.c
index 7629476d94ae..3bd020641b67 100644
--- a/drivers/regulator/pwm-regulator.c
+++ b/drivers/regulator/pwm-regulator.c
@@ -353,13 +353,9 @@  static int pwm_regulator_probe(struct platform_device *pdev)
 
 	drvdata->pwm = devm_pwm_get(&pdev->dev, NULL);
 	if (IS_ERR(drvdata->pwm)) {
-		ret = PTR_ERR(drvdata->pwm);
-		if (ret == -EPROBE_DEFER)
-			dev_dbg(&pdev->dev,
-				"Failed to get PWM, deferring probe\n");
-		else
-			dev_err(&pdev->dev, "Failed to get PWM: %d\n", ret);
-		return ret;
+		return dev_err_probe(&pdev->dev, PTR_ERR(drvdata->pwm),
+				     "Failed to register regulator %s\n",
+				     drvdata->desc.name);
 	}
 
 	if (init_data->constraints.boot_on || init_data->constraints.always_on)