Lines Matching refs:isci
36 #include <dev/isci/isci.h>
41 #include <dev/isci/scil/scif_controller.h>
47 isci_interrupt_setup_legacy(struct isci_softc *isci)
49 struct ISCI_INTERRUPT_INFO *interrupt_info = &isci->interrupt_info[0];
51 isci->num_interrupts = 1;
54 0, &isci->handlers[0]);
56 interrupt_info->handlers = &isci->handlers[0];
58 interrupt_info->interrupt_target_handle = (void *)isci;
60 interrupt_info->res = bus_alloc_resource_any(isci->device, SYS_RES_IRQ,
69 if (bus_setup_intr(isci->device, interrupt_info->res,
80 isci_interrupt_setup_msix(struct isci_softc *isci)
85 SCI_MAX_MSIX_MESSAGES_PER_CONTROLLER, &isci->handlers[0]);
87 for (controller_index = 0; controller_index < isci->controller_count;
96 &isci->interrupt_info[base_index+msix_index];
98 info->handlers = &isci->handlers[msix_index];
100 &isci->controllers[controller_index];
104 info->res = bus_alloc_resource_any(isci->device,
113 if (bus_setup_intr(isci->device, info->res,
127 isci_interrupt_setup(struct isci_softc *isci)
130 isci->controller_count;
134 TUNABLE_INT_FETCH("hw.isci.force_legacy_interrupts",
138 pci_msix_count(isci->device) >= max_msix_messages) {
140 isci->num_interrupts = max_msix_messages;
141 if (pci_alloc_msix(isci->device, &isci->num_interrupts) == 0 &&
142 isci->num_interrupts == max_msix_messages)
147 isci_interrupt_setup_msix(isci);
149 isci_interrupt_setup_legacy(isci);
157 struct isci_softc *isci =
166 for (index = 0; index < isci->controller_count; index++) {
167 struct ISCI_CONTROLLER *controller = &isci->controllers[index];