regulator: pwm-regulator: Make use of the helper function dev_err_probe()
PATCH v2 1/1 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.
---
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(-)
drivers/regulator/pwm-regulator.c +3 -7
@@ -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)
Signature · 7 lines
2.33.0 _______________________________________________ linux-amlogic mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-amlogic
Martin Blumenstingl
reviewerHi Anand,
Quoted 7 lines · Anand Moon
devm_pwm_get()can return -EPROBE_DEFER if the pwm regulator is not ready yet. Usedev_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.
[...]
drivers/regulator/pwm-regulator.c static int pwm_regulator_probe(struct platform_device *pdev) · line 357
Quoted 4 lines
drivers/regulator/pwm-regulator.c +2
-2-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
Hi Martin,
Quoted 10 lines · Martin Blumenstingl
Hi Anand,
Quoted 6 lines · Anand Moon
devm_pwm_get()can return -EPROBE_DEFER if the pwm regulator is not ready yet. Usedev_err_probe()for pwm regulator resources to indicate the deferral reason when waiting for the resource to come up.
Quoted 6 lines
Quoted 1 line
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.
Quoted 10 lines
[...]
drivers/regulator/pwm-regulator.c static int pwm_regulator_probe(struct platform_device *pdev) · line 357
Quoted 4 lines
drivers/regulator/pwm-regulator.c +2
-2-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
Quoted 3 lines
Best regards,
Martin
Martin Blumenstingl
reviewerHi Anand,
On Tue, Sep 21, 2021 at 9:21 PM Anand Moon <[email protected]> wrote:
[...]
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
drivers/regulator/pwm-regulator.c +2
-2-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",
Quoted 8 lines
Quoted 5 lines
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