[PATCH] irqchip/meson-gpio: Allow the GPIO interrupts to wake the system
sashiko-bot at kernel.org
sashiko-bot at kernel.org
Wed Oct 7 15:05:46 PDT 2026
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] irqchip/meson-gpio: missing IRQCHIP_MASK_ON_SUSPEND causes spurious wakeups
--
commit 5ce5a9f356d882f5bc4432c0009be7fd0adbb0fd
Author: Igor Velkov <iav at iav.lv>
irqchip/meson-gpio: Allow the GPIO interrupts to wake the system
This commit adds the IRQCHIP_SKIP_SET_WAKE flag to meson_gpio_irq_chip.
This allows enable_irq_wake() to succeed and GPIO interrupts to wake the
system from suspend.
> diff --git a/drivers/irqchip/irq-meson-gpio.c b/drivers/irqchip/irq-meson-gpio.c
> index 91a9c337fe6d9..e0329ef5e4a21 100644
> --- a/drivers/irqchip/irq-meson-gpio.c
> +++ b/drivers/irqchip/irq-meson-gpio.c
> @@ -538,7 +538,7 @@ static struct irq_chip meson_gpio_irq_chip = {
> #ifdef CONFIG_SMP
> .irq_set_affinity = irq_chip_set_affinity_parent,
> #endif
> - .flags = IRQCHIP_SET_TYPE_MASKED,
> + .flags = IRQCHIP_SET_TYPE_MASKED | IRQCHIP_SKIP_SET_WAKE,
[Severity: Medium]
Since this patch modifies meson_gpio_irq_chip.flags to fix suspend wakeup
behavior, should it also add IRQCHIP_MASK_ON_SUSPEND to properly mask
non-wakeup interrupts at the GIC level?
During system suspend, suspend_device_irq() checks the top-level irqchip's
flags for IRQCHIP_MASK_ON_SUSPEND. Because meson_gpio_irq_chip lacks this
flag, non-wakeup interrupts are only lazily disabled but not explicitly
masked at the hardware level.
Since meson_gpio_irq_chip delegates masking directly to its GIC parent, and
the GIC requires explicit masking to prevent wakeups, will the unmasked
non-wakeup interrupts remain enabled in the GIC and spuriously wake the CPU
from suspend?
> };
>
> static int meson_gpio_irq_domain_translate(struct irq_domain *domain,
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261008-meson-gpio-wake-v1-1-b0af1598d469@iav.lv?part=1
More information about the linux-amlogic
mailing list