All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gregor Boirie <gregor.boirie@parrot.com>
To: Linus Walleij <linus.walleij@linaro.org>,
	Jonathan Cameron <jic23@kernel.org>, <linux-iio@vger.kernel.org>
Cc: Lars-Peter Clausen <lars@metafoo.de>,
	Richard Leitner <dev@g0hl1n.net>,
	Krzysztof Kozlowski <k.kozlowski@samsung.com>,
	Gwendal Grignou <gwendal@chromium.org>,
	Mark Brown <broonie@kernel.org>
Subject: Re: [PATCH 1/5] iio: magn: ak8975: fix regulator usage
Date: Wed, 22 Jun 2016 13:53:12 +0200	[thread overview]
Message-ID: <576A7C28.70905@parrot.com> (raw)
In-Reply-To: <1466547498-15484-2-git-send-email-linus.walleij@linaro.org>



On 06/22/2016 12:18 AM, Linus Walleij wrote:
> IS_ERR_OR_NULL() should never be used with regulators because
> a NULL pointer may be a perfectly valid dummy regulator
>
> We should always succeed to fetch and enable a regulator, but
> it may be a dummy. That is fine, so bail out for any real
> errors or probe deferrals
>
> Include the error code in the warning print so we know what
> kind of problem we're dealing with (for example it is nice to
> see if it is a probe deferral).
>
> As we will bail out of probe if the regulator is erroneous,
> just issue regulator_disable() on the poweroff path: it will
> succeed.
>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: Lars-Peter Clausen Lars-Peter Clausen <lars@metafoo.de>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
>   drivers/iio/magnetometer/ak8975.c | 15 +++++++--------
>   1 file changed, 7 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/ak8975.c
> index 609a2c401b5d..bc0770205b2d 100644
> --- a/drivers/iio/magnetometer/ak8975.c
> +++ b/drivers/iio/magnetometer/ak8975.c
> @@ -389,17 +389,17 @@ static int ak8975_power_on(struct i2c_client *client)
>   	int ret;
>   
>   	data->vdd = devm_regulator_get(&client->dev, "vdd");
> -	if (IS_ERR_OR_NULL(data->vdd)) {
> +	if (IS_ERR(data->vdd)) {
>   		ret = PTR_ERR(data->vdd);
> -		if (ret == -ENODEV)
> -			ret = 0;
what if dummy supplies are not allowed and regulator is not declared / 
found into device tree ?

I have no such regulator on some boards, just a main power supply that 
is not driven by soft.
How should this be handled in this case ?
>   	} else {
>   		ret = regulator_enable(data->vdd);
>   	}
> +	if (ret) {
> +		dev_warn(&client->dev,
> +			 "Failed to enable specified Vdd supply\n");
> +		return ret;
> +	}
>   
> -	if (ret)
> -		dev_err(&client->dev, "failed to enable Vdd supply: %d\n", ret);
> -	return ret;
>   }
>   
>   /* Disable attached power regulator if any. */
> @@ -408,8 +408,7 @@ static void ak8975_power_off(const struct i2c_client *client)
>   	const struct iio_dev *indio_dev = i2c_get_clientdata(client);
>   	const struct ak8975_data *data = iio_priv(indio_dev);
>   
> -	if (!IS_ERR_OR_NULL(data->vdd))
> -		regulator_disable(data->vdd);
> +	regulator_disable(data->vdd);
>   }
>   
>   /*


  reply	other threads:[~2016-06-22 11:50 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-21 22:18 [PATCH 0/5] fix regulators and PM for AK8975 Linus Walleij
2016-06-21 22:18 ` [PATCH 1/5] iio: magn: ak8975: fix regulator usage Linus Walleij
2016-06-22 11:53   ` Gregor Boirie [this message]
2016-06-22 15:41     ` Linus Walleij
2016-06-23 10:48       ` Mark Brown
2016-06-21 22:18 ` [PATCH 2/5] iio: magn: ak8975: add Vid regulator Linus Walleij
2016-06-21 22:18 ` [PATCH 3/5] iio: magn: ak8975: refactor regulator handlers Linus Walleij
2016-06-21 22:18 ` [PATCH 4/5] iio: magn: ak8975: allow a delay after enabling regulators Linus Walleij
2016-06-21 22:18 ` [PATCH 5/5] iio: magn: ak8975: deploy runtime PM Linus Walleij
2016-06-22  9:26   ` Ulf Hansson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=576A7C28.70905@parrot.com \
    --to=gregor.boirie@parrot.com \
    --cc=broonie@kernel.org \
    --cc=dev@g0hl1n.net \
    --cc=gwendal@chromium.org \
    --cc=jic23@kernel.org \
    --cc=k.kozlowski@samsung.com \
    --cc=lars@metafoo.de \
    --cc=linus.walleij@linaro.org \
    --cc=linux-iio@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.