regulator: da9121: add IRQ free to release function
cover regulator: da9121: add IRQ free to release function
This patch fixes the DA9121 driver to disable the IRQ before cancelling the work, to be sure the IRQ doesn't restart it before all IRQs are masked
Adam Ward (1):
regulator: da9121: Request IRQ directly and free in release function
to avoid masking race
drivers/regulator/da9121-regulator.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Signature · 1 line
1.9.1
PATCH 1/1 regulator: da9121: Request IRQ directly and free in release function to avoid masking race
Signed-off-by Adam Ward <[email protected]>
--- drivers/regulator/da9121-regulator.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/regulator/da9121-regulator.c +2 -2
@@ -945,8 +945,7 @@ static int da9121_config_irq(struct i2c_client *i2c, chip->passive_delay = p_delay; - ret =devm_request_threaded_irq (chip->dev, - chip->chip_irq,NULL , + ret =request_threaded_irq (chip->chip_irq,NULL , da9121_irq_handler,IRQF_TRIGGER_LOW |IRQF_ONESHOT ,"da9121" , chip);
@@ -1036,6 +1035,7 @@ static int da9121_i2c_remove(struct i2c_client *i2c)const int mask_all[4 ] = {0xFF ,0xFF ,0xFF ,0xFF };int ret =0 ; +free_irq (chip->chip_irq, chip);cancel_delayed_work_sync (&chip->work); ret =regmap_bulk_write (chip->regmap,DA9121_REG_SYS_MASK_0 , mask_all,4 );
Signature · 1 line
1.9.1