Lines Matching refs:isci
62 int isci_initialize(struct isci_softc *isci);
83 DRIVER_MODULE(isci, pci, isci_pci_driver, isci_devclass, 0, 0);
84 MODULE_DEPEND(isci, cam, 1, 1, 1);
129 isci_allocate_pci_memory(struct isci_softc *isci) in isci_allocate_pci_memory() argument
135 struct ISCI_PCI_BAR *pci_bar = &isci->pci_bar[i]; in isci_allocate_pci_memory()
138 pci_bar->resource = bus_alloc_resource(isci->device, in isci_allocate_pci_memory()
159 struct isci_softc *isci = DEVICE2SOFTC(device); in isci_attach() local
161 g_isci = isci; in isci_attach()
162 isci->device = device; in isci_attach()
164 isci_allocate_pci_memory(isci); in isci_attach()
166 error = isci_initialize(isci); in isci_attach()
174 isci_interrupt_setup(isci); in isci_attach()
175 isci_sysctl_initialize(isci); in isci_attach()
183 struct isci_softc *isci = DEVICE2SOFTC(device); in isci_detach() local
186 for (i = 0; i < isci->controller_count; i++) { in isci_detach()
187 struct ISCI_CONTROLLER *controller = &isci->controllers[i]; in isci_detach()
235 if (isci->sci_library_memory != NULL) in isci_detach()
236 free(isci->sci_library_memory, M_ISCI); in isci_detach()
240 struct ISCI_PCI_BAR *pci_bar = &isci->pci_bar[i]; in isci_detach()
247 for (i = 0; i < isci->num_interrupts; i++) in isci_detach()
251 interrupt_info = &isci->interrupt_info[i]; in isci_detach()
269 isci_initialize(struct isci_softc *isci) in isci_initialize() argument
281 isci->sci_library_memory = in isci_initialize()
284 isci->sci_library_handle = scif_library_construct( in isci_initialize()
285 isci->sci_library_memory, SCI_MAX_CONTROLLERS); in isci_initialize()
287 sci_object_set_association( isci->sci_library_handle, (void *)isci); in isci_initialize()
306 sci_logger_enable(sci_object_get_logger(isci->sci_library_handle), in isci_initialize()
310 scif_library_get_scic_handle(isci->sci_library_handle)), in isci_initialize()
313 header_buffer = (uint8_t *)&isci->pci_common_header; in isci_initialize()
314 for (uint8_t i = 0; i < sizeof(isci->pci_common_header); i++) in isci_initialize()
315 header_buffer[i] = pci_read_config(isci->device, i, 1); in isci_initialize()
318 scif_library_get_scic_handle(isci->sci_library_handle), in isci_initialize()
319 &isci->pci_common_header); in isci_initialize()
321 isci->oem_parameters_found = FALSE; in isci_initialize()
323 isci_get_oem_parameters(isci); in isci_initialize()
326 isci->coalesce_number = 32; in isci_initialize()
331 isci->coalesce_timeout = 2; in isci_initialize()
333 isci->controller_count = scic_library_get_pci_device_controller_count( in isci_initialize()
334 scif_library_get_scic_handle(isci->sci_library_handle)); in isci_initialize()
336 for (int index = 0; index < isci->controller_count; index++) { in isci_initialize()
337 struct ISCI_CONTROLLER *controller = &isci->controllers[index]; in isci_initialize()
341 isci_controller_construct(controller, isci); in isci_initialize()
360 scif_controller_handle, isci->coalesce_number, in isci_initialize()
361 isci->coalesce_timeout); in isci_initialize()
370 isci->config_hook.ich_func = &isci_controller_start; in isci_initialize()
371 isci->config_hook.ich_arg = &isci->controllers[0]; in isci_initialize()
373 if (config_intrhook_establish(&isci->config_hook) != 0) in isci_initialize()
570 struct isci_softc *isci = isci_controller->isci; in scic_cb_pci_write_dword() local
574 bus_space_write_4(isci->pci_bar[bar].bus_tag, in scic_cb_pci_write_dword()
575 isci->pci_bar[bar].bus_handle, offset, write_value); in scic_cb_pci_write_dword()
597 struct isci_softc *isci = isci_controller->isci; in scic_cb_pci_read_dword() local
601 return (bus_space_read_4(isci->pci_bar[bar].bus_tag, in scic_cb_pci_read_dword()
602 isci->pci_bar[bar].bus_handle, offset)); in scic_cb_pci_read_dword()