linux/drivers/iio/accel
Hans de Goede b56d4991cf iio: accel: mxc4005: Interrupt handling fixes
commit 57a1592784 upstream.

There are 2 issues with interrupt handling in the mxc4005 driver:

1. mxc4005_set_trigger_state() writes MXC4005_REG_INT_MASK1_BIT_DRDYE
(0x01) to INT_MASK1 to enable the interrupt, but to disable the interrupt
it writes ~MXC4005_REG_INT_MASK1_BIT_DRDYE which is 0xfe, so it enables
all other interrupt sources in the INT_SRC1 register. On the MXC4005 this
is not an issue because only bit 0 of the register is used. On the MXC6655
OTOH this is a problem since bit7 is used as TC (Temperature Compensation)
disable bit and writing 1 to this disables Temperature Compensation which
should only be done when running self-tests on the chip.

Write 0 instead of ~MXC4005_REG_INT_MASK1_BIT_DRDYE to disable
the interrupts to fix this.

2. The datasheets for the MXC4005 / MXC6655 do not state what the reset
value for the INT_MASK0 and INT_MASK1 registers is and since these are
write only we also cannot learn this from the hw. Presumably the reset
value for both is all 0, which means all interrupts disabled.

Explicitly set both registers to 0 from mxc4005_chip_init() to ensure
both masks are actually set to 0.

Fixes: 79846e33aa ("iio: accel: mxc4005: add support for mxc6655")
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20240326113700.56725-2-hdegoede@redhat.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 2024-05-17 11:56:19 +02:00
..
adis16201.c iio:imu:adis: Move exports into IIO_ADISLIB namespace 2022-02-18 11:42:26 +00:00
adis16209.c iio:imu:adis: Move exports into IIO_ADISLIB namespace 2022-02-18 11:42:26 +00:00
adxl313.h drivers: iio: accel: adxl312 and adxl314 support 2022-09-21 18:42:53 +01:00
adxl313_core.c drivers: iio: accel: adxl312 and adxl314 support 2022-09-21 18:42:53 +01:00
adxl313_i2c.c iio: accel: adxl313: Fix adxl313_i2c_id[] table 2023-09-13 09:42:52 +02:00
adxl313_spi.c drivers: iio: accel: adxl312 and adxl314 support 2022-09-21 18:42:53 +01:00
adxl345.h iio: accel: adxl345: Make use of device properties 2022-02-26 19:11:13 +00:00
adxl345_core.c iio: accel: adxl345: use HZ macro from units.h 2022-08-28 16:57:37 +01:00
adxl345_i2c.c iio: accel: adxl345: Remove unneeded blank lines 2022-02-26 19:11:39 +00:00
adxl345_spi.c iio: accel: adxl345: Remove unneeded blank lines 2022-02-26 19:11:39 +00:00
adxl355.h iio: accel: Add driver support for ADXL355 2021-09-14 12:00:30 +01:00
adxl355_core.c iio: accel: adxl355: Fix alignment for DMA safety 2022-06-14 11:53:11 +01:00
adxl355_i2c.c iio:accel:adxl355: Move exports into IIO_ADXL355 namespace 2022-02-18 11:36:54 +00:00
adxl355_spi.c iio:accel:adxl355: Move exports into IIO_ADXL355 namespace 2022-02-18 11:36:54 +00:00
adxl367.c iio: accel: adxl367: fix DEVID read after reset 2024-04-03 15:19:43 +02:00
adxl367.h iio: accel: add ADXL367 driver 2022-02-21 19:33:06 +00:00
adxl367_i2c.c iio: accel: adxl367: fix I2C FIFO data register 2024-04-03 15:19:43 +02:00
adxl367_spi.c iio: accel: adxl367: Fix alignment for DMA safety 2022-06-14 11:53:11 +01:00
adxl372.c iio: adxl372: Fix unsafe buffer attributes 2022-10-17 08:51:26 +01:00
adxl372.h iio: adxl372: Add support for I2C communication 2018-09-08 15:54:38 +01:00
adxl372_i2c.c iio:accel:adxl372: Move exports into IIO_ADXL372 namespace 2022-02-18 11:36:54 +00:00
adxl372_spi.c iio:accel:adxl372: Move exports into IIO_ADXL372 namespace 2022-02-18 11:36:54 +00:00
bma180.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
bma220_spi.c iio: accel: bma220: Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr() 2022-07-18 18:48:17 +01:00
bma400.h iio: accel: bma400: Add support for single and double tap events 2022-09-05 18:08:42 +01:00
bma400_core.c iio: accel: bma400: Fix memory leak in bma400_get_steps_reg() 2022-11-12 17:49:22 +00:00
bma400_i2c.c iio: accel: bma400: Add triggered buffer support 2022-06-11 14:35:26 +01:00
bma400_spi.c iio: accel: bma400: Add triggered buffer support 2022-06-11 14:35:26 +01:00
bmc150-accel-core.c iio: bmc150-accel-core: Fix unsafe buffer attributes 2022-10-17 08:51:26 +01:00
bmc150-accel-i2c.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
bmc150-accel-spi.c Char/Misc and other driver updates for 5.18-rc1 2022-03-28 12:27:35 -07:00
bmc150-accel.h iio: accel: bmc150: Make bmc150_accel_core_remove() return void 2021-10-19 08:30:45 +01:00
bmi088-accel-core.c iio: accel: bmi088: Use EXPORT_NS_GPL_RUNTIME_DEV_PM_OPS() and pm_ptr() 2022-09-21 18:42:57 +01:00
bmi088-accel-spi.c iio: accel: bmi088: Use EXPORT_NS_GPL_RUNTIME_DEV_PM_OPS() and pm_ptr() 2022-09-21 18:42:57 +01:00
bmi088-accel.h iio: accel: bmi088: Add support for bmi090l accel 2022-06-11 14:35:28 +01:00
cros_ec_accel_legacy.c iio: cros: Register FIFO callback after sensor is registered 2022-07-18 18:29:13 +01:00
da280.c iio:accel:da280: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc 2022-02-18 11:43:11 +00:00
da311.c iio:accel:da311: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc 2022-02-18 11:43:11 +00:00
dmard06.c iio:accel:dmard06: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc 2022-02-18 11:43:11 +00:00
dmard09.c iio: accel: dmard09: fixed code styling issues 2022-04-04 09:11:25 +01:00
dmard10.c iio:accel:dmard10: Switch from CONFIG_PM guards to pm_sleep_ptr() etc 2022-02-18 11:43:11 +00:00
fxls8962af-core.c iio: accel: fxls8962af: fixup buffer scan element type 2023-07-19 16:21:46 +02:00
fxls8962af-i2c.c First set of new device support, fixes, cleanups and features for IIO in 5.18 2022-03-18 12:41:32 +01:00
fxls8962af-spi.c First set of new device support, fixes, cleanups and features for IIO in 5.18 2022-03-18 12:41:32 +01:00
fxls8962af.h iio: accel: fxls8962af: add padding to regmap for SPI 2022-01-23 18:23:48 +00:00
hid-sensor-accel-3d.c iio: hid: fix the retval in accel_3d_capture_sample 2023-02-09 11:28:17 +01:00
Kconfig iio: accel: bma400: Fix a compilation problem 2024-02-23 09:12:40 +01:00
kxcjk-1013.c Char/Misc and other driver changes for 6.1-rc1 2022-10-08 08:56:37 -07:00
kxsd9-i2c.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
kxsd9-spi.c iio:accel:kxsd9: Switch from CONFIG_PM guards to pm_ptr() etc 2022-06-15 22:07:09 +01:00
kxsd9.c iio:accel:kxsd9: Switch from CONFIG_PM guards to pm_ptr() etc 2022-06-15 22:07:09 +01:00
kxsd9.h iio: accel: kxsd9: Make kxsd9_common_remove() return void 2021-10-19 08:30:45 +01:00
Makefile iio: add MEMSensing MSA311 3-axis accelerometer driver 2022-08-30 18:35:38 +01:00
mc3230.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
mma7455.h iio: accel: mma7455: Make mma7455_core_remove() return void 2021-10-19 08:30:45 +01:00
mma7455_core.c iio:accel:mma7455_core: Move exports into IIO_MMA7455 namespace 2022-02-18 11:36:53 +00:00
mma7455_i2c.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
mma7455_spi.c Char/Misc and other driver updates for 5.18-rc1 2022-03-28 12:27:35 -07:00
mma7660.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
mma8452.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
mma9551.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
mma9551_core.c iio: accel: mma9551_core: Prevent uninitialized variable in mma9551_read_config_word() 2023-03-11 13:55:35 +01:00
mma9551_core.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
mma9553.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
msa311.c iio: add MEMSensing MSA311 3-axis accelerometer driver 2022-08-30 18:35:38 +01:00
mxc4005.c iio: accel: mxc4005: Interrupt handling fixes 2024-05-17 11:56:19 +02:00
mxc6255.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
sca3000.c iio: accel: sca3000: Fix alignment for DMA safety 2022-06-14 11:53:12 +01:00
sca3300.c iio: accel: sca3300: Extend the trigger buffer from 16 to 32 bytes 2022-07-19 09:38:53 +01:00
ssp_accel_sensor.c iio: core: Simplify the registration of kfifo buffers 2022-04-10 16:25:46 +01:00
st_accel.h iio: accel: add support for LIS302DL variant 2022-04-04 09:11:23 +01:00
st_accel_buffer.c iio:st-sensors: Remove duplicate MODULE_* 2022-02-18 11:36:54 +00:00
st_accel_core.c iio: accel: st_accel: Fix invalid mount_matrix on devices without ACPI _ONT method 2023-06-09 10:34:18 +02:00
st_accel_i2c.c iio: accel: add support for LIS302DL variant 2022-04-04 09:11:23 +01:00
st_accel_spi.c iio: accel: add support for LIS302DL variant 2022-04-04 09:11:23 +01:00
stk8ba50.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
stk8312.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00