Skip to contentSkip to conversation

regulator: da9121: add IRQ free to release function

PATCH Superseded Adam Ward 1 participant 2 messages Dec 1, 2020

Subsystems (2)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Adam Ward

author
#0 lore raw

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
author
#1 lore raw

PATCH 1/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(-)
drivers/regulator/da9121-regulator.c +2 -2
index d9a8a4b..3e59f68 100644
@@ -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