On Wed, 6 Dec 2017 09:52:20 +0100 Andreas Klinger <ak@xxxxxxxxxxxxx> wrote: > Return value in hx711_reset() should indicate status of dout otherwise the > calling function is reporting an error as false positive > > If there are two reads too close to each other, then the second one will > never succeed. This happens especially when using buffered mode with both > channels enabled. > > When changing the channel on every trigger event the former 100 ms are not > enough for waiting until the device indicates normal mode. > > Wait up to 1 second until the device turns into normal mode. > > Signed-off-by: Andreas Klinger <ak@xxxxxxxxxxxxx> This looks fine to me. I'll pick it up once patch 1 is ready. Thanks, Jonathan > --- > drivers/iio/adc/hx711.c | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/drivers/iio/adc/hx711.c b/drivers/iio/adc/hx711.c > index 37982b93a227..0a2d0b6cd38a 100644 > --- a/drivers/iio/adc/hx711.c > +++ b/drivers/iio/adc/hx711.c > @@ -153,15 +153,16 @@ static int hx711_wait_for_ready(struct hx711_data *hx711_data) > int i, val; > > /* > - * a maximum reset cycle time of 56 ms was measured. > - * we round it up to 100 ms > + * in some rare cases the reset takes quite a long time > + * especially when the channel is changed. > + * Allow up to one second for it > */ > for (i = 0; i < 100; i++) { > val = gpiod_get_value(hx711_data->gpiod_dout); > if (!val) > break; > - /* sleep at least 1 ms */ > - msleep(1); > + /* sleep at least 10 ms */ > + msleep(10); > } > if (val) > return -EIO; > @@ -203,9 +204,7 @@ static int hx711_reset(struct hx711_data *hx711_data) > * after a dummy read we need to wait vor readiness > * for not mixing gain pulses with the clock > */ > - ret = hx711_wait_for_ready(hx711_data); > - if (ret) > - return ret; > + val = hx711_wait_for_ready(hx711_data); > } > > return val; -- 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