Lines Matching refs:aac

392 	struct aac_dev *aac = (struct aac_dev *)sdev->host->hostdata;
402 if (chn < AAC_MAX_BUSES && tid < AAC_MAX_TARGETS && aac->sa_firmware) {
403 devtype = aac->hba_map[chn][tid].devtype;
406 depth = aac->hba_map[chn][tid].qd_limit;
417 if (aac->jbod && (sdev->type == TYPE_DISK))
422 && (!aac->jbod || sdev->inq_periph_qual)
423 && (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2))) {
434 && (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2))
445 for (cid = 0; cid < aac->maximum_num_containers; ++cid)
446 if (aac->fsa_dev[cid].valid)
452 && (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2))
455 || !aac->fsa_dev[sdev_id(dev)].valid) {
493 timeout = aac->sa_firmware ? AAC_SA_TIMEOUT : AAC_ARC_TIMEOUT;
520 struct aac_dev *aac = (struct aac_dev *)(sdev->host->hostdata);
526 aac->hba_map[chn][tid].devtype == AAC_DEVTYPE_NATIVE_RAW)
551 scsi_change_queue_depth(sdev, aac->hba_map[chn][tid].qd_limit);
561 struct aac_dev *aac = (struct aac_dev *)(sdev->host->hostdata);
565 ((aac->jbod && (sdev->type == TYPE_DISK)) ? "JBOD\n" : ""));
567 get_container_type(aac->fsa_dev[sdev_id(sdev)].type));
582 struct aac_dev *aac = (struct aac_dev *)(sdev->host->hostdata);
588 memcpy(sn, aac->fsa_dev[sdev_id(sdev)].identifier, sizeof(sn));
660 static int get_num_of_incomplete_fibs(struct aac_dev *aac)
662 struct Scsi_Host *shost = aac->scsi_host_ptr;
668 ctrl_dev = &aac->pdev->dev;
683 struct aac_dev * aac = (struct aac_dev *)host->hostdata;
688 if (aac_adapter_check_health(aac))
693 if (aac->hba_map[bus][cid].devtype == AAC_DEVTYPE_NATIVE_RAW) {
705 fib = &aac->fibs[count];
717 fib = aac_fib_alloc(aac);
724 tmf->it_nexus = aac->hba_map[bus][cid].rmw_nexus;
764 if (!(aac->raw_io_interface) ||
765 !(aac->raw_io_64) ||
778 struct fib *fib = &aac->fibs[count];
800 struct fib *fib = &aac->fibs[count];
904 struct aac_dev * aac = (struct aac_dev *)host->hostdata;
919 info = &aac->hba_map[bus][cid];
928 fib = aac_fib_alloc(aac);
967 struct aac_dev * aac = (struct aac_dev *)host->hostdata;
982 info = &aac->hba_map[bus][cid];
991 fib = aac_fib_alloc(aac);
1033 struct aac_dev * aac = (struct aac_dev *)host->hostdata;
1042 struct fib *fib = &aac->fibs[count];
1055 info = &aac->hba_map[bus][cid];
1069 status = aac_adapter_check_health(aac);
1071 dev_err(&aac->pdev->dev, "Adapter health - %d\n", status);
1073 count = get_num_of_incomplete_fibs(aac);
1086 struct aac_dev * aac = (struct aac_dev *)host->hostdata;
1096 supported_options2 = aac->supplement_adapter_info.supported_options2;
1109 if (aac_reset_adapter(aac, 2, IOP_HWSOFT_RESET) == 0)
1121 info = &aac->hba_map[bus][cid];
1144 struct aac_dev *aac;
1149 list_for_each_entry(aac, &aac_devices, entry) {
1150 if (aac->id == minor_number) {
1151 file->private_data = aac;
1177 struct aac_dev *aac = (struct aac_dev *)file->private_data;
1182 return aac_do_ioctl(aac, cmd, (void __user *)arg);
1508 static void __aac_shutdown(struct aac_dev * aac)
1512 mutex_lock(&aac->ioctl_mutex);
1513 aac->adapter_shutdown = 1;
1514 mutex_unlock(&aac->ioctl_mutex);
1516 if (aac->aif_thread) {
1519 for (i = 0; i < (aac->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB); i++) {
1520 struct fib *fib = &aac->fibs[i];
1525 kthread_stop(aac->thread);
1526 aac->thread = NULL;
1529 aac_send_shutdown(aac);
1531 aac_adapter_disable_int(aac);
1533 if (aac_is_src(aac)) {
1534 if (aac->max_msix > 1) {
1535 for (i = 0; i < aac->max_msix; i++) {
1536 free_irq(pci_irq_vector(aac->pdev, i),
1537 &(aac->aac_msix[i]));
1540 free_irq(aac->pdev->irq,
1541 &(aac->aac_msix[0]));
1544 free_irq(aac->pdev->irq, aac);
1546 if (aac->msi)
1547 pci_disable_msi(aac->pdev);
1548 else if (aac->max_msix > 1)
1549 pci_disable_msix(aac->pdev);
1553 aac_cfg_major = register_chrdev(0, "aac", &aac_cfg_fops);
1555 pr_err("aacraid: unable to register \"aac\" device.\n");
1559 void aac_reinit_aif(struct aac_dev *aac, unsigned int index)
1568 aac_intr_normal(aac, 0, 2, 0, NULL);
1576 struct aac_dev *aac;
1590 list_for_each_entry(aac, &aac_devices, entry) {
1591 if (aac->id > unique_id)
1593 insert = &aac->entry;
1646 aac = (struct aac_dev *)shost->hostdata;
1647 aac->base_start = pci_resource_start(pdev, 0);
1648 aac->scsi_host_ptr = shost;
1649 aac->pdev = pdev;
1650 aac->name = aac_driver_template.name;
1651 aac->id = shost->unique_id;
1652 aac->cardtype = index;
1653 INIT_LIST_HEAD(&aac->entry);
1656 aac->init_reset = true;
1658 aac->fibs = kcalloc(shost->can_queue + AAC_NUM_MGT_FIB,
1661 if (!aac->fibs) {
1666 spin_lock_init(&aac->fib_lock);
1668 mutex_init(&aac->ioctl_mutex);
1669 mutex_init(&aac->scan_mutex);
1671 INIT_DELAYED_WORK(&aac->safw_rescan_work, aac_safw_rescan_worker);
1672 INIT_DELAYED_WORK(&aac->src_reinit_aif_worker,
1677 aac->base_size = AAC_MIN_FOOTPRINT_SIZE;
1678 if ((*aac_drivers[index].init)(aac)) {
1683 if (aac->sync_mode) {
1688 aac->name,
1689 aac->id);
1694 aac->name,
1695 aac->id);
1701 aac->thread = kthread_run(aac_command_thread, aac, AAC_DRIVERNAME);
1702 if (IS_ERR(aac->thread)) {
1704 error = PTR_ERR(aac->thread);
1705 aac->thread = NULL;
1709 aac->maximum_num_channels = aac_drivers[index].channels;
1710 error = aac_get_adapter_info(aac);
1729 if (aac->adapter_info.options & AAC_OPT_NEW_COMM)
1738 aac->printf_enabled = 1;
1740 aac->printf_enabled = 0;
1747 if (aac->nondasd_support || expose_physicals || aac->jbod)
1748 shost->max_channel = aac->maximum_num_channels;
1752 aac_get_config_status(aac, 0);
1753 aac_get_containers(aac);
1754 list_add(&aac->entry, insert);
1756 shost->max_id = aac->maximum_num_containers;
1757 if (shost->max_id < aac->maximum_num_physicals)
1758 shost->max_id = aac->maximum_num_physicals;
1764 if (!aac->sa_firmware && aac_drivers[index].quirks & AAC_QUIRK_SRC)
1765 aac_intr_normal(aac, 0, 2, 0, NULL);
1779 aac_scan_host(aac);
1787 __aac_shutdown(aac);
1789 aac_fib_map_free(aac);
1790 if (aac->comm_addr)
1791 dma_free_coherent(&aac->pdev->dev, aac->comm_size,
1792 aac->comm_addr, aac->comm_phys);
1793 kfree(aac->queues);
1794 aac_adapter_ioremap(aac, 0);
1795 kfree(aac->fibs);
1796 kfree(aac->fsa_dev);
1805 static void aac_release_resources(struct aac_dev *aac)
1807 aac_adapter_disable_int(aac);
1808 aac_free_irq(aac);
1861 struct aac_dev *aac = (struct aac_dev *)shost->hostdata;
1864 aac_cancel_rescan_worker(aac);
1865 aac_send_shutdown(aac);
1867 aac_release_resources(aac);
1880 struct aac_dev *aac = (struct aac_dev *)shost->hostdata;
1892 if (aac_acquire_resources(aac))
1898 aac->adapter_shutdown = 0;
1904 printk(KERN_INFO "%s%d: resume failed.\n", aac->name, aac->id);
1922 struct aac_dev *aac = (struct aac_dev *)shost->hostdata;
1924 aac_cancel_rescan_worker(aac);
1927 __aac_shutdown(aac);
1928 aac_fib_map_free(aac);
1929 dma_free_coherent(&aac->pdev->dev, aac->comm_size, aac->comm_addr,
1930 aac->comm_phys);
1931 kfree(aac->queues);
1933 aac_adapter_ioremap(aac, 0);
1935 kfree(aac->fibs);
1936 kfree(aac->fsa_dev);
1938 list_del(&aac->entry);
1942 unregister_chrdev(aac_cfg_major, "aac");
1951 struct aac_dev *aac = shost_priv(shost);
1959 aac->handle_pci_error = 1;
1962 aac_cancel_rescan_worker(aac);
1964 aac_release_resources(aac);
1967 aac_adapter_ioremap(aac, 0);
1971 aac->handle_pci_error = 1;
2014 struct aac_dev *aac = (struct aac_dev *)shost_priv(shost);
2016 if (aac_adapter_ioremap(aac, aac->base_size)) {
2020 aac->comm_interface = AAC_COMM_PRODUCER;
2021 if (aac_adapter_ioremap(aac, AAC_MIN_FOOTPRINT_SIZE)) {
2031 aac_acquire_resources(aac);
2037 aac->adapter_shutdown = 0;
2038 aac->handle_pci_error = 0;
2041 aac_scan_host(aac);
2087 unregister_chrdev(aac_cfg_major, "aac");