On 20/06/16 13:53, Mark Brown wrote: > 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@xxxxxxxxxx> Applied to the fixes-togreg branch of iio.git and marked for stable. Lars, these all seems obviously correct to me, but I'll hold that tree for a day or two so still time to comment. I dread to think how many other missuses we have of these interfaces in the tree... Jonathan > --- > drivers/iio/adc/ad7266.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/iio/adc/ad7266.c b/drivers/iio/adc/ad7266.c > index 655b36b4e9cb..2123f0ac2e2a 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; > } > -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html