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