Skip to content

Commit 553b499

Browse files
Sebastian Andrzej SiewiorThomas Gleixner
authored andcommitted
mfd: wm8350-core: Use IRQF_ONESHOT
Using a threaded interrupt without a dedicated primary handler mandates the IRQF_ONESHOT flag to mask the interrupt source while the threaded handler is active. Otherwise the interrupt can fire again before the threaded handler had a chance to run. Mark explained that this should not happen with this hardware since it is a slow irqchip which is behind an I2C/ SPI bus but the IRQ-core will refuse to accept such a handler. Set IRQF_ONESHOT so the interrupt source is masked until the secondary handler is done. Fixes: 1c6c695 ("genirq: Reject bogus threaded irq requests") Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@kernel.org> Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://patch.msgid.link/20260128095540.863589-16-bigeasy@linutronix.de
1 parent 781b391 commit 553b499

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

  • include/linux/mfd/wm8350

include/linux/mfd/wm8350/core.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -667,7 +667,7 @@ static inline int wm8350_register_irq(struct wm8350 *wm8350, int irq,
667667
return -ENODEV;
668668

669669
return request_threaded_irq(irq + wm8350->irq_base, NULL,
670-
handler, flags, name, data);
670+
handler, flags | IRQF_ONESHOT, name, data);
671671
}
672672

673673
static inline void wm8350_free_irq(struct wm8350 *wm8350, int irq, void *data)

0 commit comments

Comments
 (0)