linux/drivers/iio/imu
Ramona Bolboaca bc34896cd7 iio: adis: add '__adis_enable_irq()' implementation
[ Upstream commit 99c05e4283 ]

Add '__adis_enable_irq()' implementation which is the unlocked
version of 'adis_enable_irq()'.
Call '__adis_enable_irq()' instead of 'adis_enable_irq()' from
'__adis_intial_startup()' to keep the expected unlocked functionality.

This fix is needed to remove a deadlock for all devices which are
using 'adis_initial_startup()'. The deadlock occurs because the
same mutex is acquired twice, without releasing it.
The mutex is acquired once inside 'adis_initial_startup()', before
calling '__adis_initial_startup()', and once inside
'adis_enable_irq()', which is called by '__adis_initial_startup()'.
The deadlock is removed by calling '__adis_enable_irq()', instead of
'adis_enable_irq()' from within '__adis_initial_startup()'.

Fixes: b600bd7eb3 ("iio: adis: do not disabe IRQs in 'adis_init()'")
Signed-off-by: Ramona Bolboaca <ramona.bolboaca@analog.com>
Reviewed-by: Nuno Sá <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20221122082757.449452-2-ramona.bolboaca@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2022-12-31 13:32:41 +01:00
..
bmi160 iio: imu: bmi160: Move exported symbols to IIO_BMI160 namespace 2022-06-21 21:30:31 +01:00
bno055 iio: imu: bno055: uninitialized variable bug in bno055_trigger_handler() 2022-11-01 08:48:13 +00:00
inv_icm42600 IIO new device support, features and minor fixes for 5.20 2022-07-14 15:04:49 +02:00
inv_mpu6050 Char/Misc and other driver changes for 6.1-rc1 2022-10-08 08:56:37 -07:00
st_lsm6dsx iio: imu: st_lsm6dsx: add support to LSM6DSTX 2022-09-21 18:42:54 +01:00
st_lsm9ds0 iio:st-sensors: Move exports into IIO_ST_SENSORS namespace 2022-02-18 11:36:54 +00:00
adis.c iio: adis: add '__adis_enable_irq()' implementation 2022-12-31 13:32:41 +01:00
adis16400.c iio:imu:adis: Move exports into IIO_ADISLIB namespace 2022-02-18 11:42:26 +00:00
adis16460.c iio:imu:adis: Move exports into IIO_ADISLIB namespace 2022-02-18 11:42:26 +00:00
adis16475.c iio: imu: adis16475: Benefit from devm_clk_get_enabled() to simplify 2022-08-15 22:30:03 +01:00
adis16480.c iio: imu: adis16480: Improve getting the optional clocks 2022-04-28 19:22:56 +01:00
adis_buffer.c iio:imu:adis: Move exports into IIO_ADISLIB namespace 2022-02-18 11:42:26 +00:00
adis_trigger.c iio:imu:adis: Move exports into IIO_ADISLIB namespace 2022-02-18 11:42:26 +00:00
fxos8700.h iio: imu: Add support for the FXOS8700 IMU 2019-10-22 10:24:50 +01:00
fxos8700_core.c iio: imu: fxos8700: Fix alignment for DMA safety 2022-06-14 11:53:18 +01:00
fxos8700_i2c.c iio: imu: fxos8700: Drop unneeded explicit castings 2021-03-25 19:13:50 +00:00
fxos8700_spi.c iio: imu: fxos8700: Drop unneeded explicit castings 2021-03-25 19:13:50 +00:00
Kconfig iio: imu: add Bosch Sensortec BNO055 core driver 2022-09-21 18:42:56 +01:00
kmx61.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
Makefile iio: imu: add Bosch Sensortec BNO055 core driver 2022-09-21 18:42:56 +01:00