Lines Matching +full:non +full:- +full:masked

1 // SPDX-License-Identifier: GPL-2.0
18 if (irqd_is_wakeup_armed(&desc->irq_data)) { in irq_pm_check_wakeup()
19 irqd_clear(&desc->irq_data, IRQD_WAKEUP_ARMED); in irq_pm_check_wakeup()
20 desc->istate |= IRQS_SUSPENDED | IRQS_PENDING; in irq_pm_check_wakeup()
21 desc->depth++; in irq_pm_check_wakeup()
30 * Called from __setup_irq() with desc->lock held after @action has
35 desc->nr_actions++; in irq_pm_install_action()
37 if (action->flags & IRQF_FORCE_RESUME) in irq_pm_install_action()
38 desc->force_resume_depth++; in irq_pm_install_action()
40 WARN_ON_ONCE(desc->force_resume_depth && in irq_pm_install_action()
41 desc->force_resume_depth != desc->nr_actions); in irq_pm_install_action()
43 if (action->flags & IRQF_NO_SUSPEND) in irq_pm_install_action()
44 desc->no_suspend_depth++; in irq_pm_install_action()
45 else if (action->flags & IRQF_COND_SUSPEND) in irq_pm_install_action()
46 desc->cond_suspend_depth++; in irq_pm_install_action()
48 WARN_ON_ONCE(desc->no_suspend_depth && in irq_pm_install_action()
49 (desc->no_suspend_depth + in irq_pm_install_action()
50 desc->cond_suspend_depth) != desc->nr_actions); in irq_pm_install_action()
54 * Called from __free_irq() with desc->lock held after @action has
59 desc->nr_actions--; in irq_pm_remove_action()
61 if (action->flags & IRQF_FORCE_RESUME) in irq_pm_remove_action()
62 desc->force_resume_depth--; in irq_pm_remove_action()
64 if (action->flags & IRQF_NO_SUSPEND) in irq_pm_remove_action()
65 desc->no_suspend_depth--; in irq_pm_remove_action()
66 else if (action->flags & IRQF_COND_SUSPEND) in irq_pm_remove_action()
67 desc->cond_suspend_depth--; in irq_pm_remove_action()
72 unsigned long chipflags = irq_desc_get_chip(desc)->flags; in suspend_device_irq()
73 struct irq_data *irqd = &desc->irq_data; in suspend_device_irq()
75 if (!desc->action || irq_desc_is_chained(desc) || in suspend_device_irq()
76 desc->no_suspend_depth) in suspend_device_irq()
101 desc->istate |= IRQS_SUSPENDED; in suspend_device_irq()
106 * requires that the non wakeup interrupts are masked at the in suspend_device_irq()
116 * suspend_device_irqs - disable all currently enabled interrupt lines
118 * During system-wide suspend or hibernation device drivers need to be
142 raw_spin_lock_irqsave(&desc->lock, flags); in suspend_device_irqs()
144 raw_spin_unlock_irqrestore(&desc->lock, flags); in suspend_device_irqs()
153 struct irq_data *irqd = &desc->irq_data; in resume_irq()
167 if (desc->istate & IRQS_SUSPENDED) in resume_irq()
171 if (!desc->force_resume_depth) in resume_irq()
175 desc->depth++; in resume_irq()
179 desc->istate &= ~IRQS_SUSPENDED; in resume_irq()
190 bool is_early = desc->action && in resume_irqs()
191 desc->action->flags & IRQF_EARLY_RESUME; in resume_irqs()
198 raw_spin_lock_irqsave(&desc->lock, flags); in resume_irqs()
200 raw_spin_unlock_irqrestore(&desc->lock, flags); in resume_irqs()
205 * rearm_wake_irq - rearm a wakeup interrupt line after signaling wakeup
216 if (!(desc->istate & IRQS_SUSPENDED) || in rearm_wake_irq()
217 !irqd_is_wakeup_set(&desc->irq_data)) in rearm_wake_irq()
220 desc->istate &= ~IRQS_SUSPENDED; in rearm_wake_irq()
221 irqd_set(&desc->irq_data, IRQD_WAKEUP_ARMED); in rearm_wake_irq()
229 * irq_pm_syscore_resume - enable interrupt lines early
251 * resume_device_irqs - enable interrupt lines disabled by suspend_device_irqs()
253 * Enable all non-%IRQF_EARLY_RESUME interrupt lines previously