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 47f1ce1012f4cebc43333de4ffde5ab3bc261a9b..d4b7bd68451b6ad9b6edd84fed04fecf89c8cc88 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) {