iio: adc: hx711: fix bug in sampling of data
authorAndreas Klinger <ak@it-klinger.de>
Mon, 9 Sep 2019 12:37:21 +0000 (14:37 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Wed, 9 Oct 2019 18:11:25 +0000 (19:11 +0100)
commit4043ecfb5fc4355a090111e14faf7945ff0fdbd5
treea98a336e51142e4dbb844fa9a5c6826af7e73028
parent6c59a962e081df6d8fe43325bbfabec57e0d4751
iio: adc: hx711: fix bug in sampling of data

Fix bug in sampling function hx711_cycle() when interrupt occures while
PD_SCK is high. If PD_SCK is high for at least 60 us power down mode of
the sensor is entered which in turn leads to a wrong measurement.

Switch off interrupts during a PD_SCK high period and move query of DOUT
to the latest point of time which is at the end of PD_SCK low period.

This bug exists in the driver since it's initial addition. The more
interrupts on the system the higher is the probability that it happens.

Fixes: c3b2fdd0ea7e ("iio: adc: hx711: Add IIO driver for AVIA HX711")
Signed-off-by: Andreas Klinger <ak@it-klinger.de>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/hx711.c