]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
irqchip/sunxi-nmi: Add missing SKIP_WAKE flag
authorPhilippe Simons <simons.philippe@gmail.com>
Sun, 12 Jan 2025 12:34:02 +0000 (13:34 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 1 Feb 2025 17:22:32 +0000 (18:22 +0100)
[ Upstream commit 3a748d483d80f066ca4b26abe45cdc0c367d13e9 ]

Some boards with Allwinner SoCs connect the PMIC's IRQ pin to the SoC's NMI
pin instead of a normal GPIO. Since the power key is connected to the PMIC,
and people expect to wake up a suspended system via this key, the NMI IRQ
controller must stay alive when the system goes into suspend.

Add the SKIP_WAKE flag to prevent the sunxi NMI controller from going to
sleep, so that the power key can wake up those systems.

[ tglx: Fixed up coding style ]

Signed-off-by: Philippe Simons <simons.philippe@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/all/20250112123402.388520-1-simons.philippe@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/irqchip/irq-sunxi-nmi.c

index a412b5d5d0facab6e063d567f0dc06d063044073..a2aadfdc47728d0de51d9bb8aa329f673a2248d7 100644 (file)
@@ -200,7 +200,8 @@ static int __init sunxi_sc_nmi_irq_init(struct device_node *node,
        gc->chip_types[0].chip.irq_unmask       = irq_gc_mask_set_bit;
        gc->chip_types[0].chip.irq_eoi          = irq_gc_ack_set_bit;
        gc->chip_types[0].chip.irq_set_type     = sunxi_sc_nmi_set_type;
-       gc->chip_types[0].chip.flags            = IRQCHIP_EOI_THREADED | IRQCHIP_EOI_IF_HANDLED;
+       gc->chip_types[0].chip.flags            = IRQCHIP_EOI_THREADED | IRQCHIP_EOI_IF_HANDLED |
+                                                 IRQCHIP_SKIP_SET_WAKE;
        gc->chip_types[0].regs.ack              = reg_offs->pend;
        gc->chip_types[0].regs.mask             = reg_offs->enable;
        gc->chip_types[0].regs.type             = reg_offs->ctrl;