On Tue, Aug 01, 2017 at 12:09:34PM +0300, Daniel Baluta wrote: > On Tue, Aug 1, 2017 at 11:26 AM, 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> > > Did you actually experienced this in practice? I guess you are right, > if you change the channel during a conversion, this change will be applied > to the next conversion *but* reading will still return old value because the > current conversion hasn't finished yet. Yes, that's what actually happens without patch and could be easily demonstrated from command line: $ cat in_voltage0_raw 847 $ cat in_voltage1_raw 846 $ cat in_voltage1_raw 195 $ cat in_voltage0_raw 196 $ cat in_voltage0_raw 846 Btw, driver is using continuous conversion mode, but I was unable to make iio_generic_buffer work with it. And for reading values one by one single shot mode is enough. Any hints? Thank you, ladis > So, > > Acked-by: Daniel Baluta <daniel.baluta@xxxxxxxxx> -- 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