iio: magn: ak8975: fix regulator usage
authorLinus Walleij <linus.walleij@linaro.org>
Wed, 29 Jun 2016 12:08:33 +0000 (14:08 +0200)
committerJonathan Cameron <jic23@kernel.org>
Thu, 30 Jun 2016 19:39:43 +0000 (20:39 +0100)
commit90e96fdd012925871a1a21b5eaeab4b027682d6a
treec43b758c07579642dc67871bbc976ebae7f12cb4
parentc5842b47b2945d6db24b4db6b2c7364e94cbc78b
iio: magn: ak8975: fix regulator usage

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>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/magnetometer/ak8975.c