linux/drivers/iio/adc
Robert Hancock 70322a446e iio: adc: xilinx-xadc: Don't clobber preset voltage/temperature thresholds
commit 8d6b3ea4d9 upstream.

In the probe function, the driver was reading out the thresholds already
set in the core, which can be configured by the user in the Vivado tools
when the FPGA image is built. However, it later clobbered those values
with zero or maximum values. In particular, the overtemperature shutdown
threshold register was overwritten with the max value, which effectively
prevents the FPGA from shutting down when the desired threshold was
eached, potentially risking hardware damage in that case.

Remove this code to leave the preconfigured default threshold values
intact.

The code was also disabling all alarms regardless of what enable state
they were left in by the FPGA image, including the overtemperature
shutdown feature. Leave these bits in their original state so they are
not unconditionally disabled.

Fixes: bdc8cda1d0 ("iio:adc: Add Xilinx XADC driver")
Signed-off-by: Robert Hancock <robert.hancock@calian.com>
Acked-by: O'Griofa, Conall <conall.ogriofa@amd.com>
Tested-by: O'Griofa, Conall <conall.ogriofa@amd.com>
Link: https://lore.kernel.org/r/20230915001019.2862964-2-robert.hancock@calian.com
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-11-08 17:26:40 +01: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
ad7091r5.c
ad7091r-base.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
ad7091r-base.h
ad7124.c iio: adc: ad7124: Remove shift from scan_type 2022-06-14 18:36:03 +02:00
ad7192.c iio: adc: ad7192: Correct reference voltage 2023-10-25 11:58:58 +02:00
ad7266.c iio: Move attach/detach of the poll func to the core 2020-06-20 17:34:44 +01: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_par.c
ad7606_spi.c
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
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: remove unused private data assigned with spi_set_drvdata() 2021-06-13 17:00:17 +01: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: adi-axi-adc: Fix refcount leak in adi_axi_adc_attach_client 2022-06-29 09:03:29 +02:00
aspeed_adc.c iio: adc: aspeed: set driver data when adc probe. 2021-09-14 12:02:11 +01: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
at91-sama5d2_adc.c iio: core: Hide read accesses to iio_dev->currentmode 2023-10-25 11:58:58 +02: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 iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
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 iio: Remove superfluous of_node assignments 2020-06-14 14:20:08 +01:00
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 iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
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 iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
Kconfig iio: stx104: Move to addac subdirectory 2023-08-26 14:23:27 +02:00
lp8788_adc.c iio: Remove superfluous of_node assignments 2020-06-14 14:20:08 +01:00
lpc18xx_adc.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
lpc32xx_adc.c iio:adc:lpc32xx: Drop of_match_ptr protection 2020-07-07 20:24:08 +01:00
ltc2471.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
ltc2485.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
ltc2496.c iio:adc:ltc2496: Drop of_match_ptr and use mod_devicetable.h 2020-07-07 20:24:08 +01:00
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
Makefile iio: stx104: Move to addac subdirectory 2023-08-26 14:23:27 +02:00
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 iio: adc: max1363: Fix kerneldoc attribute formatting for 'lock' 2020-07-20 09:03:27 +01:00
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 Replace HTTP links with HTTPS ones: drivers/iio 2020-07-13 15:05:59 +01:00
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 iio: Remove superfluous of_node assignments 2020-06-14 14:20:08 +01:00
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 iio:adc:sd_adc_modulator: Drop of_match_ptr and tweak includes 2020-07-07 20:24:09 +01:00
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_am335x_adc.c iio: make use of devm_iio_kfifo_buffer_setup() helper 2021-03-11 20:47:01 +00: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 Replace HTTP links with HTTPS ones: drivers/iio 2020-07-13 15:05:59 +01:00
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 Replace HTTP links with HTTPS ones: drivers/iio 2020-07-13 15:05:59 +01:00
ti-tsc2046.c iio: adc: tsc2046: fix memory corruption by preventing array overflow 2022-03-02 11:48:03 +01:00
twl4030-madc.c iio: adc: twl4030-madc: Fix misnamed struct attribute 2020-07-20 09:03:14 +01:00
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 iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
xilinx-xadc-core.c iio: adc: xilinx-xadc: Don't clobber preset voltage/temperature thresholds 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: xilinx-xadc: Add basic support for Ultrascale System Monitor 2021-01-09 14:25:24 +00:00