2021-09-21 03:55:51

by Anand Moon

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

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 <[email protected]>
Signed-off-by: Anand Moon <[email protected]>
---
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(-)

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)
--
2.33.0


2021-09-21 05:36:47

by Martin Blumenstingl

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

Hi Anand,

On Mon, Sep 20, 2021 at 10:38 PM Anand Moon <[email protected]> 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

2021-09-21 20:29:26

by Anand Moon

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

Hi Martin,

On Tue, 21 Sept 2021 at 11:04, Martin Blumenstingl
<[email protected]> wrote:
>
> Hi Anand,
>
> On Mon, Sep 20, 2021 at 10:38 PM Anand Moon <[email protected]> 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

2021-09-21 20:45:32

by Martin Blumenstingl

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

Hi Anand,

On Tue, Sep 21, 2021 at 9:21 PM Anand Moon <[email protected]> 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