Both IRQCHIP_SKIP_SET_WAKE and .irq_set_wake() is not set in gic_chip V3. This causes set_irq_wake_real() return -ENXIO and a WARN(Unbalanced IRQ ... wake disable ...) in irq_set_irq_wake().
Signed-off-by: fangxiang <fangxia...@huawei.com> --- drivers/irqchip/irq-gic-v3.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c index b56c3e2..e8104b8 100644 --- a/drivers/irqchip/irq-gic-v3.c +++ b/drivers/irqchip/irq-gic-v3.c @@ -800,7 +800,8 @@ static inline void gic_cpu_pm_init(void) { } .irq_set_affinity = gic_set_affinity, .irq_get_irqchip_state = gic_irq_get_irqchip_state, .irq_set_irqchip_state = gic_irq_set_irqchip_state, - .flags = IRQCHIP_SET_TYPE_MASKED, + .flags = IRQCHIP_SET_TYPE_MASKED | + IRQCHIP_SKIP_SET_WAKE, }; static struct irq_chip gic_eoimode1_chip = { -- 1.7.9.5