Message ID | 20250112123402.388520-1-simons.philippe@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [v2] irqchip/sunxi-nmi: add missing flag | expand |
Dne nedelja, 12. januar 2025 ob 13:34:02 Srednjeevropski standardni čas je Philippe Simons napisal(a): > 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 flag to prevent the sunxi NMI controller from going to sleep, > so that the power key can wake up those systems. > > Signed-off-by: Philippe Simons <simons.philippe@gmail.com> > --- Please provide changelog here. > drivers/irqchip/irq-sunxi-nmi.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/irqchip/irq-sunxi-nmi.c b/drivers/irqchip/irq-sunxi-nmi.c > index bb92fd85e..8dda0a85e 100644 > --- a/drivers/irqchip/irq-sunxi-nmi.c > +++ b/drivers/irqchip/irq-sunxi-nmi.c > @@ -186,7 +186,9 @@ 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; Alignment seems off. With that fixed: Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com Best regards, Jernej > 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; >
diff --git a/drivers/irqchip/irq-sunxi-nmi.c b/drivers/irqchip/irq-sunxi-nmi.c index bb92fd85e..8dda0a85e 100644 --- a/drivers/irqchip/irq-sunxi-nmi.c +++ b/drivers/irqchip/irq-sunxi-nmi.c @@ -186,7 +186,9 @@ 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;
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 flag to prevent the sunxi NMI controller from going to sleep, so that the power key can wake up those systems. Signed-off-by: Philippe Simons <simons.philippe@gmail.com> --- drivers/irqchip/irq-sunxi-nmi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)