Re: [PATCH v2 1/8] iio: dac: ad8801: Make use of the helper function dev_err_probe()

From: Jonathan Cameron
Date: Thu Oct 07 2021 - 13:14:27 EST


On Tue, 28 Sep 2021 09:38:54 +0800
Cai Huoqing <caihuoqing@xxxxxxxxx> 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 <caihuoqing@xxxxxxxxx>

Hi Cai,

I made a modification to this patch whilst applying as described below.
Please take care to not mix different types of change like you did here
in one patch.

With that change applied to the togreg branch of iio.git and pushed out as testing
for 0-day to work it's magic and see if we missed anything,

Thanks,

Jonathan

> ---
> drivers/iio/dac/ad8801.c | 15 +++++++--------
> 1 file changed, 7 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/iio/dac/ad8801.c b/drivers/iio/dac/ad8801.c
> index 6354b7c8f052..8acb9fee273c 100644
> --- a/drivers/iio/dac/ad8801.c
> +++ b/drivers/iio/dac/ad8801.c
> @@ -123,10 +123,9 @@ static int ad8801_probe(struct spi_device *spi)
> id = spi_get_device_id(spi);
>
> state->vrefh_reg = devm_regulator_get(&spi->dev, "vrefh");
> - if (IS_ERR(state->vrefh_reg)) {
> - dev_err(&spi->dev, "Vrefh regulator not specified\n");
> - return PTR_ERR(state->vrefh_reg);
> - }
> + if (IS_ERR(state->vrefh_reg))
> + return dev_err_probe(&spi->dev, PTR_ERR(state->vrefh_reg),
> + "Vrefh regulator not specified\n");
>
> ret = regulator_enable(state->vrefh_reg);
> if (ret) {
> @@ -146,15 +145,15 @@ static int ad8801_probe(struct spi_device *spi)
> if (id->driver_data == ID_AD8803) {
> state->vrefl_reg = devm_regulator_get(&spi->dev, "vrefl");
> if (IS_ERR(state->vrefl_reg)) {
> - dev_err(&spi->dev, "Vrefl regulator not specified\n");
> - ret = PTR_ERR(state->vrefl_reg);
> + ret = dev_err_probe(&spi->dev, PTR_ERR(state->vrefl_reg),
> + "Vrefl regulator not specified\n");
> goto error_disable_vrefh_reg;
> }
>
> ret = regulator_enable(state->vrefl_reg);
> if (ret) {
> - dev_err(&spi->dev, "Failed to enable vrefl regulator: %d\n",
> - ret);
> + dev_err(&spi->dev,
> + "Failed to enable vrefl regulator: %d\n", ret);
This last change is unconnected to the rest of the patch. I've dropped it whilst
applying.

> goto error_disable_vrefh_reg;
> }
>