Parcourir la source

ASoC: wm8996: Pass the IRQF_ONESHOT flag

Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject
bogus threaded irq requests") threaded IRQs without a primary handler
need to be requested with IRQF_ONESHOT, otherwise the request will fail.

So pass the IRQF_ONESHOT flag in this case.

The semantic patch that makes this change is available
in scripts/coccinelle/misc/irqf_oneshot.cocci.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Fabio Estevam il y a 10 ans
Parent
commit
ed043aebe6
1 fichiers modifiés avec 4 ajouts et 2 suppressions
  1. 4 2
      sound/soc/codecs/wm8996.c

+ 4 - 2
sound/soc/codecs/wm8996.c

@@ -2646,10 +2646,12 @@ static int wm8996_probe(struct snd_soc_codec *codec)
 		if (irq_flags & (IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING))
 		if (irq_flags & (IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING))
 			ret = request_threaded_irq(i2c->irq, NULL,
 			ret = request_threaded_irq(i2c->irq, NULL,
 						   wm8996_edge_irq,
 						   wm8996_edge_irq,
-						   irq_flags, "wm8996", codec);
+						   irq_flags | IRQF_ONESHOT,
+						   "wm8996", codec);
 		else
 		else
 			ret = request_threaded_irq(i2c->irq, NULL, wm8996_irq,
 			ret = request_threaded_irq(i2c->irq, NULL, wm8996_irq,
-						   irq_flags, "wm8996", codec);
+						   irq_flags | IRQF_ONESHOT,
+						   "wm8996", codec);
 
 
 		if (ret == 0) {
 		if (ret == 0) {
 			/* Unmask the interrupt */
 			/* Unmask the interrupt */