WSL2-Linux-Kernel/drivers/iio/adc
Dumitru Ceclan 0fd0ef7cf0 iio: adc: ad7124: fix chip ID mismatch
commit 96f9ab0d5933c1c00142dd052f259fce0bc3ced2 upstream.

The ad7124_soft_reset() function has the assumption that the chip will
assert the "power-on reset" bit in the STATUS register after a software
reset without any delay. The POR bit =0 is used to check if the chip
initialization is done.

A chip ID mismatch probe error appears intermittently when the probe
continues too soon and the ID register does not contain the expected
value.

Fix by adding a 200us delay after the software reset command is issued.

Fixes: b3af341bbd ("iio: adc: Add ad7124 support")
Signed-off-by: Dumitru Ceclan <dumitru.ceclan@analog.com>
Reviewed-by: Nuno Sa <nuno.sa@analog.com>
Link: https://patch.msgid.link/20240731-ad7124-fix-v1-1-46a76aa4b9be@analog.com
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-09-12 11:07:50 +02:00
..
Kconfig iio: stx104: Move to addac subdirectory 2023-08-26 14:23:27 +02:00
Makefile iio: stx104: Move to addac subdirectory 2023-08-26 14:23:27 +02:00
ab8500-gpadc.c First set of IIO and counter fixes for the 5.12 cycle 2021-03-15 16:34:39 +01:00
ad799x.c iio:adc: Drop false comment about lack of timestamp control 2021-04-07 08:36:38 +01:00
ad7091r-base.c iio:adc:ad7091r: Move exports into IIO_AD7091R namespace. 2024-02-23 08:54:22 +01:00
ad7091r-base.h iio: adc: ad7091r: Enable internal vref if external vref is not supplied 2024-02-23 08:54:20 +01:00
ad7091r5.c iio:adc:ad7091r: Move exports into IIO_AD7091R namespace. 2024-02-23 08:54:22 +01:00
ad7124.c iio: adc: ad7124: fix chip ID mismatch 2024-09-12 11:07:50 +02:00
ad7192.c iio: adc: ad7192: Correct reference voltage 2023-10-25 11:58:58 +02:00
ad7266.c iio: adc: ad7266: Fix variable checking bug 2024-07-05 09:14:46 +02:00
ad7291.c iio: adc: ad7291: convert to device tree 2020-09-29 17:27:05 +01:00
ad7292.c iio: ad7292: Prevent regulator double disable 2022-09-08 12:28:04 +02:00
ad7298.c iio: adc: ad7298: Enable on Intel Galileo Gen 1 2021-05-17 13:49:05 +01:00
ad7476.c iio: adc: remove unused private data assigned with spi_set_drvdata() 2021-06-13 17:00:17 +01:00
ad7606.c iio: core: move @id from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
ad7606.h
ad7606_par.c
ad7606_spi.c
ad7766.c iio: adc: remove unused private data assigned with spi_set_drvdata() 2021-06-13 17:00:17 +01:00
ad7768-1.c iio: ad7768-1: Call iio_trigger_notify_done() on error 2021-12-14 10:57:21 +01:00
ad7780.c iio: adc: ad7780: Fix IRQ flag 2021-09-14 12:02:12 +01:00
ad7791.c iio: adc: ad7791: fix IRQ flags 2023-04-13 16:48:23 +02:00
ad7793.c iio: adc: ad7793: Fix IRQ flag 2021-09-14 12:02:12 +01:00
ad7887.c iio: adc: remove unused private data assigned with spi_set_drvdata() 2021-06-13 17:00:17 +01:00
ad7923.c iio: adc: ad7923: fix channel readings for some variants 2022-10-26 12:34:19 +02:00
ad7949.c iio: adc: ad7949: fix wrong ADC result due to incorrect bit mask 2021-02-12 19:04:32 +00:00
ad9467.c iio: adc: ad9467: fix scan type sign 2024-07-05 09:14:19 +02:00
ad_sigma_delta.c iio: adc: ad_sigma_delta: Fix IRQ issue by setting IRQ_DISABLE_UNLAZY flag 2023-06-09 10:32:28 +02:00
adi-axi-adc.c iio: adc: ad9467: fix scale setting 2024-01-25 14:52:51 -08:00
aspeed_adc.c iio: adc: aspeed: set driver data when adc probe. 2021-09-14 12:02:11 +01:00
at91-sama5d2_adc.c iio: core: Hide read accesses to iio_dev->currentmode 2023-10-25 11:58:58 +02:00
at91_adc.c iio: adc: at91_adc: fix possible memory leak in at91_adc_allocate_trigger() 2022-11-26 09:24:46 +01:00
axp20x_adc.c iio: adc: axp20x_adc: fix charging current reporting on AXP22x 2021-12-14 10:57:21 +01:00
axp288_adc.c iio: adc: axp288: Override TS pin bias current for some models 2022-06-29 09:03:29 +02:00
bcm_iproc_adc.c iio:adc:bcm_iproc: Drop of_match_ptr protection and switch to mod_devicetable.h 2020-09-03 19:40:45 +01:00
berlin2-adc.c iio: adc: berlin2-adc: Add missing of_node_put() in error path 2023-02-09 11:26:42 +01:00
cc10001_adc.c
cpcap-adc.c iio: adc: cpcap-adc: kernel-doc fix - that should be _ in structure name 2021-03-25 19:13:51 +00:00
da9150-gpadc.c
dln2-adc.c iio: dln2: Check return value of devm_iio_trigger_register() 2021-12-14 10:57:21 +01:00
envelope-detector.c iio: adc: envelope-detector: Simplify with dev_err_probe() 2020-09-03 19:40:49 +01:00
ep93xx_adc.c iio: ep93xx: Prepare clock before using it 2021-08-08 14:57:19 +01:00
exynos_adc.c iio: exynos-adc: request second interupt only when touchscreen mode is used 2023-11-08 17:26:40 +01:00
fsl-imx25-gcq.c iio: adc: fsl-imx25-gcq: adjust irq check to match docs and simplify code 2021-08-08 14:52:23 +01:00
hi8435.c iio: adc: remove unused private data assigned with spi_set_drvdata() 2021-06-13 17:00:17 +01:00
hx711.c iio: adc: hx711: Fix buffer alignment in iio_push_to_buffers_with_timestamp() 2021-06-14 11:42:41 +01:00
imx7d_adc.c
ina2xx-adc.c iio: adc: ina2xx: avoid NULL pointer dereference on OF device match 2023-08-16 18:21:59 +02:00
ingenic-adc.c iio/adc: ingenic: add JZ4760B support to the sadc driver 2021-07-31 18:14:53 +01:00
intel_mrfld_adc.c
lp8788_adc.c
lpc18xx_adc.c
lpc32xx_adc.c
ltc2471.c
ltc2485.c
ltc2496.c
ltc2497-core.c iio: adc: ltc2497: Simplify with dev_err_probe() 2020-09-03 19:40:49 +01:00
ltc2497.c iio: ltc2497: Fix reading conversion results 2022-10-26 12:34:19 +02:00
ltc2497.h
max1027.c iio: adc: max1027: Fix the number of max1X31 channels 2021-09-14 12:02:10 +01:00
max1118.c iio: adc: max1118: Avoid jumping back and forth between spi and iio structures 2021-06-03 18:24:14 +01:00
max1241.c iio: adc: remove unused private data assigned with spi_set_drvdata() 2021-06-13 17:00:17 +01:00
max1363.c
max9611.c iio: adc: max9611: Demote obvious misuse of kerneldoc to standard comment blocks 2020-07-20 09:03:27 +01:00
max11100.c iio: adc: max11100: Use devm_ functions for rest of probe() 2021-06-03 18:24:14 +01:00
mcp320x.c
mcp3422.c iio: adc: mcp3422: fix locking on error path 2020-09-01 16:08:07 +02:00
mcp3911.c iio: adc: mcp3911: use correct formula for AD conversion 2022-09-08 12:28:04 +02:00
men_z188_adc.c iio: adc: men_z188_adc: Fix a resource leak in an error handling path 2022-03-02 11:48:03 +01:00
meson_saradc.c meson saradc: fix clock divider mask length 2023-07-23 13:47:54 +02:00
mp2629_adc.c iio: adc: mp2629: fix potential array out of bound access 2022-11-26 09:24:46 +01:00
mt6360-adc.c iio: adc: mt6360: Drop duplicate setting of iio_dev.dev.parent 2021-05-17 13:49:12 +01:00
mt6577_auxadc.c iio: mtk-auxadc: fix case IIO_CHAN_INFO_PROCESSED 2021-09-26 12:30:09 +01:00
mxs-lradc-adc.c iio: adc: mxs-lradc: fix the order of two cleanup operations 2023-06-09 10:32:27 +02:00
nau7802.c iio:adc:nau7802: Use IRQF_NO_AUTOEN instead of request then disable 2021-04-07 08:36:39 +01:00
npcm_adc.c iio: adc: npcm_adc: Replace indio_dev->mlock with own device lock 2021-03-25 19:13:49 +00:00
palmas_gpadc.c iio: adc: palmas_gpadc: fix NULL dereference on rmmod 2023-05-11 23:00:15 +09:00
qcom-pm8xxx-xoadc.c iio: adc: move qcom-vadc-common.h to include dir 2021-01-16 18:20:56 +00:00
qcom-spmi-adc5.c iio: adc: qcom-spmi-adc5: use of_device_get_match_data 2021-01-16 18:23:36 +00:00
qcom-spmi-iadc.c
qcom-spmi-vadc.c First set of IIO and counter fixes for the 5.12 cycle 2021-03-15 16:34:39 +01:00
qcom-vadc-common.c thermal: qcom: add support for adc-tm5 PMIC thermal monitor 2021-02-15 21:28:53 +01:00
rcar-gyroadc.c iio: adc: rcar-gyroadc: Use pm_runtime_resume_and_get() and check in probe() 2021-05-17 13:54:26 +01:00
rn5t618-adc.c iio: adc: rn5t618: Add iio map 2021-08-13 18:38:17 +02:00
rockchip_saradc.c iio: adc: rockchip_saradc: add voltage notifier so get referenced voltage once at probe 2021-08-15 16:58:37 +01:00
rzg2l_adc.c iio: adc: rzg2l_adc: add missing fwnode_handle_put() in rzg2l_adc_parse_properties() 2022-06-29 09:03:29 +02:00
sc27xx_adc.c iio: adc: sc27xx: Fine tune the scale calibration values 2022-06-14 18:36:05 +02:00
sd_adc_modulator.c
spear_adc.c iio: adc: spear_adc: Replace indio_dev->mlock with own device lock 2021-03-25 19:13:49 +00:00
stm32-adc-core.c iio: adc: stm32: Fix ADCs iteration in irq handler 2022-06-29 09:03:29 +02:00
stm32-adc-core.h
stm32-adc.c iio: adc: stm32: Fix IRQs on STM32F4 by removing custom spurious IRQs message 2022-06-29 09:03:29 +02:00
stm32-dfsdm-adc.c iio: adc: stm32-dfsdm: fill module aliases 2023-02-09 11:26:40 +01:00
stm32-dfsdm-core.c iio: adc: stm32-dfsdm: Use pm_runtime_resume_and_get() to replace open coding. 2021-05-17 13:54:26 +01:00
stm32-dfsdm.h ASoC: stm32: dfsdm: add actual resolution trace 2020-10-08 20:44:41 +01:00
stmpe-adc.c iio: adc: stmpe-adc: Fix wait_for_completion_timeout return value check 2022-06-14 18:36:05 +02:00
sun4i-gpadc-iio.c iio:adc:sun4i-gpadc: Use new IRQF_NO_AUTOEN flag instead of request then disable 2021-04-07 08:36:39 +01:00
ti-adc081c.c iio: adc: ti-adc081c: Partial revert of removal of ACPI IDs 2022-01-27 11:02:57 +01:00
ti-adc084s021.c iio: adc: remove unused private data assigned with spi_set_drvdata() 2021-06-13 17:00:17 +01:00
ti-adc108s102.c iio: adc: ti-adc108s102: Use devm managed functions for all of probe() 2021-06-03 18:24:14 +01:00
ti-adc128s052.c iio: adc128s052: add proper .data members in adc128_of_match table 2022-12-31 13:14:47 +01:00
ti-adc161s626.c iio: adc: ti-adc161s626: Use devm managed functions for all of probe. 2021-06-03 18:24:14 +01:00
ti-adc0832.c iio: adc: ti-adc0832: Use devm managed functions for all of probe() 2021-06-03 18:24:14 +01:00
ti-adc12138.c iio:adc:ti-adc12138 Fix alignment issue with timestamp 2020-09-21 20:01:51 +01:00
ti-ads124s08.c iio: adc: remove unused private data assigned with spi_set_drvdata() 2021-06-13 17:00:17 +01:00
ti-ads131e08.c iio: adc: ti-ads131e08: add missing fwnode_handle_put() in ads131e08_alloc_channels() 2022-06-29 09:03:29 +02:00
ti-ads1015.c iio: adc: ads1015: Balance runtime pm + pm_runtime_resume_and_get() 2021-06-16 14:53:13 +01:00
ti-ads7950.c iio: adc: ti-ads7950: Set `can_sleep` flag for GPIO chip 2023-04-13 16:48:21 +02:00
ti-ads8344.c
ti-ads8688.c iio: adc: ti-ads8688: Fix alignment of buffer in iio_push_to_buffers_with_timestamp() 2021-06-14 11:42:41 +01:00
ti-tlc4541.c
ti-tsc2046.c iio: adc: tsc2046: fix memory corruption by preventing array overflow 2022-03-02 11:48:03 +01:00
ti_am335x_adc.c iio: adc: ti_am335x_adc: Fix return value check of tiadc_request_dma() 2024-01-05 15:13:32 +01:00
twl4030-madc.c
twl6030-gpadc.c iio:adc:twl6030: Enable measurement of VAC 2023-02-09 11:26:47 +01:00
vf610_adc.c iio: adc: vf610: Fix buffer alignment in iio_push_to_buffers_with_timestamp() 2021-05-17 13:54:29 +01:00
viperboard_adc.c
xilinx-xadc-core.c iio: adc: xilinx-xadc: Correct temperature offset/scale for UltraScale 2023-11-08 17:26:40 +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-11-08 17:26:40 +01:00