• NeilBrown's avatar
    ARM: OMAP2+: INTC: fix suspend abort, set IRQCHIP_SKIP_SET_WAKE · e3c83c2d
    NeilBrown authored
    Without an ->irq_set_wake() method in an irq_chip, calls to
    enable_irq_wake() will fail.  This also causes these interrupts to not
    be able to abort suspend (via check_wakeup_irqs() in late suspend.)
    
    Currently, we don't implement ->irq_set_wake() for INTC interrupts
    because they default to be wakeup enabled by setting the GRPSEL bits
    in PM init.  Even though there is no ->irq_set_wake(), we want
    enable_irq_wake() to succeed so these interrupts can abort suspend
    when necessary.
    
    To fix, set IRQCHIP_SKIP_SET_WAKE flag for all the INTC
    interrupts which avoids trying to check irq_chip->irq_set_wake()
    and failing when it doesn't exist.
    
    Longer term, we need to implement ->irq_set_wake() for the INTC
    which can manage the appropriate GRPSEL bits.
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    [khilman@ti.com: rework changelog]
    Acked-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
    Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
    e3c83c2d
irq.c 8.95 KB