linux/drivers/iio/imu
Ramona Bolboaca 99c05e4283 iio: adis: add '__adis_enable_irq()' implementation
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>
2022-11-23 20:37:50 +00:00
..
bmi160 iio: imu: bmi160/bmi160_i2c: Convert to i2c's .probe_new() 2022-11-23 20:01:42 +00:00
bno055 iio: imu: add BNO055 I2C driver 2022-09-21 18:42:56 +01:00
inv_icm42600 iio: imu: inv_icm42600: Add support for icm42631 2022-11-23 19:58:45 +00:00
inv_mpu6050 iio: imu: inv_mpu6050: Convert to i2c's .probe_new() 2022-11-23 20:20:18 +00:00
st_lsm6dsx iio: imu: st_lsm6dsx: Convert to i2c's .probe_new() 2022-11-23 20:20:27 +00:00
st_lsm9ds0 iio: st_sensors: core and lsm9ds0 switch to devm_regulator_bulk_get_enable() 2022-11-23 19:44:01 +00: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
adis.c iio: adis: add '__adis_enable_irq()' implementation 2022-11-23 20:37:50 +00: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_i2c: Convert to i2c's .probe_new() 2022-11-23 20:01:42 +00:00
fxos8700_spi.c iio: imu: fxos8700: Drop unneeded explicit castings 2021-03-25 19:13:50 +00:00
fxos8700.h iio: imu: Add support for the FXOS8700 IMU 2019-10-22 10:24:50 +01:00
Kconfig iio: imu: add Bosch Sensortec BNO055 core driver 2022-09-21 18:42:56 +01:00
kmx61.c iio: imu: kmx61: Convert to i2c's .probe_new() 2022-11-23 20:20:26 +00:00
Makefile iio: imu: add Bosch Sensortec BNO055 core driver 2022-09-21 18:42:56 +01:00