Lines Matching +full:irq +full:- +full:device
2 System Suspend and Device Interrupts
9 Suspending and Resuming Device IRQs
10 -----------------------------------
12 Device interrupt request lines (IRQs) are generally disabled during system
14 ->prepare, ->suspend and ->suspend_late callbacks have been executed for all
17 The rationale for doing so is that after the "late" phase of device suspend
21 interrupt handlers for shared IRQs that device drivers implementing them were
26 of suspend_device_irqs(), along with the "noirq" phase of device suspend and
29 Device IRQs are re-enabled during system resume, right before the "early" phase
30 of resuming devices (that is, before starting to execute ->resume_early
35 ------------------------
38 suspend-resume cycle, including the "noirq" phases of suspending and resuming
41 but also to IPIs and to some other special-purpose interrupts.
43 The IRQF_NO_SUSPEND flag is used to indicate that to the IRQ subsystem when
44 requesting a special-purpose interrupt. It causes suspend_device_irqs() to
45 leave the corresponding IRQ enabled so as to allow the interrupt to work as
46 expected during the suspend-resume cycle, but does not guarantee that the
47 interrupt will wake the system from a suspended state -- for such cases it is
50 Note that the IRQF_NO_SUSPEND flag affects the entire IRQ and not just one
51 user of it. Thus, if the IRQ is shared, all of the interrupt handlers installed
54 the IRQ's users. For this reason, using IRQF_NO_SUSPEND and IRQF_SHARED at the
59 ------------------------------------------------------------------
75 The IRQ subsystem provides two helper functions to be used by device drivers for
77 handling the given IRQ as a system wakeup interrupt line and disable_irq_wake()
80 Calling enable_irq_wake() causes suspend_device_irqs() to treat the given IRQ
81 in a special way. Namely, the IRQ remains enabled, but on the first interrupt
83 re-enabled by resume_device_irqs() during the subsequent system resume. Also
96 Interrupts and Suspend-to-Idle
97 ------------------------------
99 Suspend-to-idle (also known as the "freeze" sleep state) is a relatively new
105 IRQ subsystem to trigger a system wakeup.
107 System wakeup interrupts, in turn, will trigger wakeup from suspend-to-idle in
109 is that the wakeup from suspend-to-idle is signaled using the usual working
115 -------------------------------------
118 IRQF_NO_SUSPEND flag on the same IRQ, and it is never valid to use both for the
119 same device.
121 First of all, if the IRQ is not shared, the rules for handling IRQF_NO_SUSPEND
127 to individual interrupt handlers, so sharing an IRQ between a system wakeup
131 In rare cases an IRQ can be shared between a wakeup device driver and an
132 IRQF_NO_SUSPEND user. In order for this to be safe, the wakeup device driver
135 ensure that the IRQ will function as a wakeup source, and must request the IRQ