wirq 38 drivers/base/power/power.h extern void dev_pm_arm_wake_irq(struct wake_irq *wirq); wirq 39 drivers/base/power/power.h extern void dev_pm_disarm_wake_irq(struct wake_irq *wirq); wirq 22 drivers/base/power/wakeirq.c struct wake_irq *wirq) wirq 26 drivers/base/power/wakeirq.c if (!dev || !wirq) wirq 36 drivers/base/power/wakeirq.c dev->power.wakeirq = wirq; wirq 37 drivers/base/power/wakeirq.c device_wakeup_attach_irq(dev, wirq); wirq 55 drivers/base/power/wakeirq.c struct wake_irq *wirq; wirq 61 drivers/base/power/wakeirq.c wirq = kzalloc(sizeof(*wirq), GFP_KERNEL); wirq 62 drivers/base/power/wakeirq.c if (!wirq) wirq 65 drivers/base/power/wakeirq.c wirq->dev = dev; wirq 66 drivers/base/power/wakeirq.c wirq->irq = irq; wirq 68 drivers/base/power/wakeirq.c err = dev_pm_attach_wake_irq(dev, irq, wirq); wirq 70 drivers/base/power/wakeirq.c kfree(wirq); wirq 89 drivers/base/power/wakeirq.c struct wake_irq *wirq = dev->power.wakeirq; wirq 92 drivers/base/power/wakeirq.c if (!wirq) wirq 100 drivers/base/power/wakeirq.c if (wirq->status & WAKE_IRQ_DEDICATED_ALLOCATED) { wirq 101 drivers/base/power/wakeirq.c free_irq(wirq->irq, wirq); wirq 102 drivers/base/power/wakeirq.c wirq->status &= ~WAKE_IRQ_DEDICATED_MASK; wirq 104 drivers/base/power/wakeirq.c kfree(wirq->name); wirq 105 drivers/base/power/wakeirq.c kfree(wirq); wirq 129 drivers/base/power/wakeirq.c struct wake_irq *wirq = _wirq; wirq 134 drivers/base/power/wakeirq.c pm_wakeup_event(wirq->dev, 0); wirq 140 drivers/base/power/wakeirq.c res = pm_runtime_resume(wirq->dev); wirq 142 drivers/base/power/wakeirq.c dev_warn(wirq->dev, wirq 167 drivers/base/power/wakeirq.c struct wake_irq *wirq; wirq 173 drivers/base/power/wakeirq.c wirq = kzalloc(sizeof(*wirq), GFP_KERNEL); wirq 174 drivers/base/power/wakeirq.c if (!wirq) wirq 177 drivers/base/power/wakeirq.c wirq->name = kasprintf(GFP_KERNEL, "%s:wakeup", dev_name(dev)); wirq 178 drivers/base/power/wakeirq.c if (!wirq->name) { wirq 183 drivers/base/power/wakeirq.c wirq->dev = dev; wirq 184 drivers/base/power/wakeirq.c wirq->irq = irq; wirq 195 drivers/base/power/wakeirq.c IRQF_ONESHOT, wirq->name, wirq); wirq 199 drivers/base/power/wakeirq.c err = dev_pm_attach_wake_irq(dev, irq, wirq); wirq 203 drivers/base/power/wakeirq.c wirq->status = WAKE_IRQ_DEDICATED_ALLOCATED; wirq 208 drivers/base/power/wakeirq.c free_irq(irq, wirq); wirq 210 drivers/base/power/wakeirq.c kfree(wirq->name); wirq 212 drivers/base/power/wakeirq.c kfree(wirq); wirq 232 drivers/base/power/wakeirq.c struct wake_irq *wirq = dev->power.wakeirq; wirq 234 drivers/base/power/wakeirq.c if (wirq && (wirq->status & WAKE_IRQ_DEDICATED_ALLOCATED)) wirq 235 drivers/base/power/wakeirq.c enable_irq(wirq->irq); wirq 249 drivers/base/power/wakeirq.c struct wake_irq *wirq = dev->power.wakeirq; wirq 251 drivers/base/power/wakeirq.c if (wirq && (wirq->status & WAKE_IRQ_DEDICATED_ALLOCATED)) wirq 252 drivers/base/power/wakeirq.c disable_irq_nosync(wirq->irq); wirq 273 drivers/base/power/wakeirq.c struct wake_irq *wirq = dev->power.wakeirq; wirq 275 drivers/base/power/wakeirq.c if (!wirq || !((wirq->status & WAKE_IRQ_DEDICATED_MASK))) wirq 278 drivers/base/power/wakeirq.c if (likely(wirq->status & WAKE_IRQ_DEDICATED_MANAGED)) { wirq 281 drivers/base/power/wakeirq.c wirq->status |= WAKE_IRQ_DEDICATED_MANAGED; wirq 288 drivers/base/power/wakeirq.c enable_irq(wirq->irq); wirq 300 drivers/base/power/wakeirq.c struct wake_irq *wirq = dev->power.wakeirq; wirq 302 drivers/base/power/wakeirq.c if (!wirq || !((wirq->status & WAKE_IRQ_DEDICATED_MASK))) wirq 305 drivers/base/power/wakeirq.c if (wirq->status & WAKE_IRQ_DEDICATED_MANAGED) wirq 306 drivers/base/power/wakeirq.c disable_irq_nosync(wirq->irq); wirq 316 drivers/base/power/wakeirq.c void dev_pm_arm_wake_irq(struct wake_irq *wirq) wirq 318 drivers/base/power/wakeirq.c if (!wirq) wirq 321 drivers/base/power/wakeirq.c if (device_may_wakeup(wirq->dev)) { wirq 322 drivers/base/power/wakeirq.c if (wirq->status & WAKE_IRQ_DEDICATED_ALLOCATED && wirq 323 drivers/base/power/wakeirq.c !pm_runtime_status_suspended(wirq->dev)) wirq 324 drivers/base/power/wakeirq.c enable_irq(wirq->irq); wirq 326 drivers/base/power/wakeirq.c enable_irq_wake(wirq->irq); wirq 337 drivers/base/power/wakeirq.c void dev_pm_disarm_wake_irq(struct wake_irq *wirq) wirq 339 drivers/base/power/wakeirq.c if (!wirq) wirq 342 drivers/base/power/wakeirq.c if (device_may_wakeup(wirq->dev)) { wirq 343 drivers/base/power/wakeirq.c disable_irq_wake(wirq->irq); wirq 345 drivers/base/power/wakeirq.c if (wirq->status & WAKE_IRQ_DEDICATED_ALLOCATED && wirq 346 drivers/base/power/wakeirq.c !pm_runtime_status_suspended(wirq->dev)) wirq 347 drivers/base/power/wakeirq.c disable_irq_nosync(wirq->irq);