Lines Matching refs:to
17 trigger and if any devices have not been suspended properly yet, it is better to
21 In some cases they would attempt to access, for example, memory address spaces
22 of suspended devices and cause unpredictable behavior to ensue as a result.
23 Unfortunately, such problems are very difficult to debug and the introduction
25 resume, was the only practical way to mitigate them.
28 of resuming devices (that is, before starting to execute ->resume_early
38 brought back online. That applies to timer interrupts in the first place,
39 but also to IPIs and to some other special-purpose interrupts.
41 The IRQF_NO_SUSPEND flag is used to indicate that to the IRQ subsystem when
42 requesting a special-purpose interrupt. It causes suspend_device_irqs() to
43 leave the corresponding IRQ enabled so as to allow the interrupt to work as
46 necessary to use enable_irq_wake().
51 IRQF_NO_SUSPEND flag was not passed to request_irq() (or equivalent) by some of
59 System wakeup interrupts generally need to be configured to wake up the system
65 during system sleep so as to trigger a system wakeup when needed. For example,
67 handling system wakeup events. Then, if a given interrupt line is supposed to
69 controller needs to be enabled to receive signals from the line in question.
70 After wakeup, it generally is better to disable that input to prevent the
73 The IRQ subsystem provides two helper functions to be used by device drivers for
78 Calling enable_irq_wake() causes suspend_device_irqs() to treat the given IRQ
83 progress to be aborted (that doesn't have to happen immediately, but at one
87 system suspend currently in progress to be aborted or wake up the system if
94 Interrupts and Suspend-to-Idle
97 Suspend-to-idle (also known as the "freeze" sleep state) is a relatively new
103 IRQ subsystem to trigger a system wakeup.
105 System wakeup interrupts, in turn, will trigger wakeup from suspend-to-idle in
107 is that the wakeup from suspend-to-idle is signaled using the usual working
108 state interrupt delivery mechanisms and doesn't require the platform to use
109 any special interrupt handling logic for it to work.
115 There are very few valid reasons to use both enable_irq_wake() and the
116 IRQF_NO_SUSPEND flag on the same IRQ, and it is never valid to use both for the
124 Second, both enable_irq_wake() and IRQF_NO_SUSPEND apply to entire IRQs and not
125 to individual interrupt handlers, so sharing an IRQ between a system wakeup
130 IRQF_NO_SUSPEND user. In order for this to be safe, the wakeup device driver
131 must be able to discern spurious IRQs from genuine wakeup events (signalling
132 the latter to the core with pm_system_wakeup()), must use enable_irq_wake() to
134 with IRQF_COND_SUSPEND to tell the core that it meets these requirements. If
135 these requirements are not met, it is not valid to use IRQF_COND_SUSPEND.