Lines Matching refs:irqe
63 struct irq_ent *irqe; in lkpi_irq_ent() local
65 list_for_each_entry(irqe, &dev->irqents, links) in lkpi_irq_ent()
66 if (irqe->irq == irq) in lkpi_irq_ent()
67 return (irqe); in lkpi_irq_ent()
75 struct irq_ent *irqe; in lkpi_irq_handler() local
80 irqe = ent; in lkpi_irq_handler()
81 if (irqe->handler(irqe->irq, irqe->arg) == IRQ_WAKE_THREAD && in lkpi_irq_handler()
82 irqe->thread_handler != NULL) { in lkpi_irq_handler()
84 irqe->thread_handler(irqe->irq, irqe->arg); in lkpi_irq_handler()
90 lkpi_irq_release(struct device *dev, struct irq_ent *irqe) in lkpi_irq_release() argument
92 if (irqe->tag != NULL) in lkpi_irq_release()
93 bus_teardown_intr(dev->bsddev, irqe->res, irqe->tag); in lkpi_irq_release()
94 if (irqe->res != NULL) in lkpi_irq_release()
96 rman_get_rid(irqe->res), irqe->res); in lkpi_irq_release()
97 list_del(&irqe->links); in lkpi_irq_release()
103 struct irq_ent *irqe; in lkpi_devm_irq_release() local
108 irqe = p; in lkpi_devm_irq_release()
109 lkpi_irq_release(dev, irqe); in lkpi_devm_irq_release()
118 struct irq_ent *irqe; in lkpi_request_irq() local
137 irqe = lkpi_devres_alloc(lkpi_devm_irq_release, sizeof(*irqe), in lkpi_request_irq()
140 irqe = kzalloc(sizeof(*irqe), GFP_KERNEL); in lkpi_request_irq()
141 irqe->dev = dev; in lkpi_request_irq()
142 irqe->res = res; in lkpi_request_irq()
143 irqe->arg = arg; in lkpi_request_irq()
144 irqe->handler = handler; in lkpi_request_irq()
145 irqe->thread_handler = thread_handler; in lkpi_request_irq()
146 irqe->irq = irq; in lkpi_request_irq()
149 NULL, lkpi_irq_handler, irqe, &irqe->tag); in lkpi_request_irq()
152 list_add(&irqe->links, &dev->irqents); in lkpi_request_irq()
154 devres_add(xdev, irqe); in lkpi_request_irq()
159 bus_release_resource(dev->bsddev, SYS_RES_IRQ, rid, irqe->res); in lkpi_request_irq()
161 devres_free(irqe); in lkpi_request_irq()
163 kfree(irqe); in lkpi_request_irq()
170 struct irq_ent *irqe; in lkpi_enable_irq() local
176 irqe = lkpi_irq_ent(dev, irq); in lkpi_enable_irq()
177 if (irqe == NULL || irqe->tag != NULL) in lkpi_enable_irq()
179 return -bus_setup_intr(dev->bsddev, irqe->res, INTR_TYPE_NET | INTR_MPSAFE, in lkpi_enable_irq()
180 NULL, lkpi_irq_handler, irqe, &irqe->tag); in lkpi_enable_irq()
186 struct irq_ent *irqe; in lkpi_disable_irq() local
192 irqe = lkpi_irq_ent(dev, irq); in lkpi_disable_irq()
193 if (irqe == NULL) in lkpi_disable_irq()
195 if (irqe->tag != NULL) in lkpi_disable_irq()
196 bus_teardown_intr(dev->bsddev, irqe->res, irqe->tag); in lkpi_disable_irq()
197 irqe->tag = NULL; in lkpi_disable_irq()
203 struct irq_ent *irqe; in lkpi_bind_irq_to_cpu() local
210 irqe = lkpi_irq_ent(dev, irq); in lkpi_bind_irq_to_cpu()
211 if (irqe == NULL) in lkpi_bind_irq_to_cpu()
214 return (-bus_bind_intr(dev->bsddev, irqe->res, cpu_id)); in lkpi_bind_irq_to_cpu()
220 struct irq_ent *irqe; in lkpi_free_irq() local
226 irqe = lkpi_irq_ent(dev, irq); in lkpi_free_irq()
227 if (irqe == NULL) in lkpi_free_irq()
229 lkpi_irq_release(dev, irqe); in lkpi_free_irq()
230 kfree(irqe); in lkpi_free_irq()
237 struct irq_ent *irqe; in lkpi_devm_free_irq() local
244 irqe = lkpi_irq_ent(dev, irq); in lkpi_devm_free_irq()
245 if (irqe == NULL) in lkpi_devm_free_irq()
247 lkpi_irq_release(dev, irqe); in lkpi_devm_free_irq()
248 lkpi_devres_unlink(dev, irqe); in lkpi_devm_free_irq()
249 lkpi_devres_free(irqe); in lkpi_devm_free_irq()