summaryrefslogtreecommitdiff
path: root/drivers/iio
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2016-06-20 13:53:34 +0100
committerSasha Levin <alexander.levin@verizon.com>2016-08-19 23:08:44 -0400
commit40b9a8f49d1e1e75dfdedbc25d0a3c9fea716bab (patch)
tree9d1abb6927f8ed9c064d78e2a55d61142182facd /drivers/iio
parentfb079b49a29bf9e25c493525b228f7b33dbbe44f (diff)
iio:ad7266: Fix probe deferral for vref
[ Upstream commit 68b356eb3d9f5e38910fb62e22a78e2a18d544ae ] 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> Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Diffstat (limited to 'drivers/iio')
-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 2bd08eea94f1..8e2b9e70511d 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;
}