Lines Matching refs:aac

1467 static void aac_schedule_bus_scan(struct aac_dev *aac)
1469 if (aac->sa_firmware)
1470 aac_schedule_safw_scan_worker(aac);
1472 aac_schedule_src_reinit_aif_worker(aac);
1475 static int _aac_reset_adapter(struct aac_dev *aac, int forced, u8 reset_type)
1479 struct Scsi_Host *host = aac->scsi_host_ptr;
1495 aac_adapter_disable_int(aac);
1496 if (aac->thread && aac->thread->pid != current->pid) {
1498 kthread_stop(aac->thread);
1499 aac->thread = NULL;
1507 bled = forced ? 0 : aac_adapter_check_health(aac);
1508 retval = aac_adapter_restart(aac, bled, reset_type);
1517 num_of_fibs = aac->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB;
1520 struct fib *fib = &aac->fibs[index];
1541 index = aac->cardtype;
1550 aac_free_irq(aac);
1551 aac_fib_map_free(aac);
1552 dma_free_coherent(&aac->pdev->dev, aac->comm_size, aac->comm_addr,
1553 aac->comm_phys);
1554 aac_adapter_ioremap(aac, 0);
1555 aac->comm_addr = NULL;
1556 aac->comm_phys = 0;
1557 kfree(aac->queues);
1558 aac->queues = NULL;
1559 kfree(aac->fsa_dev);
1560 aac->fsa_dev = NULL;
1565 retval = dma_set_mask(&aac->pdev->dev, dmamask);
1567 retval = dma_set_mask(&aac->pdev->dev, dmamask);
1569 retval = dma_set_coherent_mask(&aac->pdev->dev, dmamask);
1573 retval = dma_set_coherent_mask(&aac->pdev->dev, dmamask);
1579 if ((retval = (*(aac_get_driver_ident(index)->init))(aac)))
1583 aac->thread = kthread_run(aac_command_thread, aac, "%s",
1584 aac->name);
1585 if (IS_ERR(aac->thread)) {
1586 retval = PTR_ERR(aac->thread);
1587 aac->thread = NULL;
1591 (void)aac_get_adapter_info(aac);
1600 aac_get_config_status(aac, 1);
1601 aac_get_containers(aac);
1610 aac->in_reset = 0;
1617 dev_info(&aac->pdev->dev, "Scheduling bus rescan\n");
1618 aac_schedule_bus_scan(aac);
1627 int aac_reset_adapter(struct aac_dev *aac, int forced, u8 reset_type)
1631 struct Scsi_Host *host = aac->scsi_host_ptr;
1634 if (spin_trylock_irqsave(&aac->fib_lock, flagv) == 0)
1637 if (aac->in_reset) {
1638 spin_unlock_irqrestore(&aac->fib_lock, flagv);
1641 aac->in_reset = 1;
1642 spin_unlock_irqrestore(&aac->fib_lock, flagv);
1653 aac_send_shutdown(aac);
1657 retval = _aac_reset_adapter(aac, bled, reset_type);
1665 struct fib * fibctx = aac_fib_alloc(aac);
1700 int aac_check_health(struct aac_dev * aac)
1706 /* Extending the scope of fib_lock slightly to protect aac->in_reset */
1707 if (spin_trylock_irqsave(&aac->fib_lock, flagv) == 0)
1710 if (aac->in_reset || !(BlinkLED = aac_adapter_check_health(aac))) {
1711 spin_unlock_irqrestore(&aac->fib_lock, flagv);
1715 aac->in_reset = 1;
1722 * aac.aifcmd.data[2] = AifHighPriority = 3
1723 * aac.aifcmd.data[3] = BlinkLED
1727 entry = aac->fib_list.next;
1735 while (entry != &aac->fib_list) {
1760 aac_close_fib_context(aac, fibctx);
1774 fib->dev = aac;
1806 spin_unlock_irqrestore(&aac->fib_lock, flagv);
1810 aac->name, BlinkLED);
1814 printk(KERN_ERR "%s: Host adapter BLINK LED 0x%x\n", aac->name, BlinkLED);
1817 aac->in_reset = 0;
1821 static inline int is_safw_raid_volume(struct aac_dev *aac, int bus, int target)
1823 return bus == CONTAINER_CHANNEL && target < aac->maximum_num_containers;