• Home
  • Raw
  • Download

Lines Matching refs:aac

403 	struct aac_dev *aac = (struct aac_dev *)sdev->host->hostdata;  in aac_slave_configure()  local
404 if (aac->jbod && (sdev->type == TYPE_DISK)) in aac_slave_configure()
408 (!aac->jbod || sdev->inq_periph_qual) && in aac_slave_configure()
409 (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2))) { in aac_slave_configure()
416 (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2)) && in aac_slave_configure()
431 for (cid = 0; cid < aac->maximum_num_containers; ++cid) in aac_slave_configure()
432 if (aac->fsa_dev[cid].valid) in aac_slave_configure()
436 (!aac->raid_scsi_mode || in aac_slave_configure()
440 || !aac->fsa_dev[sdev_id(dev)].valid) in aac_slave_configure()
502 struct aac_dev *aac = (struct aac_dev *)(sdev->host->hostdata); in aac_show_raid_level() local
506 ((aac->jbod && (sdev->type == TYPE_DISK)) ? "JBOD\n" : "")); in aac_show_raid_level()
508 get_container_type(aac->fsa_dev[sdev_id(sdev)].type)); in aac_show_raid_level()
536 struct aac_dev * aac = (struct aac_dev *)host->hostdata; in aac_eh_abort() local
545 if (!(aac->raw_io_interface) || in aac_eh_abort()
546 !(aac->raw_io_64) || in aac_eh_abort()
553 struct fib * fib = &aac->fibs[count]; in aac_eh_abort()
567 struct fib * fib = &aac->fibs[count]; in aac_eh_abort()
593 struct aac_dev * aac = (struct aac_dev *)host->hostdata; in aac_eh_reset() local
598 struct fib * fib = &aac->fibs[count]; in aac_eh_reset()
609 if ((count = aac_check_health(aac))) in aac_eh_reset()
616 int active = aac->in_reset; in aac_eh_reset()
645 if (((aac->supplement_adapter_info.SupportedOptions2 & in aac_eh_reset()
647 (aac->supplement_adapter_info.SupportedOptions2 & in aac_eh_reset()
651 !(aac->supplement_adapter_info.SupportedOptions2 & in aac_eh_reset()
653 aac_reset_adapter(aac, 2); /* Bypass wait for command quiesce */ in aac_eh_reset()
671 struct aac_dev *aac; in aac_cfg_open() local
676 list_for_each_entry(aac, &aac_devices, entry) { in aac_cfg_open()
677 if (aac->id == minor_number) { in aac_cfg_open()
678 file->private_data = aac; in aac_cfg_open()
705 struct aac_dev *aac = (struct aac_dev *)file->private_data; in aac_cfg_ioctl() local
710 return aac_do_ioctl(aac, cmd, (void __user *)arg); in aac_cfg_ioctl()
1069 static void __aac_shutdown(struct aac_dev * aac) in __aac_shutdown() argument
1074 aac_send_shutdown(aac); in __aac_shutdown()
1076 if (aac->aif_thread) { in __aac_shutdown()
1079 for (i = 0; i < (aac->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB); i++) { in __aac_shutdown()
1080 struct fib *fib = &aac->fibs[i]; in __aac_shutdown()
1085 kthread_stop(aac->thread); in __aac_shutdown()
1087 aac_adapter_disable_int(aac); in __aac_shutdown()
1089 if (aac->pdev->device == PMC_DEVICE_S6 || in __aac_shutdown()
1090 aac->pdev->device == PMC_DEVICE_S7 || in __aac_shutdown()
1091 aac->pdev->device == PMC_DEVICE_S8 || in __aac_shutdown()
1092 aac->pdev->device == PMC_DEVICE_S9) { in __aac_shutdown()
1093 if (aac->max_msix > 1) { in __aac_shutdown()
1094 for (i = 0; i < aac->max_msix; i++) { in __aac_shutdown()
1096 aac->msixentry[i].vector, in __aac_shutdown()
1099 aac->name, in __aac_shutdown()
1100 aac->id, in __aac_shutdown()
1105 free_irq(aac->msixentry[i].vector, in __aac_shutdown()
1106 &(aac->aac_msix[i])); in __aac_shutdown()
1109 free_irq(aac->pdev->irq, in __aac_shutdown()
1110 &(aac->aac_msix[0])); in __aac_shutdown()
1113 free_irq(aac->pdev->irq, aac); in __aac_shutdown()
1115 if (aac->msi) in __aac_shutdown()
1116 pci_disable_msi(aac->pdev); in __aac_shutdown()
1117 else if (aac->max_msix > 1) in __aac_shutdown()
1118 pci_disable_msix(aac->pdev); in __aac_shutdown()
1132 struct aac_dev *aac; in aac_probe_one() local
1145 list_for_each_entry(aac, &aac_devices, entry) { in aac_probe_one()
1146 if (aac->id > unique_id) in aac_probe_one()
1148 insert = &aac->entry; in aac_probe_one()
1187 aac = (struct aac_dev *)shost->hostdata; in aac_probe_one()
1188 aac->base_start = pci_resource_start(pdev, 0); in aac_probe_one()
1189 aac->scsi_host_ptr = shost; in aac_probe_one()
1190 aac->pdev = pdev; in aac_probe_one()
1191 aac->name = aac_driver_template.name; in aac_probe_one()
1192 aac->id = shost->unique_id; in aac_probe_one()
1193 aac->cardtype = index; in aac_probe_one()
1194 INIT_LIST_HEAD(&aac->entry); in aac_probe_one()
1196 aac->fibs = kzalloc(sizeof(struct fib) * (shost->can_queue + AAC_NUM_MGT_FIB), GFP_KERNEL); in aac_probe_one()
1197 if (!aac->fibs) in aac_probe_one()
1199 spin_lock_init(&aac->fib_lock); in aac_probe_one()
1201 mutex_init(&aac->ioctl_mutex); in aac_probe_one()
1205 aac->base_size = AAC_MIN_FOOTPRINT_SIZE; in aac_probe_one()
1206 if ((*aac_drivers[index].init)(aac)) in aac_probe_one()
1209 if (aac->sync_mode) { in aac_probe_one()
1214 aac->name, in aac_probe_one()
1215 aac->id); in aac_probe_one()
1220 aac->name, in aac_probe_one()
1221 aac->id); in aac_probe_one()
1227 aac->thread = kthread_run(aac_command_thread, aac, AAC_DRIVERNAME); in aac_probe_one()
1228 if (IS_ERR(aac->thread)) { in aac_probe_one()
1230 error = PTR_ERR(aac->thread); in aac_probe_one()
1231 aac->thread = NULL; in aac_probe_one()
1244 aac->maximum_num_channels = aac_drivers[index].channels; in aac_probe_one()
1245 error = aac_get_adapter_info(aac); in aac_probe_one()
1265 (aac->adapter_info.options & AAC_OPT_NEW_COMM) ? in aac_probe_one()
1274 aac->printf_enabled = 1; in aac_probe_one()
1276 aac->printf_enabled = 0; in aac_probe_one()
1283 if (aac->nondasd_support || expose_physicals || aac->jbod) in aac_probe_one()
1284 shost->max_channel = aac->maximum_num_channels; in aac_probe_one()
1288 aac_get_config_status(aac, 0); in aac_probe_one()
1289 aac_get_containers(aac); in aac_probe_one()
1290 list_add(&aac->entry, insert); in aac_probe_one()
1292 shost->max_id = aac->maximum_num_containers; in aac_probe_one()
1293 if (shost->max_id < aac->maximum_num_physicals) in aac_probe_one()
1294 shost->max_id = aac->maximum_num_physicals; in aac_probe_one()
1301 aac_intr_normal(aac, 0, 2, 0, NULL); in aac_probe_one()
1322 __aac_shutdown(aac); in aac_probe_one()
1324 aac_fib_map_free(aac); in aac_probe_one()
1325 if (aac->comm_addr) in aac_probe_one()
1326 pci_free_consistent(aac->pdev, aac->comm_size, aac->comm_addr, in aac_probe_one()
1327 aac->comm_phys); in aac_probe_one()
1328 kfree(aac->queues); in aac_probe_one()
1329 aac_adapter_ioremap(aac, 0); in aac_probe_one()
1330 kfree(aac->fibs); in aac_probe_one()
1331 kfree(aac->fsa_dev); in aac_probe_one()
1340 static void aac_release_resources(struct aac_dev *aac) in aac_release_resources() argument
1344 aac_adapter_disable_int(aac); in aac_release_resources()
1345 if (aac->pdev->device == PMC_DEVICE_S6 || in aac_release_resources()
1346 aac->pdev->device == PMC_DEVICE_S7 || in aac_release_resources()
1347 aac->pdev->device == PMC_DEVICE_S8 || in aac_release_resources()
1348 aac->pdev->device == PMC_DEVICE_S9) { in aac_release_resources()
1349 if (aac->max_msix > 1) { in aac_release_resources()
1350 for (i = 0; i < aac->max_msix; i++) in aac_release_resources()
1351 free_irq(aac->msixentry[i].vector, in aac_release_resources()
1352 &(aac->aac_msix[i])); in aac_release_resources()
1354 free_irq(aac->pdev->irq, &(aac->aac_msix[0])); in aac_release_resources()
1357 free_irq(aac->pdev->irq, aac); in aac_release_resources()
1359 if (aac->msi) in aac_release_resources()
1360 pci_disable_msi(aac->pdev); in aac_release_resources()
1361 else if (aac->max_msix > 1) in aac_release_resources()
1362 pci_disable_msix(aac->pdev); in aac_release_resources()
1450 struct aac_dev *aac = (struct aac_dev *)shost->hostdata; in aac_suspend() local
1453 aac_send_shutdown(aac); in aac_suspend()
1455 aac_release_resources(aac); in aac_suspend()
1468 struct aac_dev *aac = (struct aac_dev *)shost->hostdata; in aac_resume() local
1480 if (aac_acquire_resources(aac)) in aac_resume()
1486 aac->adapter_shutdown = 0; in aac_resume()
1492 printk(KERN_INFO "%s%d: resume failed.\n", aac->name, aac->id); in aac_resume()
1509 struct aac_dev *aac = (struct aac_dev *)shost->hostdata; in aac_remove_one() local
1513 __aac_shutdown(aac); in aac_remove_one()
1514 aac_fib_map_free(aac); in aac_remove_one()
1515 pci_free_consistent(aac->pdev, aac->comm_size, aac->comm_addr, in aac_remove_one()
1516 aac->comm_phys); in aac_remove_one()
1517 kfree(aac->queues); in aac_remove_one()
1519 aac_adapter_ioremap(aac, 0); in aac_remove_one()
1521 kfree(aac->fibs); in aac_remove_one()
1522 kfree(aac->fsa_dev); in aac_remove_one()
1524 list_del(&aac->entry); in aac_remove_one()
1533 static void aac_flush_ios(struct aac_dev *aac) in aac_flush_ios() argument
1538 for (i = 0; i < aac->scsi_host_ptr->can_queue; i++) { in aac_flush_ios()
1539 cmd = (struct scsi_cmnd *)aac->fibs[i].callback_data; in aac_flush_ios()
1543 if (aac->handle_pci_error) in aac_flush_ios()
1557 struct aac_dev *aac = shost_priv(shost); in aac_pci_error_detected() local
1565 aac->handle_pci_error = 1; in aac_pci_error_detected()
1567 scsi_block_requests(aac->scsi_host_ptr); in aac_pci_error_detected()
1568 aac_flush_ios(aac); in aac_pci_error_detected()
1569 aac_release_resources(aac); in aac_pci_error_detected()
1572 aac_adapter_ioremap(aac, 0); in aac_pci_error_detected()
1576 aac->handle_pci_error = 1; in aac_pci_error_detected()
1578 aac_flush_ios(aac); in aac_pci_error_detected()
1620 struct aac_dev *aac = (struct aac_dev *)shost_priv(shost); in aac_pci_resume() local
1624 if (aac_adapter_ioremap(aac, aac->base_size)) { in aac_pci_resume()
1628 aac->comm_interface = AAC_COMM_PRODUCER; in aac_pci_resume()
1629 if (aac_adapter_ioremap(aac, AAC_MIN_FOOTPRINT_SIZE)) { in aac_pci_resume()
1639 aac_acquire_resources(aac); in aac_pci_resume()
1645 aac->adapter_shutdown = 0; in aac_pci_resume()
1646 aac->handle_pci_error = 0; in aac_pci_resume()
1651 scsi_unblock_requests(aac->scsi_host_ptr); in aac_pci_resume()
1652 scsi_scan_host(aac->scsi_host_ptr); in aac_pci_resume()