Re: [RFC 1/2] irqchip: qcom: pdc: Introduce irq_set_wake call

From: Stephen Boyd
Date: Wed Feb 19 2020 - 21:21:20 EST


The subject should be something different. "Fix irq wake when irqs are
disabled"?

Quoting Maulik Shah (2020-02-17 05:00:07)
> Change the way interrupts get enabled at wakeup capable PDC irq chip.
> Introduce irq_set_wake call which lets interrupts enabled at PDC with
> enable_irq_wake and disabled with disable_irq_wake.
>
> Remove irq_disable and irq_enable calls which now will default to irq_mask
> and irq_unmask.
>

This commit text is pretty useless. It says what is happening in the
patch but doesn't explain why anything is changing or why anyone should
care.

How are wakeups supposed to work when the CPU cluster power is disabled
in low power CPU idle modes? Presumably the parent irq controller is
powered off (in this case it's an ARM GIC) and we would need to have the
interrupt be "enabled" or "unmasked" at the PDC for the irq to wakeup
the cluster. We shouldn't need to enable irq wake on any irq for the CPU
to get that interrupt in deep CPU idle states.