PCI: irq: Introduce rearm_wake_irq()
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 15 Jul 2019 11:03:20 +0000 (13:03 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 23 Jul 2019 07:37:51 +0000 (09:37 +0200)
commit3a79bc63d90750f737ab9d7219bd3091d2fd6d84
tree57aee43684c7c9c83eff53b6e8ea765975ab5b55
parent5f9e832c137075045d15cd6899ab0505cfb2ca4b
PCI: irq: Introduce rearm_wake_irq()

Introduce a new function, rearm_wake_irq(), allowing a wakeup IRQ
to be armed for systen wakeup detection again without running any
action handlers associated with it after it has been armed for
wakeup detection and triggered.

That is useful for IRQs, like ACPI SCI, that may deliver wakeup
as well as non-wakeup interrupts when armed for systen wakeup
detection.  In those cases, it may be possible to determine whether
or not the delivered interrupt is a systen wakeup one without
running the entire action handler (or handlers, if the IRQ is
shared) for the IRQ, and if the interrupt turns out to be a
non-wakeup one, the IRQ can be rearmed with the help of the
new function.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
include/linux/interrupt.h
kernel/irq/pm.c