Lines Matching refs:aac
390 struct aac_dev *aac = (struct aac_dev *)sdev->host->hostdata;
400 if (chn < AAC_MAX_BUSES && tid < AAC_MAX_TARGETS && aac->sa_firmware) {
401 devtype = aac->hba_map[chn][tid].devtype;
404 depth = aac->hba_map[chn][tid].qd_limit;
415 if (aac->jbod && (sdev->type == TYPE_DISK))
420 && (!aac->jbod || sdev->inq_periph_qual)
421 && (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2))) {
432 && (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2))
443 for (cid = 0; cid < aac->maximum_num_containers; ++cid)
444 if (aac->fsa_dev[cid].valid)
450 && (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2))
453 || !aac->fsa_dev[sdev_id(dev)].valid) {
491 timeout = aac->sa_firmware ? AAC_SA_TIMEOUT : AAC_ARC_TIMEOUT;
518 struct aac_dev *aac = (struct aac_dev *)(sdev->host->hostdata);
524 aac->hba_map[chn][tid].devtype == AAC_DEVTYPE_NATIVE_RAW)
549 scsi_change_queue_depth(sdev, aac->hba_map[chn][tid].qd_limit);
559 struct aac_dev *aac = (struct aac_dev *)(sdev->host->hostdata);
563 ((aac->jbod && (sdev->type == TYPE_DISK)) ? "JBOD\n" : ""));
565 get_container_type(aac->fsa_dev[sdev_id(sdev)].type));
580 struct aac_dev *aac = (struct aac_dev *)(sdev->host->hostdata);
586 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;
684 struct aac_dev * aac = (struct aac_dev *)host->hostdata;
689 if (aac_adapter_check_health(aac))
694 if (aac->hba_map[bus][cid].devtype == AAC_DEVTYPE_NATIVE_RAW) {
706 fib = &aac->fibs[count];
718 fib = aac_fib_alloc(aac);
725 tmf->it_nexus = aac->hba_map[bus][cid].rmw_nexus;
765 if (!(aac->raw_io_interface) ||
766 !(aac->raw_io_64) ||
779 struct fib *fib = &aac->fibs[count];
801 struct fib *fib = &aac->fibs[count];
905 struct aac_dev * aac = (struct aac_dev *)host->hostdata;
920 info = &aac->hba_map[bus][cid];
929 fib = aac_fib_alloc(aac);
968 struct aac_dev * aac = (struct aac_dev *)host->hostdata;
983 info = &aac->hba_map[bus][cid];
992 fib = aac_fib_alloc(aac);
1034 struct aac_dev * aac = (struct aac_dev *)host->hostdata;
1043 struct fib *fib = &aac->fibs[count];
1056 info = &aac->hba_map[bus][cid];
1070 status = aac_adapter_check_health(aac);
1072 dev_err(&aac->pdev->dev, "Adapter health - %d\n", status);
1074 count = get_num_of_incomplete_fibs(aac);
1087 struct aac_dev * aac = (struct aac_dev *)host->hostdata;
1097 supported_options2 = aac->supplement_adapter_info.supported_options2;
1110 if (aac_reset_adapter(aac, 2, IOP_HWSOFT_RESET) == 0)
1122 info = &aac->hba_map[bus][cid];
1145 struct aac_dev *aac;
1150 list_for_each_entry(aac, &aac_devices, entry) {
1151 if (aac->id == minor_number) {
1152 file->private_data = aac;
1178 struct aac_dev *aac = (struct aac_dev *)file->private_data;
1183 return aac_do_ioctl(aac, cmd, (void __user *)arg);
1512 static void __aac_shutdown(struct aac_dev * aac)
1516 mutex_lock(&aac->ioctl_mutex);
1517 aac->adapter_shutdown = 1;
1518 mutex_unlock(&aac->ioctl_mutex);
1520 if (aac->aif_thread) {
1523 for (i = 0; i < (aac->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB); i++) {
1524 struct fib *fib = &aac->fibs[i];
1529 kthread_stop(aac->thread);
1530 aac->thread = NULL;
1533 aac_send_shutdown(aac);
1535 aac_adapter_disable_int(aac);
1537 if (aac_is_src(aac)) {
1538 if (aac->max_msix > 1) {
1539 for (i = 0; i < aac->max_msix; i++) {
1540 free_irq(pci_irq_vector(aac->pdev, i),
1541 &(aac->aac_msix[i]));
1544 free_irq(aac->pdev->irq,
1545 &(aac->aac_msix[0]));
1548 free_irq(aac->pdev->irq, aac);
1550 if (aac->msi)
1551 pci_disable_msi(aac->pdev);
1552 else if (aac->max_msix > 1)
1553 pci_disable_msix(aac->pdev);
1557 aac_cfg_major = register_chrdev(0, "aac", &aac_cfg_fops);
1559 pr_err("aacraid: unable to register \"aac\" device.\n");
1563 void aac_reinit_aif(struct aac_dev *aac, unsigned int index)
1572 aac_intr_normal(aac, 0, 2, 0, NULL);
1580 struct aac_dev *aac;
1594 list_for_each_entry(aac, &aac_devices, entry) {
1595 if (aac->id > unique_id)
1597 insert = &aac->entry;
1650 aac = (struct aac_dev *)shost->hostdata;
1651 aac->base_start = pci_resource_start(pdev, 0);
1652 aac->scsi_host_ptr = shost;
1653 aac->pdev = pdev;
1654 aac->name = aac_driver_template.name;
1655 aac->id = shost->unique_id;
1656 aac->cardtype = index;
1657 INIT_LIST_HEAD(&aac->entry);
1660 aac->init_reset = true;
1662 aac->fibs = kcalloc(shost->can_queue + AAC_NUM_MGT_FIB,
1665 if (!aac->fibs) {
1670 spin_lock_init(&aac->fib_lock);
1672 mutex_init(&aac->ioctl_mutex);
1673 mutex_init(&aac->scan_mutex);
1675 INIT_DELAYED_WORK(&aac->safw_rescan_work, aac_safw_rescan_worker);
1676 INIT_DELAYED_WORK(&aac->src_reinit_aif_worker,
1681 aac->base_size = AAC_MIN_FOOTPRINT_SIZE;
1682 if ((*aac_drivers[index].init)(aac)) {
1687 if (aac->sync_mode) {
1692 aac->name,
1693 aac->id);
1698 aac->name,
1699 aac->id);
1705 aac->thread = kthread_run(aac_command_thread, aac, AAC_DRIVERNAME);
1706 if (IS_ERR(aac->thread)) {
1708 error = PTR_ERR(aac->thread);
1709 aac->thread = NULL;
1713 aac->maximum_num_channels = aac_drivers[index].channels;
1714 error = aac_get_adapter_info(aac);
1733 if (aac->adapter_info.options & AAC_OPT_NEW_COMM)
1742 aac->printf_enabled = 1;
1744 aac->printf_enabled = 0;
1751 if (aac->nondasd_support || expose_physicals || aac->jbod)
1752 shost->max_channel = aac->maximum_num_channels;
1756 aac_get_config_status(aac, 0);
1757 aac_get_containers(aac);
1758 list_add(&aac->entry, insert);
1760 shost->max_id = aac->maximum_num_containers;
1761 if (shost->max_id < aac->maximum_num_physicals)
1762 shost->max_id = aac->maximum_num_physicals;
1768 if (!aac->sa_firmware && aac_drivers[index].quirks & AAC_QUIRK_SRC)
1769 aac_intr_normal(aac, 0, 2, 0, NULL);
1783 aac_scan_host(aac);
1790 __aac_shutdown(aac);
1792 aac_fib_map_free(aac);
1793 if (aac->comm_addr)
1794 dma_free_coherent(&aac->pdev->dev, aac->comm_size,
1795 aac->comm_addr, aac->comm_phys);
1796 kfree(aac->queues);
1797 aac_adapter_ioremap(aac, 0);
1798 kfree(aac->fibs);
1799 kfree(aac->fsa_dev);
1808 static void aac_release_resources(struct aac_dev *aac)
1810 aac_adapter_disable_int(aac);
1811 aac_free_irq(aac);
1862 struct aac_dev *aac = (struct aac_dev *)shost->hostdata;
1865 aac_cancel_rescan_worker(aac);
1866 aac_send_shutdown(aac);
1868 aac_release_resources(aac);
1876 struct aac_dev *aac = (struct aac_dev *)shost->hostdata;
1878 if (aac_acquire_resources(aac))
1884 aac->adapter_shutdown = 0;
1890 printk(KERN_INFO "%s%d: resume failed.\n", aac->name, aac->id);
1906 struct aac_dev *aac = (struct aac_dev *)shost->hostdata;
1908 aac_cancel_rescan_worker(aac);
1911 __aac_shutdown(aac);
1912 aac_fib_map_free(aac);
1913 dma_free_coherent(&aac->pdev->dev, aac->comm_size, aac->comm_addr,
1914 aac->comm_phys);
1915 kfree(aac->queues);
1917 aac_adapter_ioremap(aac, 0);
1919 kfree(aac->fibs);
1920 kfree(aac->fsa_dev);
1922 list_del(&aac->entry);
1926 unregister_chrdev(aac_cfg_major, "aac");
1935 struct aac_dev *aac = shost_priv(shost);
1943 aac->handle_pci_error = 1;
1946 aac_cancel_rescan_worker(aac);
1948 aac_release_resources(aac);
1950 aac_adapter_ioremap(aac, 0);
1954 aac->handle_pci_error = 1;
1997 struct aac_dev *aac = (struct aac_dev *)shost_priv(shost);
1999 if (aac_adapter_ioremap(aac, aac->base_size)) {
2003 aac->comm_interface = AAC_COMM_PRODUCER;
2004 if (aac_adapter_ioremap(aac, AAC_MIN_FOOTPRINT_SIZE)) {
2014 aac_acquire_resources(aac);
2020 aac->adapter_shutdown = 0;
2021 aac->handle_pci_error = 0;
2024 aac_scan_host(aac);
2069 unregister_chrdev(aac_cfg_major, "aac");