On 30/01/18 02:56, fangxiang wrote: > 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 = { >
That's sort of expected (the GIC itself doesn't implement any wake-up mechanism), *unless* you have have a separate, stacked irqchip implementing irq_set_wake. From your commit message, I cannot deduce whether that's the case or not. Please describe what you are fixing, and to what context this applies to. Thanks, M. -- Jazz is not dead. It just smells funny...