Lines Matching refs:wirq
33 struct wake_irq *wirq) in dev_pm_attach_wake_irq() argument
38 if (!dev || !wirq) in dev_pm_attach_wake_irq()
48 err = device_wakeup_attach_irq(dev, wirq); in dev_pm_attach_wake_irq()
50 dev->power.wakeirq = wirq; in dev_pm_attach_wake_irq()
68 struct wake_irq *wirq; in dev_pm_set_wake_irq() local
74 wirq = kzalloc(sizeof(*wirq), GFP_KERNEL); in dev_pm_set_wake_irq()
75 if (!wirq) in dev_pm_set_wake_irq()
78 wirq->dev = dev; in dev_pm_set_wake_irq()
79 wirq->irq = irq; in dev_pm_set_wake_irq()
81 err = dev_pm_attach_wake_irq(dev, irq, wirq); in dev_pm_set_wake_irq()
83 kfree(wirq); in dev_pm_set_wake_irq()
102 struct wake_irq *wirq = dev->power.wakeirq; in dev_pm_clear_wake_irq() local
105 if (!wirq) in dev_pm_clear_wake_irq()
113 if (wirq->dedicated_irq) in dev_pm_clear_wake_irq()
114 free_irq(wirq->irq, wirq); in dev_pm_clear_wake_irq()
115 kfree(wirq); in dev_pm_clear_wake_irq()
139 struct wake_irq *wirq = _wirq; in handle_threaded_wake_irq() local
143 res = pm_runtime_resume(wirq->dev); in handle_threaded_wake_irq()
145 dev_warn(wirq->dev, in handle_threaded_wake_irq()
170 struct wake_irq *wirq; in dev_pm_set_dedicated_wake_irq() local
176 wirq = kzalloc(sizeof(*wirq), GFP_KERNEL); in dev_pm_set_dedicated_wake_irq()
177 if (!wirq) in dev_pm_set_dedicated_wake_irq()
180 wirq->dev = dev; in dev_pm_set_dedicated_wake_irq()
181 wirq->irq = irq; in dev_pm_set_dedicated_wake_irq()
182 wirq->dedicated_irq = true; in dev_pm_set_dedicated_wake_irq()
190 IRQF_ONESHOT, dev_name(dev), wirq); in dev_pm_set_dedicated_wake_irq()
194 err = dev_pm_attach_wake_irq(dev, irq, wirq); in dev_pm_set_dedicated_wake_irq()
201 free_irq(irq, wirq); in dev_pm_set_dedicated_wake_irq()
203 kfree(wirq); in dev_pm_set_dedicated_wake_irq()
223 struct wake_irq *wirq = dev->power.wakeirq; in dev_pm_enable_wake_irq() local
225 if (wirq && wirq->dedicated_irq) in dev_pm_enable_wake_irq()
226 enable_irq(wirq->irq); in dev_pm_enable_wake_irq()
240 struct wake_irq *wirq = dev->power.wakeirq; in dev_pm_disable_wake_irq() local
242 if (wirq && wirq->dedicated_irq) in dev_pm_disable_wake_irq()
243 disable_irq_nosync(wirq->irq); in dev_pm_disable_wake_irq()
254 void dev_pm_arm_wake_irq(struct wake_irq *wirq) in dev_pm_arm_wake_irq() argument
256 if (!wirq) in dev_pm_arm_wake_irq()
259 if (device_may_wakeup(wirq->dev)) in dev_pm_arm_wake_irq()
260 enable_irq_wake(wirq->irq); in dev_pm_arm_wake_irq()
270 void dev_pm_disarm_wake_irq(struct wake_irq *wirq) in dev_pm_disarm_wake_irq() argument
272 if (!wirq) in dev_pm_disarm_wake_irq()
275 if (device_may_wakeup(wirq->dev)) in dev_pm_disarm_wake_irq()
276 disable_irq_wake(wirq->irq); in dev_pm_disarm_wake_irq()