]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
usb: typec: fusb302: Remove IRQF_ONESHOT
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Wed, 28 Jan 2026 09:55:31 +0000 (10:55 +0100)
committerThomas Gleixner <tglx@kernel.org>
Sun, 1 Feb 2026 16:37:16 +0000 (17:37 +0100)
Passing IRQF_ONESHOT ensures that the interrupt source is masked until
the secondary (threaded) handler is done. If only a primary handler is
used then the flag makes no sense because the interrupt can not fire
(again) while its handler is running.

The flag also prevents force-threading of the primary handler and the
irq-core will warn about this.

Remove IRQF_ONESHOT from irqflags.

Fixes: 309b6341d5570 ("usb: typec: fusb302: Revert incorrect threaded irq fix")
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://patch.msgid.link/20260128095540.863589-12-bigeasy@linutronix.de
drivers/usb/typec/tcpm/fusb302.c

index 870a71f953f6cd8dfc618caea56f72782e40ee1c..19ff8217818e7ee0363bcbcc1f7706bd8e742f87 100644 (file)
@@ -1756,8 +1756,7 @@ static int fusb302_probe(struct i2c_client *client)
        }
 
        ret = request_irq(chip->gpio_int_n_irq, fusb302_irq_intn,
-                         IRQF_ONESHOT | IRQF_TRIGGER_LOW,
-                         "fsc_interrupt_int_n", chip);
+                         IRQF_TRIGGER_LOW, "fsc_interrupt_int_n", chip);
        if (ret < 0) {
                dev_err(dev, "cannot request IRQ for GPIO Int_N, ret=%d", ret);
                goto tcpm_unregister_port;