When possible use dev_err_probe help to properly deal with the
PROBE_DEFER error, the benefit is that DEFER issue will be logged
in the devices_deferred debugfs file.
Using dev_err_probe() can reduce code size, and the error value
gets printed.
Signed-off-by: Cai Huoqing <[email protected]>
---
drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c
index b3a43a3b04ff..9fb06b7cde3c 100644
--- a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c
+++ b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c
@@ -24,10 +24,10 @@ static int st_lsm9ds0_power_enable(struct device *dev, struct st_lsm9ds0 *lsm9ds
/* Regulators not mandatory, but if requested we should enable them. */
lsm9ds0->vdd = devm_regulator_get(dev, "vdd");
- if (IS_ERR(lsm9ds0->vdd)) {
- dev_err(dev, "unable to get Vdd supply\n");
- return PTR_ERR(lsm9ds0->vdd);
- }
+ if (IS_ERR(lsm9ds0->vdd))
+ return dev_err_probe(dev, PTR_ERR(lsm9ds0->vdd),
+ "unable to get Vdd supply\n");
+
ret = regulator_enable(lsm9ds0->vdd);
if (ret) {
dev_warn(dev, "Failed to enable specified Vdd supply\n");
@@ -36,9 +36,9 @@ static int st_lsm9ds0_power_enable(struct device *dev, struct st_lsm9ds0 *lsm9ds
lsm9ds0->vdd_io = devm_regulator_get(dev, "vddio");
if (IS_ERR(lsm9ds0->vdd_io)) {
- dev_err(dev, "unable to get Vdd_IO supply\n");
regulator_disable(lsm9ds0->vdd);
- return PTR_ERR(lsm9ds0->vdd_io);
+ return dev_err_probe(dev, PTR_ERR(lsm9ds0->vdd_io),
+ "unable to get Vdd_IO supply\n");
}
ret = regulator_enable(lsm9ds0->vdd_io);
if (ret) {
--
2.25.1
On Tue, 28 Sep 2021 09:40:54 +0800
Cai Huoqing <[email protected]> wrote:
> When possible use dev_err_probe help to properly deal with the
> PROBE_DEFER error, the benefit is that DEFER issue will be logged
> in the devices_deferred debugfs file.
> Using dev_err_probe() can reduce code size, and the error value
> gets printed.
>
> Signed-off-by: Cai Huoqing <[email protected]>
Hi Cai,
Picking a random patch to reply to...
Thanks for your hard work on these. The ones I haven't replied to look
fine to me. It might have been slightly better to slow down your initial
submission of these as then we could perhaps have avoided 2-3 versions
of every patch by identifying shared elements to improve in a smaller set.
Still that's the benefit of hindsight!
I'll not apply these quite yet so as to allow time for driver maintainers
and others to take a look.
If you could tidy up those few minor comments I have that would be great.
Thanks,
Jonathan
> ---
> drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c
> index b3a43a3b04ff..9fb06b7cde3c 100644
> --- a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c
> +++ b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c
> @@ -24,10 +24,10 @@ static int st_lsm9ds0_power_enable(struct device *dev, struct st_lsm9ds0 *lsm9ds
>
> /* Regulators not mandatory, but if requested we should enable them. */
> lsm9ds0->vdd = devm_regulator_get(dev, "vdd");
> - if (IS_ERR(lsm9ds0->vdd)) {
> - dev_err(dev, "unable to get Vdd supply\n");
> - return PTR_ERR(lsm9ds0->vdd);
> - }
> + if (IS_ERR(lsm9ds0->vdd))
> + return dev_err_probe(dev, PTR_ERR(lsm9ds0->vdd),
> + "unable to get Vdd supply\n");
> +
> ret = regulator_enable(lsm9ds0->vdd);
> if (ret) {
> dev_warn(dev, "Failed to enable specified Vdd supply\n");
> @@ -36,9 +36,9 @@ static int st_lsm9ds0_power_enable(struct device *dev, struct st_lsm9ds0 *lsm9ds
>
> lsm9ds0->vdd_io = devm_regulator_get(dev, "vddio");
> if (IS_ERR(lsm9ds0->vdd_io)) {
> - dev_err(dev, "unable to get Vdd_IO supply\n");
> regulator_disable(lsm9ds0->vdd);
> - return PTR_ERR(lsm9ds0->vdd_io);
> + return dev_err_probe(dev, PTR_ERR(lsm9ds0->vdd_io),
> + "unable to get Vdd_IO supply\n");
> }
> ret = regulator_enable(lsm9ds0->vdd_io);
> if (ret) {
On Wed, 29 Sep 2021 18:06:38 +0100
Jonathan Cameron <[email protected]> wrote:
> On Tue, 28 Sep 2021 09:40:54 +0800
> Cai Huoqing <[email protected]> wrote:
>
> > When possible use dev_err_probe help to properly deal with the
> > PROBE_DEFER error, the benefit is that DEFER issue will be logged
> > in the devices_deferred debugfs file.
> > Using dev_err_probe() can reduce code size, and the error value
> > gets printed.
> >
> > Signed-off-by: Cai Huoqing <[email protected]>
+CC Andy who wrote this particular driver.
Change looks simple enough I'll apply it though and at least get 0-day building it.
Applied to the togreg branch of iio.git and pushed out as testing for 0-day to
work it's magic,
Thanks,
Jonathan
>
> Hi Cai,
>
> Picking a random patch to reply to...
>
> Thanks for your hard work on these. The ones I haven't replied to look
> fine to me. It might have been slightly better to slow down your initial
> submission of these as then we could perhaps have avoided 2-3 versions
> of every patch by identifying shared elements to improve in a smaller set.
> Still that's the benefit of hindsight!
>
> I'll not apply these quite yet so as to allow time for driver maintainers
> and others to take a look.
>
> If you could tidy up those few minor comments I have that would be great.
>
> Thanks,
>
> Jonathan
>
> > ---
> > drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c | 12 ++++++------
> > 1 file changed, 6 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c
> > index b3a43a3b04ff..9fb06b7cde3c 100644
> > --- a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c
> > +++ b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c
> > @@ -24,10 +24,10 @@ static int st_lsm9ds0_power_enable(struct device *dev, struct st_lsm9ds0 *lsm9ds
> >
> > /* Regulators not mandatory, but if requested we should enable them. */
> > lsm9ds0->vdd = devm_regulator_get(dev, "vdd");
> > - if (IS_ERR(lsm9ds0->vdd)) {
> > - dev_err(dev, "unable to get Vdd supply\n");
> > - return PTR_ERR(lsm9ds0->vdd);
> > - }
> > + if (IS_ERR(lsm9ds0->vdd))
> > + return dev_err_probe(dev, PTR_ERR(lsm9ds0->vdd),
> > + "unable to get Vdd supply\n");
> > +
> > ret = regulator_enable(lsm9ds0->vdd);
> > if (ret) {
> > dev_warn(dev, "Failed to enable specified Vdd supply\n");
> > @@ -36,9 +36,9 @@ static int st_lsm9ds0_power_enable(struct device *dev, struct st_lsm9ds0 *lsm9ds
> >
> > lsm9ds0->vdd_io = devm_regulator_get(dev, "vddio");
> > if (IS_ERR(lsm9ds0->vdd_io)) {
> > - dev_err(dev, "unable to get Vdd_IO supply\n");
> > regulator_disable(lsm9ds0->vdd);
> > - return PTR_ERR(lsm9ds0->vdd_io);
> > + return dev_err_probe(dev, PTR_ERR(lsm9ds0->vdd_io),
> > + "unable to get Vdd_IO supply\n");
> > }
> > ret = regulator_enable(lsm9ds0->vdd_io);
> > if (ret) {
>
On Thu, Oct 7, 2021 at 8:26 PM Jonathan Cameron <[email protected]> wrote:
> On Wed, 29 Sep 2021 18:06:38 +0100
> Jonathan Cameron <[email protected]> wrote:
> > On Tue, 28 Sep 2021 09:40:54 +0800
> > Cai Huoqing <[email protected]> wrote:
> >
> > > When possible use dev_err_probe help to properly deal with the
> > > PROBE_DEFER error, the benefit is that DEFER issue will be logged
> > > in the devices_deferred debugfs file.
> > > Using dev_err_probe() can reduce code size, and the error value
> > > gets printed.
> > >
> > > Signed-off-by: Cai Huoqing <[email protected]>
>
> +CC Andy who wrote this particular driver.
Thanks, Jonathan!
> Change looks simple enough I'll apply it though and at least get 0-day building it.
>
> Applied to the togreg branch of iio.git and pushed out as testing for 0-day to
> work it's magic,
...
> > > + return dev_err_probe(dev, PTR_ERR(lsm9ds0->vdd),
> > > + "unable to get Vdd supply\n");
> > > + return dev_err_probe(dev, PTR_ERR(lsm9ds0->vdd_io),
> > > + "unable to get Vdd_IO supply\n");
I prefer seeing them as one liners, but I've no strong opinion.
--
With Best Regards,
Andy Shevchenko