On Tue, 1 Aug 2017 10:26:05 +0200 Ladislav Michl <ladis@xxxxxxxxxxxxxx> wrote: > When reading diffrent channel value than device is currently processing > wait time of conversion period is applied, which is not enough as device > might be already in the middle of conversion and therefore previously > converted value is returned - the one belonging to another channel. > Fix it by waiting for two sampling periods. > > Signed-off-by: Ladislav Michl <ladis@xxxxxxxxxxxxxx> Strangely we already have a fix in place for this it seems. See the fixes-togreg branch of iio.git Clearly a popular device at the moment! Thanks, Jonathan > --- > drivers/iio/adc/ti-ads1015.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/iio/adc/ti-ads1015.c b/drivers/iio/adc/ti-ads1015.c > index 884b8e461b17..86fd2753869d 100644 > --- a/drivers/iio/adc/ti-ads1015.c > +++ b/drivers/iio/adc/ti-ads1015.c > @@ -260,7 +260,7 @@ int ads1015_get_adc_result(struct ads1015_data *data, int chan, int *val) > return ret; > > if (change) { > - conv_time = DIV_ROUND_UP(USEC_PER_SEC, data->data_rate[dr]); > + conv_time = 2 * DIV_ROUND_UP(USEC_PER_SEC, data->data_rate[dr]); > usleep_range(conv_time, conv_time + 1); > } > -- 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