linux/drivers/iio/adc
Uwe Kleine-König cbb64f5d75 iio: adc: ad7124: Disable all channels at probe time
commit 4be339af33 upstream.

When during a measurement two channels are enabled, two measurements are
done that are reported sequencially in the DATA register. As the code
triggered by reading one of the sysfs properties expects that only one
channel is enabled it only reads the first data set which might or might
not belong to the intended channel.

To prevent this situation disable all channels during probe. This fixes
a problem in practise because the reset default for channel 0 is
enabled. So all measurements before the first measurement on channel 0
(which disables channel 0 at the end) might report wrong values.

Fixes: 7b8d045e49 ("iio: adc: ad7124: allow more than 8 channels")
Reviewed-by: Nuno Sa <nuno.sa@analog.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
Link: https://patch.msgid.link/20241104101905.845737-2-u.kleine-koenig@baylibre.com
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2025-01-17 13:40:58 +01:00
..
ab8500-gpadc.c iio: adc: ab8500-gpadc: Use device_for_each_child_node_scoped() to simplify erorr paths. 2024-04-06 11:29:06 +01:00
ad799x.c iio: adc: ad799x: make use of iio_get_masklength() 2024-07-29 20:31:09 +01:00
ad4000.c iio: adc: ad4000: Check for error code from devm_mutex_init() call 2024-12-05 14:02:37 +01:00
ad4130.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
ad4695.c iio: adc: ad4695: implement calibration support 2024-09-03 18:49:43 +01:00
ad7091r-base.c iio: adc: ad7091r-base: Use auto cleanup of locks. 2024-02-17 16:16:11 +00:00
ad7091r-base.h iio: adc: Add support for AD7091R-8 2023-12-26 15:43:33 +00:00
ad7091r5.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ad7091r8.c iio: adc: ad7091r8: Constify struct regmap_bus 2024-07-29 20:31:10 +01:00
ad7124.c iio: adc: ad7124: Disable all channels at probe time 2025-01-17 13:40:58 +01:00
ad7173.c iio: adc: ad7173: fix using shared static info struct 2025-01-17 13:40:58 +01:00
ad7192.c iio: adc: ad7192: properly check spi_get_device_match_data() 2024-12-14 20:04:08 +01:00
ad7266.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ad7280a.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ad7291.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ad7292.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ad7298.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ad7380.c iio: adc: ad7380: fix supplies for ad7380-4 2024-10-24 18:30:47 +01:00
ad7476.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ad7606.c Merge 6.11-rc7 into char-misc-next 2024-09-09 08:36:23 +02:00
ad7606.h iio: adc: ad7606: remove frstdata check for serial mode 2024-07-29 20:31:23 +01:00
ad7606_par.c Merge 6.11-rc7 into char-misc-next 2024-09-09 08:36:23 +02:00
ad7606_spi.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ad7766.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ad7768-1.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ad7780.c ad7780: fix division by zero in ad7780_write_raw() 2024-12-09 10:41:02 +01:00
ad7791.c iio: adc: ad7791: fix IRQ flags 2023-02-18 17:06:09 +00:00
ad7793.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ad7887.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ad7923.c iio: adc: ad7923: Fix buffer overflow for tx_buf and ring_xfer 2024-12-09 10:41:10 +01:00
ad7944.c iio: adc: ad7944: use devm_spi_optimize_message() 2024-06-30 11:38:13 +01:00
ad7949.c iio: adc: ad7949: Fix error message 2022-07-16 18:50:24 +01:00
ad9467.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ad_sigma_delta.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
adi-axi-adc.c iio: adc: adi-axi-adc: implement backend debugfs interface 2024-08-03 14:36:45 +01:00
aspeed_adc.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
at91-sama5d2_adc.c iio: adc: at91-sama5d2: Convert to platform remove callback returning void 2023-09-23 15:06:52 +01:00
at91_adc.c iio: adc: at91: call input_free_device() on allocated iio_dev 2025-01-17 13:40:57 +01:00
axp20x_adc.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
axp288_adc.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
bcm_iproc_adc.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
berlin2-adc.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
cc10001_adc.c iio: adc: cc10001_adc: make use of iio_for_each_active_channel() 2024-08-03 10:13:39 +01:00
cpcap-adc.c iio: adc: cpcap-adc: make use of regmap_clear_bits(), regmap_set_bits() 2024-06-25 21:04:44 +01:00
da9150-gpadc.c iio: adc: da9150-gpadc: convert probe to full-device managed 2021-10-19 08:27:34 +01:00
dln2-adc.c iio: adc: dln2-adc: use new '.masklength' accessors 2024-08-03 10:13:39 +01:00
envelope-detector.c iio:adc:envelope-detector: Switch from of headers to mod_devicetable.h 2021-12-12 17:13:11 +00:00
ep93xx_adc.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
exynos_adc.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
fsl-imx25-gcq.c iio: adc: fsl-imx25-gcq: make use of regmap_clear_bits(), regmap_set_bits() 2024-06-25 21:04:44 +01:00
hi8435.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
hx711.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
imx7d_adc.c iio: adc: Remove redundant dev_err_probe() 2023-07-29 12:13:17 +01:00
imx8qxp-adc.c IIO: 1st set of new device support, features and cleanup for 6.7 2023-10-20 07:54:15 +02:00
imx93_adc.c iio: adc: imx93: add four channels for imx93 adc 2023-12-04 09:56:28 +00:00
ina2xx-adc.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ingenic-adc.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
intel_mrfld_adc.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
Kconfig iio: adc: ad4695: Add missing Kconfig select 2024-10-10 19:10:27 +01:00
lp8788_adc.c iio: adc: lp8788_adc: convert probe to full-device managed 2021-10-19 08:27:34 +01:00
lpc18xx_adc.c iio: adc: lpc18xx: Benefit from devm_clk_get_enabled() to simplify 2022-08-15 22:30:02 +01:00
lpc32xx_adc.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ltc2309.c iio: adc: ltc2309: Fix endian type passed to be16_to_cpu() 2024-06-28 20:04:18 +01:00
ltc2471.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
ltc2485.c iio: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 09:48:57 +01:00
ltc2496.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ltc2497-core.c iio: adc: ltc2947-core: do not use internal iio_dev lock 2022-11-23 19:43:58 +00:00
ltc2497.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
ltc2497.h iio: adc: ltc2947-core: do not use internal iio_dev lock 2022-11-23 19:43:58 +00:00
Makefile iio: adc: sophgo-saradc: Add driver for Sophgo CV1800B SARADC 2024-09-03 20:05:03 +01:00
max1027.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
max1118.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
max1241.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
max1363.c iio: adc: max1363: simplify with cleanup.h 2024-07-29 20:31:11 +01:00
max9611.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
max11100.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
max11205.c iio: adc: max11205: simplify with spi_get_device_match_data() 2024-06-13 19:19:24 +01:00
max11410.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
max34408.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
max77541-adc.c iio: adc: max77541: Add ADI MAX77541 ADC Support 2023-06-28 15:18:11 +01:00
mcp320x.c iio: adc: mcp320x: Drop vendorless compatible strings 2024-09-03 18:49:44 +01:00
mcp3422.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
mcp3564.c iio: adc: mcp3564: use devm_regulator_get_enable_read_voltage() 2024-08-03 10:13:43 +01:00
mcp3911.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
men_z188_adc.c iio: adc: men_z188_adc: Remove redundant initialization owner in men_z188_driver 2023-08-05 17:43:17 +01:00
meson_saradc.c iio: adc: meson_saradc: make use of regmap_clear_bits(), regmap_set_bits() 2024-06-25 21:04:45 +01:00
mp2629_adc.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
mt6359-auxadc.c iio: adc: Add support for MediaTek MT6357/8/9 Auxiliary ADC 2024-07-01 19:38:48 +01:00
mt6360-adc.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
mt6370-adc.c iio: adc: mt6370: Fix ibus and ibat scaling value of some specific vendor ID chips 2023-05-13 17:54:56 +01:00
mt6577_auxadc.c iio: adc: mt6577_auxadc: Fix kernel panic on suspend 2023-10-11 15:54:40 +01:00
mxs-lradc-adc.c iio: adc: mxs-lradc-adc: don't set masklength 2024-04-29 20:53:24 +01:00
nau7802.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
npcm_adc.c iio: adc: npcm: Convert to platform remove callback returning void 2023-09-23 15:06:54 +01:00
pac1921.c iio: adc: pac1921: Check for error code from devm_mutex_init() call 2024-12-05 14:02:37 +01:00
pac1934.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
palmas_gpadc.c iio: adc: palmas_gpadc: Drop duplicated the in comment. 2023-09-23 18:38:18 +01:00
qcom-pm8xxx-xoadc.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
qcom-spmi-adc5.c iio: adc: qcom-spmi-adc5: Use device_for_each_child_node_scoped() 2024-04-13 10:38:05 +01:00
qcom-spmi-iadc.c iio: adc: Explicitly include correct DT includes 2023-07-23 13:38:13 +01:00
qcom-spmi-rradc.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
qcom-spmi-vadc.c iio: adc: qcom-spmi-vadc: Propagate fw node label to userspace 2023-05-13 18:28:10 +01:00
qcom-vadc-common.c iio: adc: qcom-vadc-common: add reverse scaling for PMIC5 Gen2 ADC_TM 2022-05-19 12:11:51 +02:00
rcar-gyroadc.c iio: adc: rcar-gyroadc: use for_each_available_child_node_scoped() 2024-03-25 19:53:08 +00:00
rn5t618-adc.c iio: adc: rn5t618-adc: make use of regmap_set_bits() 2024-06-25 21:04:45 +01:00
rockchip_saradc.c iio: adc: rockchip_saradc: fix information leak in triggered buffer 2025-01-17 13:40:56 +01:00
rtq6056.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
rzg2l_adc.c iio: adc: rzg2l_adc: Use device_for_each_child_node_scoped() 2024-03-25 19:50:10 +00:00
sc27xx_adc.c iio: adc: sc27xx_adc: make use of regmap_clear_bits(), regmap_set_bits() 2024-06-25 21:04:45 +01:00
sd_adc_modulator.c iio: add iio backend support to sd modulator 2024-08-10 11:17:34 +01:00
sophgo-cv1800b-adc.c iio: adc: sophgo-saradc: Add driver for Sophgo CV1800B SARADC 2024-09-03 20:05:03 +01:00
spear_adc.c iio: adc: spear_adc: Make use of device properties 2024-03-25 20:10:11 +00:00
stm32-adc-core.c iio: Use device_get_match_data() 2023-10-14 17:18:36 +01:00
stm32-adc-core.h iio: adc: stm32-adc: smart calibration support 2022-11-23 20:56:13 +00:00
stm32-adc.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
stm32-dfsdm-adc.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
stm32-dfsdm-core.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
stm32-dfsdm.h iio: adc: stm32-dfsdm: add id registers support 2023-01-08 13:11:03 +00:00
stmpe-adc.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
sun4i-gpadc-iio.c iio: adc: sun4i-gpadc-iio: Convert to platform remove callback returning void 2023-09-23 15:06:54 +01:00
sun20i-gpadc-iio.c iio: adc: Add Allwinner D1/T113s/R329/T507 SoCs GPADC 2023-07-20 19:21:29 +01:00
ti-adc081c.c iio: adc: ti-adc081c: Simplify probe() 2023-09-12 10:42:04 +01:00
ti-adc084s021.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ti-adc108s102.c iio: adc: ti-adc108s102: use devm_regulator_get_enable_read_voltage() 2024-06-25 21:04:51 +01:00
ti-adc128s052.c iio: adc: ti-adc128s052: Sort headers 2023-01-08 12:12:10 +00:00
ti-adc161s626.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ti-adc0832.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ti-adc12138.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ti-ads124s08.c iio: adc: ti-ads124s08: Use gpiod_set_value_cansleep() 2025-01-17 13:40:57 +01:00
ti-ads131e08.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
ti-ads1015.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ti-ads1100.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
ti-ads1119.c iio: adc: ti-ads1119: fix sample size in scan struct for triggered buffer 2025-01-17 13:40:57 +01:00
ti-ads1298.c iio: adc: ti-ads1298: Add NULL check in ads1298_init 2025-01-17 13:40:57 +01:00
ti-ads7924.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ti-ads7950.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ti-ads8344.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ti-ads8688.c iio: adc: ti-ads8688: fix information leak in triggered buffer 2025-01-17 13:40:56 +01:00
ti-lmp92064.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ti-tlc4541.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ti-tsc2046.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
ti_am335x_adc.c of: remove internal arguments from of_property_for_each_u32() 2024-07-25 06:53:47 -05:00
twl4030-madc.c iio: adc: twl4030-madc: Make use of device properties 2024-03-25 20:10:13 +00:00
twl6030-gpadc.c iio: adc: twl6030-gpadc: use 'time_left' variable with wait_for_completion_interruptible_timeout() 2024-04-29 21:06:18 +01:00
vf610_adc.c iio: adc: vf610_adc: make use of iio_get_masklength() 2024-08-03 10:13:43 +01:00
viperboard_adc.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
xilinx-ams.c iio: adc: xilinx-ams: use device_* to iterate over device child nodes 2024-09-03 18:49:44 +01:00
xilinx-xadc-core.c iio: adc: xilinx-xadc-core: use new '.masklength' accessors 2024-08-03 10:13:43 +01:00
xilinx-xadc-events.c iio: xilinx-xadc: Add basic support for Ultrascale System Monitor 2021-01-09 14:25:24 +00:00
xilinx-xadc.h iio: adc: xilinx-xadc: Correct temperature offset/scale for UltraScale 2023-10-13 19:10:39 +01:00