Lines Matching refs:aac

404 	struct aac_dev *aac = (struct aac_dev *)sdev->host->hostdata;  in aac_slave_configure()  local
405 if (aac->jbod && (sdev->type == TYPE_DISK)) in aac_slave_configure()
409 (!aac->jbod || sdev->inq_periph_qual) && in aac_slave_configure()
410 (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2))) { in aac_slave_configure()
417 (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2)) && in aac_slave_configure()
432 for (cid = 0; cid < aac->maximum_num_containers; ++cid) in aac_slave_configure()
433 if (aac->fsa_dev[cid].valid) in aac_slave_configure()
437 (!aac->raid_scsi_mode || in aac_slave_configure()
441 || !aac->fsa_dev[sdev_id(dev)].valid) in aac_slave_configure()
500 struct aac_dev *aac = (struct aac_dev *)(sdev->host->hostdata); in aac_show_raid_level() local
504 ((aac->jbod && (sdev->type == TYPE_DISK)) ? "JBOD\n" : "")); in aac_show_raid_level()
506 get_container_type(aac->fsa_dev[sdev_id(sdev)].type)); in aac_show_raid_level()
534 struct aac_dev * aac = (struct aac_dev *)host->hostdata; in aac_eh_abort() local
543 if (!(aac->raw_io_interface) || in aac_eh_abort()
544 !(aac->raw_io_64) || in aac_eh_abort()
551 struct fib * fib = &aac->fibs[count]; in aac_eh_abort()
565 struct fib * fib = &aac->fibs[count]; in aac_eh_abort()
591 struct aac_dev * aac = (struct aac_dev *)host->hostdata; in aac_eh_reset() local
596 struct fib * fib = &aac->fibs[count]; in aac_eh_reset()
607 if ((count = aac_check_health(aac))) in aac_eh_reset()
614 int active = aac->in_reset; in aac_eh_reset()
643 if (((aac->supplement_adapter_info.SupportedOptions2 & in aac_eh_reset()
645 (aac->supplement_adapter_info.SupportedOptions2 & in aac_eh_reset()
649 !(aac->supplement_adapter_info.SupportedOptions2 & in aac_eh_reset()
651 aac_reset_adapter(aac, 2); /* Bypass wait for command quiesce */ in aac_eh_reset()
669 struct aac_dev *aac; in aac_cfg_open() local
674 list_for_each_entry(aac, &aac_devices, entry) { in aac_cfg_open()
675 if (aac->id == minor_number) { in aac_cfg_open()
676 file->private_data = aac; in aac_cfg_open()
704 struct aac_dev *aac; in aac_cfg_ioctl() local
705 aac = (struct aac_dev *)file->private_data; in aac_cfg_ioctl()
706 if (!capable(CAP_SYS_RAWIO) || aac->adapter_shutdown) in aac_cfg_ioctl()
1073 static void __aac_shutdown(struct aac_dev * aac) in __aac_shutdown() argument
1078 if (aac->aif_thread) { in __aac_shutdown()
1081 for (i = 0; i < (aac->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB); i++) { in __aac_shutdown()
1082 struct fib *fib = &aac->fibs[i]; in __aac_shutdown()
1087 kthread_stop(aac->thread); in __aac_shutdown()
1089 aac_send_shutdown(aac); in __aac_shutdown()
1090 aac_adapter_disable_int(aac); in __aac_shutdown()
1092 if (aac->pdev->device == PMC_DEVICE_S6 || in __aac_shutdown()
1093 aac->pdev->device == PMC_DEVICE_S7 || in __aac_shutdown()
1094 aac->pdev->device == PMC_DEVICE_S8 || in __aac_shutdown()
1095 aac->pdev->device == PMC_DEVICE_S9) { in __aac_shutdown()
1096 if (aac->max_msix > 1) { in __aac_shutdown()
1097 for (i = 0; i < aac->max_msix; i++) { in __aac_shutdown()
1099 aac->msixentry[i].vector, in __aac_shutdown()
1102 aac->name, in __aac_shutdown()
1103 aac->id, in __aac_shutdown()
1108 free_irq(aac->msixentry[i].vector, in __aac_shutdown()
1109 &(aac->aac_msix[i])); in __aac_shutdown()
1112 free_irq(aac->pdev->irq, in __aac_shutdown()
1113 &(aac->aac_msix[0])); in __aac_shutdown()
1116 free_irq(aac->pdev->irq, aac); in __aac_shutdown()
1118 if (aac->msi) in __aac_shutdown()
1119 pci_disable_msi(aac->pdev); in __aac_shutdown()
1120 else if (aac->max_msix > 1) in __aac_shutdown()
1121 pci_disable_msix(aac->pdev); in __aac_shutdown()
1128 struct aac_dev *aac; in aac_probe_one() local
1135 list_for_each_entry(aac, &aac_devices, entry) { in aac_probe_one()
1136 if (aac->id > unique_id) in aac_probe_one()
1138 insert = &aac->entry; in aac_probe_one()
1174 aac = (struct aac_dev *)shost->hostdata; in aac_probe_one()
1175 aac->base_start = pci_resource_start(pdev, 0); in aac_probe_one()
1176 aac->scsi_host_ptr = shost; in aac_probe_one()
1177 aac->pdev = pdev; in aac_probe_one()
1178 aac->name = aac_driver_template.name; in aac_probe_one()
1179 aac->id = shost->unique_id; in aac_probe_one()
1180 aac->cardtype = index; in aac_probe_one()
1181 INIT_LIST_HEAD(&aac->entry); in aac_probe_one()
1183 aac->fibs = kzalloc(sizeof(struct fib) * (shost->can_queue + AAC_NUM_MGT_FIB), GFP_KERNEL); in aac_probe_one()
1184 if (!aac->fibs) in aac_probe_one()
1186 spin_lock_init(&aac->fib_lock); in aac_probe_one()
1191 aac->base_size = AAC_MIN_FOOTPRINT_SIZE; in aac_probe_one()
1192 if ((*aac_drivers[index].init)(aac)) in aac_probe_one()
1195 if (aac->sync_mode) { in aac_probe_one()
1200 aac->name, in aac_probe_one()
1201 aac->id); in aac_probe_one()
1206 aac->name, in aac_probe_one()
1207 aac->id); in aac_probe_one()
1213 aac->thread = kthread_run(aac_command_thread, aac, AAC_DRIVERNAME); in aac_probe_one()
1214 if (IS_ERR(aac->thread)) { in aac_probe_one()
1216 error = PTR_ERR(aac->thread); in aac_probe_one()
1217 aac->thread = NULL; in aac_probe_one()
1230 aac->maximum_num_channels = aac_drivers[index].channels; in aac_probe_one()
1231 error = aac_get_adapter_info(aac); in aac_probe_one()
1251 (aac->adapter_info.options & AAC_OPT_NEW_COMM) ? in aac_probe_one()
1260 aac->printf_enabled = 1; in aac_probe_one()
1262 aac->printf_enabled = 0; in aac_probe_one()
1269 if (aac->nondasd_support || expose_physicals || aac->jbod) in aac_probe_one()
1270 shost->max_channel = aac->maximum_num_channels; in aac_probe_one()
1274 aac_get_config_status(aac, 0); in aac_probe_one()
1275 aac_get_containers(aac); in aac_probe_one()
1276 list_add(&aac->entry, insert); in aac_probe_one()
1278 shost->max_id = aac->maximum_num_containers; in aac_probe_one()
1279 if (shost->max_id < aac->maximum_num_physicals) in aac_probe_one()
1280 shost->max_id = aac->maximum_num_physicals; in aac_probe_one()
1302 __aac_shutdown(aac); in aac_probe_one()
1304 aac_fib_map_free(aac); in aac_probe_one()
1305 if (aac->comm_addr) in aac_probe_one()
1306 pci_free_consistent(aac->pdev, aac->comm_size, aac->comm_addr, in aac_probe_one()
1307 aac->comm_phys); in aac_probe_one()
1308 kfree(aac->queues); in aac_probe_one()
1309 aac_adapter_ioremap(aac, 0); in aac_probe_one()
1310 kfree(aac->fibs); in aac_probe_one()
1311 kfree(aac->fsa_dev); in aac_probe_one()
1321 void aac_release_resources(struct aac_dev *aac) in aac_release_resources() argument
1325 aac_adapter_disable_int(aac); in aac_release_resources()
1326 if (aac->pdev->device == PMC_DEVICE_S6 || in aac_release_resources()
1327 aac->pdev->device == PMC_DEVICE_S7 || in aac_release_resources()
1328 aac->pdev->device == PMC_DEVICE_S8 || in aac_release_resources()
1329 aac->pdev->device == PMC_DEVICE_S9) { in aac_release_resources()
1330 if (aac->max_msix > 1) { in aac_release_resources()
1331 for (i = 0; i < aac->max_msix; i++) in aac_release_resources()
1332 free_irq(aac->msixentry[i].vector, in aac_release_resources()
1333 &(aac->aac_msix[i])); in aac_release_resources()
1335 free_irq(aac->pdev->irq, &(aac->aac_msix[0])); in aac_release_resources()
1338 free_irq(aac->pdev->irq, aac); in aac_release_resources()
1340 if (aac->msi) in aac_release_resources()
1341 pci_disable_msi(aac->pdev); in aac_release_resources()
1342 else if (aac->max_msix > 1) in aac_release_resources()
1343 pci_disable_msix(aac->pdev); in aac_release_resources()
1429 struct aac_dev *aac = (struct aac_dev *)shost->hostdata; in aac_suspend() local
1432 aac_send_shutdown(aac); in aac_suspend()
1434 aac_release_resources(aac); in aac_suspend()
1447 struct aac_dev *aac = (struct aac_dev *)shost->hostdata; in aac_resume() local
1459 if (aac_acquire_resources(aac)) in aac_resume()
1465 aac->adapter_shutdown = 0; in aac_resume()
1471 printk(KERN_INFO "%s%d: resume failed.\n", aac->name, aac->id); in aac_resume()
1488 struct aac_dev *aac = (struct aac_dev *)shost->hostdata; in aac_remove_one() local
1492 __aac_shutdown(aac); in aac_remove_one()
1493 aac_fib_map_free(aac); in aac_remove_one()
1494 pci_free_consistent(aac->pdev, aac->comm_size, aac->comm_addr, in aac_remove_one()
1495 aac->comm_phys); in aac_remove_one()
1496 kfree(aac->queues); in aac_remove_one()
1498 aac_adapter_ioremap(aac, 0); in aac_remove_one()
1500 kfree(aac->fibs); in aac_remove_one()
1501 kfree(aac->fsa_dev); in aac_remove_one()
1503 list_del(&aac->entry); in aac_remove_one()