linux/drivers/iio/adc
Andreas Klinger 4043ecfb5f 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: c3b2fdd0ea ("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>
2019-10-09 19:11:25 +01:00
..
ad799x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ad7124.c iio: adc: ad7124: Shift to dynamic allocation for channel configuration 2019-06-26 21:24:21 +01:00
ad7266.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
ad7291.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
ad7298.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
ad7476.c iio: adc: ad7476: Add support for TI ADS786X ADCs 2019-02-09 18:46:02 +00:00
ad7606.c iio: adc: ad7606: Add support for AD7606B ADC 2019-08-25 16:11:00 +01:00
ad7606.h iio: adc: ad7606: Add support for AD7606B ADC 2019-08-25 16:11:00 +01:00
ad7606_par.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
ad7606_spi.c iio: adc: ad7606: Add support for AD7606B ADC 2019-08-25 16:11:00 +01:00
ad7766.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
ad7768-1.c iio: adc: ad7768-1: Add support for setting the sampling frequency 2019-02-09 18:46:01 +00:00
ad7780.c iio: adc: ad7780: Add parentheses to macros 2019-04-04 20:20:30 +01:00
ad7791.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
ad7793.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
ad7887.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
ad7923.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
ad7949.c iio:adc:ad7949: Add AD7949 ADC driver family 2018-11-03 09:44:34 +00:00
ad_sigma_delta.c Second set of IIO device support, features, cleanups and minor fixes for 5.3. 2019-07-01 10:58:13 +02:00
aspeed_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422 2019-06-05 17:37:15 +02:00
at91-sama5d2_adc.c Merge 5.2-rc6 into staging-next 2019-06-23 13:29:03 +02:00
at91_adc.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
axp20x_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
axp288_adc.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
bcm_iproc_adc.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
berlin2-adc.c
cc10001_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cpcap-adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
da9150-gpadc.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
dln2-adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 372 2019-06-05 17:37:10 +02:00
envelope-detector.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
ep93xx_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
exynos_adc.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
fsl-imx25-gcq.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
hi8435.c iio: hi8435: Drop hi8435_remove() by using devres for remaining elements 2019-08-11 09:59:38 +01:00
hx711.c iio: adc: hx711: fix bug in sampling of data 2019-10-09 19:11:25 +01:00
imx7d_adc.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
ina2xx-adc.c iio: adc: ina2xx: add in early -EINVAL returns in case statements 2018-10-21 15:43:11 +01:00
ingenic-adc.c IIO: Ingenic JZ47xx: Set clock divider on probe 2019-07-14 16:02:08 +01:00
Kconfig Second set of IIO device support, features, cleanups and minor fixes for 5.3. 2019-07-01 10:58:13 +02:00
lp8788_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lpc18xx_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lpc32xx_adc.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
ltc2471.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 253 2019-06-05 17:30:27 +02:00
ltc2485.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ltc2497.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
Makefile iio: adc: Add driver for the TI ADS8344 A/DC chips 2019-04-22 11:34:13 +01:00
max1027.c iio: adc: max1027: Use device-managed APIs 2019-08-18 20:16:46 +01:00
max1118.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 330 2019-06-05 17:37:06 +02:00
max1363.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
max9611.c iio: adc: max9611: Fix temperature reading in probe 2019-08-05 17:42:24 +01:00
max11100.c iio: adc: max11100: convert to SPDX identifiers 2018-11-16 18:32:27 +00:00
mcp320x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mcp3422.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mcp3911.c iio: adc: add support for mcp3911 2018-08-19 20:02:48 +01:00
men_z188_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 2019-06-05 17:37:17 +02:00
meson_saradc.c iio: adc: meson_saradc: Fix memory allocation order 2019-09-08 12:30:32 +01:00
mt6577_auxadc.c Merge 5.2-rc3 into staging-next 2019-06-03 07:27:16 +02:00
mxs-lradc-adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
nau7802.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 71 2019-05-24 17:36:47 +02:00
npcm_adc.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
palmas_gpadc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 372 2019-06-05 17:37:10 +02:00
qcom-pm8xxx-xoadc.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
qcom-spmi-adc5.c iio: adc: qcom-spmi-adc5: Fix of-based module autoloading 2019-04-22 11:51:29 +01:00
qcom-spmi-iadc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
qcom-spmi-vadc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
qcom-vadc-common.c iio: adc: Add QCOM SPMI PMIC5 ADC driver 2018-08-18 18:11:43 +01:00
qcom-vadc-common.h iio: adc: Add QCOM SPMI PMIC5 ADC driver 2018-08-18 18:11:43 +01:00
rcar-gyroadc.c iio: adc: gyroadc: fix uninitialized return code 2019-07-27 21:56:59 +01:00
rockchip_saradc.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
sc27xx_adc.c iio: adc: sc27xx: Change to polling mode to read data 2019-08-18 20:26:47 +01:00
sd_adc_modulator.c IIO: ADC: add sigma delta modulator support 2018-01-10 10:30:09 +00:00
spear_adc.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
stm32-adc-core.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
stm32-adc-core.h
stm32-adc.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
stm32-dfsdm-adc.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
stm32-dfsdm-core.c iio: adc: stm32-dfsdm: missing error case during probe 2019-04-27 14:09:28 +01:00
stm32-dfsdm.h iio: adc: stm32-dfsdm: add fast mode support 2019-06-22 10:29:19 +01:00
stmpe-adc.c iio: stmpe-adc: Reset possible interrupts 2019-05-11 11:18:34 +01:00
stx104.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
sun4i-gpadc-iio.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
ti-adc081c.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ti-adc084s021.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ti-adc108s102.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
ti-adc128s052.c iio: adc128s052: use SPDX-License-Identifier 2018-11-03 09:44:33 +00:00
ti-adc161s626.c iio: add SPDX identifier for various drivers 2018-02-18 11:55:19 +00:00
ti-adc0832.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 330 2019-06-05 17:37:06 +02:00
ti-adc12138.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 330 2019-06-05 17:37:06 +02:00
ti-ads124s08.c iio: adc: ads124: avoid buffer overflow 2019-04-07 13:01:36 +01:00
ti-ads1015.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 330 2019-06-05 17:37:06 +02:00
ti-ads7950.c iio: adc: ti-ads7950: add GPIO support 2019-04-04 20:19:53 +01:00
ti-ads8344.c iio: adc: Add driver for the TI ADS8344 A/DC chips 2019-04-22 11:34:13 +01:00
ti-ads8688.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ti-tlc4541.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ti_am335x_adc.c iio: adc: ti_am335x_tscadc: Improve accuracy of measurement 2018-12-03 11:33:20 +00:00
twl4030-madc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
twl6030-gpadc.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
vf610_adc.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
viperboard_adc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
xilinx-xadc-core.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
xilinx-xadc-events.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
xilinx-xadc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00