This change fixes a corner-case, where the returned voltage is actually zero. This is also what patch ab0afa65bbc7 ("staging: iio: adc: ad7192: fail probe on get_voltage") was trying to do. But as Jonathan pointed out, a zero-value would signal that the probe has succeeded, putting the driver is a semi-initialized state. Fixes: ab0afa65bbc7 ("staging: iio: adc: ad7192: fail probe on get_voltage") Cc: Alexandru Tachici <alexandru.tachici@xxxxxxxxxx> Signed-off-by: Alexandru Ardelean <aardelean@xxxxxxxxxxx> --- drivers/iio/adc/ad7192.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/iio/adc/ad7192.c b/drivers/iio/adc/ad7192.c index d3be67aa0522..79df54e0dc96 100644 --- a/drivers/iio/adc/ad7192.c +++ b/drivers/iio/adc/ad7192.c @@ -950,6 +950,11 @@ static int ad7192_probe(struct spi_device *spi) } voltage_uv = regulator_get_voltage(st->avdd); + if (voltage_uv == 0) { + ret = -EINVAL; + dev_err(&spi->dev, "Zero value provided for AVdd supply\n"); + goto error_disable_avdd; + } if (voltage_uv > 0) { st->int_vref_mv = voltage_uv / 1000; -- 2.31.1