Lines Matching refs:isci
34 #include <dev/isci/isci.h>
39 #include <dev/isci/scil/scif_controller.h>
45 isci_interrupt_setup_legacy(struct isci_softc *isci)
47 struct ISCI_INTERRUPT_INFO *interrupt_info = &isci->interrupt_info[0];
49 isci->num_interrupts = 1;
52 0, &isci->handlers[0]);
54 interrupt_info->handlers = &isci->handlers[0];
56 interrupt_info->interrupt_target_handle = (void *)isci;
58 interrupt_info->res = bus_alloc_resource_any(isci->device, SYS_RES_IRQ,
67 if (bus_setup_intr(isci->device, interrupt_info->res,
78 isci_interrupt_setup_msix(struct isci_softc *isci)
83 SCI_MAX_MSIX_MESSAGES_PER_CONTROLLER, &isci->handlers[0]);
85 for (controller_index = 0; controller_index < isci->controller_count;
94 &isci->interrupt_info[base_index+msix_index];
96 info->handlers = &isci->handlers[msix_index];
98 &isci->controllers[controller_index];
102 info->res = bus_alloc_resource_any(isci->device,
111 if (bus_setup_intr(isci->device, info->res,
125 isci_interrupt_setup(struct isci_softc *isci)
128 isci->controller_count;
132 TUNABLE_INT_FETCH("hw.isci.force_legacy_interrupts",
136 pci_msix_count(isci->device) >= max_msix_messages) {
138 isci->num_interrupts = max_msix_messages;
139 if (pci_alloc_msix(isci->device, &isci->num_interrupts) == 0 &&
140 isci->num_interrupts == max_msix_messages)
145 isci_interrupt_setup_msix(isci);
147 isci_interrupt_setup_legacy(isci);
155 struct isci_softc *isci =
164 for (index = 0; index < isci->controller_count; index++) {
165 struct ISCI_CONTROLLER *controller = &isci->controllers[index];