aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2016-06-20 13:53:34 +0100
committerJonathan Cameron <jic23@kernel.org>2016-06-26 17:39:26 +0100
commit68b356eb3d9f5e38910fb62e22a78e2a18d544ae (patch)
tree1bec9b42e23c05d84c83fbd4481c19f080f6e158
parente5511c816e5ac4909bdd38e85ac344e2b9b8e984 (diff)
downloadstm32-68b356eb3d9f5e38910fb62e22a78e2a18d544ae.tar.gz
iio:ad7266: Fix probe deferral for vref
Currently the ad7266 driver treats any failure to get vref as though the regulator were not present but this means that if probe deferral is triggered the driver will act as though the regulator were not present. Instead only use the internal reference if we explicitly got -ENODEV which is what is returned for absent regulators. Signed-off-by: Mark Brown <broonie@kernel.org> Cc: <Stable@vger.kernel.org> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
-rw-r--r--drivers/iio/adc/ad7266.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/iio/adc/ad7266.c b/drivers/iio/adc/ad7266.c
index 655b36b4e9cb68..2123f0ac2e2a47 100644
--- a/drivers/iio/adc/ad7266.c
+++ b/drivers/iio/adc/ad7266.c
@@ -408,6 +408,9 @@ static int ad7266_probe(struct spi_device *spi)
st->vref_mv = ret / 1000;
} else {
+ /* Any other error indicates that the regulator does exist */
+ if (PTR_ERR(st->reg) != -ENODEV)
+ return PTR_ERR(st->reg);
/* Use internal reference */
st->vref_mv = 2500;
}