Lines Matching full:gic
633 struct gdma_irq_context *gic;
665 gic = &gc->irq_contexts[msi_index];
667 if (unlikely(gic->handler || gic->arg)) {
673 gic->arg = queue;
675 gic->handler = mana_gd_process_eq_events;
678 msi_index, gic->msix_e.vector, rman_get_start(gic->res));
687 struct gdma_irq_context *gic;
700 gic = &gc->irq_contexts[msix_index];
701 gic->handler = NULL;
702 gic->arg = NULL;
711 msix_index, gic->msix_e.vector, rman_get_start(gic->res));
1456 struct gdma_irq_context *gic = arg;
1458 if (gic->handler) {
1459 gic->handler(gic->arg);
1569 struct gdma_irq_context *gic;
1606 gic = &gc->irq_contexts[i];
1607 gic->msix_e.entry = i;
1609 gic->msix_e.vector = i + 1;
1610 gic->handler = NULL;
1611 gic->arg = NULL;
1613 gic->res = bus_alloc_resource_any(dev, SYS_RES_IRQ,
1614 &gic->msix_e.vector, RF_ACTIVE | RF_SHAREABLE);
1615 if (unlikely(gic->res == NULL)) {
1618 "for irq vector %d\n", gic->msix_e.vector);
1622 rc = bus_setup_intr(dev, gic->res,
1624 gic, &gic->cookie);
1628 rman_get_start(gic->res), gic->msix_e.vector, rc);
1631 gic->requested = true;
1634 gic->msix_e.vector, rman_get_start(gic->res));
1654 gic = &gc->irq_contexts[i];
1658 * If gic->requested is true, we need to free both intr and
1661 if (gic->requested)
1662 rcc = bus_teardown_intr(dev, gic->res, gic->cookie);
1666 gic->msix_e.vector, rcc);
1669 if (gic->res != NULL) {
1671 gic->msix_e.vector, gic->res);
1676 gic->msix_e.vector);
1677 gic->requested = false;
1678 gic->res = NULL;
1693 struct gdma_irq_context *gic;
1699 gic = &gc->irq_contexts[i];
1700 if (gic->requested) {
1701 rc = bus_teardown_intr(dev, gic->res, gic->cookie);
1705 gic->msix_e.vector, rc);
1707 gic->requested = false;
1710 if (gic->res != NULL) {
1712 gic->msix_e.vector, gic->res);
1716 gic->msix_e.vector);
1718 gic->res = NULL;