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:
|
||
---|---|---|
.. | ||
bmi160 | ||
bno055 | ||
inv_icm42600 | ||
inv_mpu6050 | ||
st_lsm6dsx | ||
st_lsm9ds0 | ||
adis16400.c | ||
adis16460.c | ||
adis16475.c | ||
adis16480.c | ||
adis_buffer.c | ||
adis_trigger.c | ||
adis.c | ||
fxos8700_core.c | ||
fxos8700_i2c.c | ||
fxos8700_spi.c | ||
fxos8700.h | ||
Kconfig | ||
kmx61.c | ||
Makefile |