power: supply: ab8500_charger: Oneshot threaded IRQs
authorLinus Walleij <linus.walleij@linaro.org>
Sat, 12 Dec 2020 10:57:10 +0000 (11:57 +0100)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Sat, 12 Dec 2020 21:07:45 +0000 (22:07 +0100)
Make sure the threaded IRQs requested by the charger are
flagged as "oneshot". Usually this is what you want, and
since the interrupts are shared with the USB phy on the
AB8500 we will get a conflict like this if we don't,
since the phy request them threaded oneshot:

genirq: Flags mismatch irq 83. 00004084 (USB_LINK_STATUS
  vs. 00006084 (usb-link-status)
ab8500-charger ab8500-charger.0: failed to request
  USB_LINK_STATUS IRQ 83: -16

Cc: Marcus Cooper <codekipper@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/ab8500_charger.c

index 47f1ce1..d4b7bd6 100644 (file)
@@ -3596,7 +3596,7 @@ static int ab8500_charger_probe(struct platform_device *pdev)
                }
 
                ret = request_threaded_irq(irq, NULL, ab8500_charger_irq[i].isr,
-                       IRQF_SHARED | IRQF_NO_SUSPEND,
+                       IRQF_SHARED | IRQF_NO_SUSPEND | IRQF_ONESHOT,
                        ab8500_charger_irq[i].name, di);
 
                if (ret != 0) {