Lines Matching +full:firmware +full:- +full:initialized
3 * Copyright (c) 2003-2013 QLogic Corporation
21 spin_lock_irqsave(&ha->hardware_lock, flags); in ql4xxx_set_mac_number()
22 value = readw(&ha->reg->ctrl_status); in ql4xxx_set_mac_number()
23 spin_unlock_irqrestore(&ha->hardware_lock, flags); in ql4xxx_set_mac_number()
28 ha->mac_index = 1; in ql4xxx_set_mac_number()
31 ha->mac_index = 3; in ql4xxx_set_mac_number()
35 "ispControlStatus = 0x%x\n", ha->host_no, in ql4xxx_set_mac_number()
39 DEBUG2(printk("scsi%ld: %s: mac_index %d.\n", ha->host_no, __func__, in ql4xxx_set_mac_number()
40 ha->mac_index)); in ql4xxx_set_mac_number()
44 * qla4xxx_free_ddb - deallocate ddb
54 ha->fw_ddb_index_map[ddb_entry->fw_ddb_index] = in qla4xxx_free_ddb()
56 ha->tot_ddbs--; in qla4xxx_free_ddb()
60 * qla4xxx_init_response_q_entries() - Initializes response queue entries.
71 pkt = (struct response *)ha->response_ptr; in qla4xxx_init_response_q_entries()
73 pkt->signature = RESPONSE_PROCESSED; in qla4xxx_init_response_q_entries()
79 * qla4xxx_init_rings - initialize hw queues
92 spin_lock_irqsave(&ha->hardware_lock, flags); in qla4xxx_init_rings()
93 ha->request_out = 0; in qla4xxx_init_rings()
94 ha->request_in = 0; in qla4xxx_init_rings()
95 ha->request_ptr = &ha->request_ring[ha->request_in]; in qla4xxx_init_rings()
96 ha->req_q_count = REQUEST_QUEUE_DEPTH; in qla4xxx_init_rings()
99 ha->response_in = 0; in qla4xxx_init_rings()
100 ha->response_out = 0; in qla4xxx_init_rings()
101 ha->response_ptr = &ha->response_ring[ha->response_out]; in qla4xxx_init_rings()
105 (unsigned long __iomem *)&ha->qla4_82xx_reg->req_q_out); in qla4xxx_init_rings()
107 (unsigned long __iomem *)&ha->qla4_82xx_reg->rsp_q_in); in qla4xxx_init_rings()
109 (unsigned long __iomem *)&ha->qla4_82xx_reg->rsp_q_out); in qla4xxx_init_rings()
112 (unsigned long __iomem *)&ha->qla4_83xx_reg->req_q_in); in qla4xxx_init_rings()
114 (unsigned long __iomem *)&ha->qla4_83xx_reg->rsp_q_in); in qla4xxx_init_rings()
116 (unsigned long __iomem *)&ha->qla4_83xx_reg->rsp_q_out); in qla4xxx_init_rings()
119 * Initialize DMA Shadow registers. The firmware is really in qla4xxx_init_rings()
121 * systems, the shadow registers aren't cleared-- causing in qla4xxx_init_rings()
125 ha->shadow_regs->req_q_out = __constant_cpu_to_le32(0); in qla4xxx_init_rings()
126 ha->shadow_regs->rsp_q_in = __constant_cpu_to_le32(0); in qla4xxx_init_rings()
129 writel(0, &ha->reg->req_q_in); in qla4xxx_init_rings()
130 writel(0, &ha->reg->rsp_q_out); in qla4xxx_init_rings()
131 readl(&ha->reg->rsp_q_out); in qla4xxx_init_rings()
138 ha->active_mrb_array[i] = NULL; in qla4xxx_init_rings()
140 spin_unlock_irqrestore(&ha->hardware_lock, flags); in qla4xxx_init_rings()
146 * qla4xxx_get_sys_info - validate adapter MAC address(es)
156 sys_info = dma_zalloc_coherent(&ha->pdev->dev, sizeof(*sys_info), in qla4xxx_get_sys_info()
160 ha->host_no, __func__)); in qla4xxx_get_sys_info()
169 "failed\n", ha->host_no, __func__)); in qla4xxx_get_sys_info()
175 memcpy(ha->my_mac, &sys_info->physAddr[0].address[0], in qla4xxx_get_sys_info()
176 min(sizeof(ha->my_mac), in qla4xxx_get_sys_info()
177 sizeof(sys_info->physAddr[0].address))); in qla4xxx_get_sys_info()
178 memcpy(ha->serial_number, &sys_info->acSerialNumber, in qla4xxx_get_sys_info()
179 min(sizeof(ha->serial_number), in qla4xxx_get_sys_info()
180 sizeof(sys_info->acSerialNumber))); in qla4xxx_get_sys_info()
185 dma_free_coherent(&ha->pdev->dev, sizeof(*sys_info), sys_info, in qla4xxx_get_sys_info()
193 * qla4xxx_init_local_data - initialize adapter specific local data
200 ha->aen_q_count = MAX_AEN_ENTRIES; in qla4xxx_init_local_data()
214 if (((ha->addl_fw_state & FW_ADDSTATE_DHCPv4_ENABLED) != 0) && in qla4xxx_wait_for_ip_config()
215 ((ha->addl_fw_state & in qla4xxx_wait_for_ip_config()
219 if (((ha->ip_config.ipv6_addl_options & in qla4xxx_wait_for_ip_config()
221 ((ha->ip_config.ipv6_link_local_state == in qla4xxx_wait_for_ip_config()
223 (ha->ip_config.ipv6_addr0_state == in qla4xxx_wait_for_ip_config()
225 (ha->ip_config.ipv6_addr1_state == in qla4xxx_wait_for_ip_config()
230 if ((ha->ip_config.ipv6_link_local_state == in qla4xxx_wait_for_ip_config()
232 (ha->ip_config.ipv6_addr0_state == in qla4xxx_wait_for_ip_config()
234 (ha->ip_config.ipv6_addr1_state == in qla4xxx_wait_for_ip_config()
238 " Don't wait!\n", ha->host_no, in qla4xxx_wait_for_ip_config()
242 if (memcmp(&ha->ip_config.ipv6_default_router_addr, in qla4xxx_wait_for_ip_config()
246 "Don't wait!\n", ha->host_no, in qla4xxx_wait_for_ip_config()
250 if ((ha->ip_config.ipv6_default_router_state == in qla4xxx_wait_for_ip_config()
252 (ha->ip_config.ipv6_link_local_state == in qla4xxx_wait_for_ip_config()
254 (memcmp(&ha->ip_config.ipv6_link_local_addr, in qla4xxx_wait_for_ip_config()
255 &ha->ip_config.ipv6_default_router_addr, 4) == in qla4xxx_wait_for_ip_config()
259 ha->host_no, __func__)); in qla4xxx_wait_for_ip_config()
265 "IP(s) \"", ha->host_no, __func__)); in qla4xxx_wait_for_ip_config()
268 if (ha->ip_config.ipv6_link_local_state == in qla4xxx_wait_for_ip_config()
271 if (ha->ip_config.ipv6_addr0_state == in qla4xxx_wait_for_ip_config()
274 if (ha->ip_config.ipv6_addr1_state == in qla4xxx_wait_for_ip_config()
304 * qla4xxx_alloc_fw_dump - Allocate memory for minidump data.
317 if (ha->fw_dump) { in qla4xxx_alloc_fw_dump()
319 "Firmware dump previously allocated.\n"); in qla4xxx_alloc_fw_dump()
327 ha->host_no); in qla4xxx_alloc_fw_dump()
331 clear_bit(AF_82XX_FW_DUMPED, &ha->flags); in qla4xxx_alloc_fw_dump()
334 md_tmp = dma_alloc_coherent(&ha->pdev->dev, ha->fw_dump_tmplt_size, in qla4xxx_alloc_fw_dump()
339 ha->host_no); in qla4xxx_alloc_fw_dump()
348 ha->host_no); in qla4xxx_alloc_fw_dump()
356 capture_debug_level = md_hdr->capture_debug_level; in qla4xxx_alloc_fw_dump()
361 ha->fw_dump_capture_mask = ql4xmdcapmask; in qla4xxx_alloc_fw_dump()
365 ha->fw_dump_capture_mask = capture_debug_level; in qla4xxx_alloc_fw_dump()
368 md_hdr->driver_capture_mask = ha->fw_dump_capture_mask; in qla4xxx_alloc_fw_dump()
371 md_hdr->num_of_entries)); in qla4xxx_alloc_fw_dump()
373 ha->fw_dump_tmplt_size)); in qla4xxx_alloc_fw_dump()
375 ha->fw_dump_capture_mask)); in qla4xxx_alloc_fw_dump()
380 if (hdr_entry_bit & ha->fw_dump_capture_mask) in qla4xxx_alloc_fw_dump()
381 ha->fw_dump_size += md_hdr->capture_size_array[k]; in qla4xxx_alloc_fw_dump()
384 /* Total firmware dump size including command header */ in qla4xxx_alloc_fw_dump()
385 ha->fw_dump_size += ha->fw_dump_tmplt_size; in qla4xxx_alloc_fw_dump()
386 ha->fw_dump = vmalloc(ha->fw_dump_size); in qla4xxx_alloc_fw_dump()
387 if (!ha->fw_dump) in qla4xxx_alloc_fw_dump()
392 ha->fw_dump_tmplt_size)); in qla4xxx_alloc_fw_dump()
394 "Total Minidump size = 0x%x KB\n", ha->fw_dump_size)); in qla4xxx_alloc_fw_dump()
396 memcpy(ha->fw_dump, md_tmp, ha->fw_dump_tmplt_size); in qla4xxx_alloc_fw_dump()
397 ha->fw_dump_tmplt_hdr = ha->fw_dump; in qla4xxx_alloc_fw_dump()
400 dma_free_coherent(&ha->pdev->dev, ha->fw_dump_tmplt_size, in qla4xxx_alloc_fw_dump()
409 DEBUG2(ql4_printk(KERN_INFO, ha, "Waiting for Firmware Ready..\n")); in qla4xxx_fw_ready()
411 timeout_count--) { in qla4xxx_fw_ready()
412 if (test_and_clear_bit(DPC_GET_DHCP_IP_ADDR, &ha->dpc_flags)) in qla4xxx_fw_ready()
415 /* Get firmware state. */ in qla4xxx_fw_ready()
417 DEBUG2(printk("scsi%ld: %s: unable to get firmware " in qla4xxx_fw_ready()
418 "state\n", ha->host_no, __func__)); in qla4xxx_fw_ready()
422 if (ha->firmware_state & FW_STATE_ERROR) { in qla4xxx_fw_ready()
424 " occurred\n", ha->host_no, __func__)); in qla4xxx_fw_ready()
428 if (ha->firmware_state & FW_STATE_CONFIG_WAIT) { in qla4xxx_fw_ready()
430 * The firmware has not yet been issued an Initialize in qla4xxx_fw_ready()
431 * Firmware command, so issue it now. in qla4xxx_fw_ready()
436 /* Go back and test for ready state - no wait. */ in qla4xxx_fw_ready()
440 if (ha->firmware_state & FW_STATE_WAIT_AUTOCONNECT) { in qla4xxx_fw_ready()
443 ha->host_no, __func__)); in qla4xxx_fw_ready()
446 if (ha->firmware_state & FW_STATE_CONFIGURING_IP) { in qla4xxx_fw_ready()
449 ha->host_no, __func__)); in qla4xxx_fw_ready()
453 * in Progress/CONFIGURING IP" bit to check if firmware in qla4xxx_fw_ready()
455 * This is applicable for both 2.x & 3.x firmware in qla4xxx_fw_ready()
457 if (timeout_count <= (ADAPTER_INIT_TOV - 15)) { in qla4xxx_fw_ready()
458 if (ha->addl_fw_state & FW_ADDSTATE_LINK_UP) { in qla4xxx_fw_ready()
461 ha->host_no, __func__)); in qla4xxx_fw_ready()
462 } else if (ha->firmware_state & in qla4xxx_fw_ready()
467 ha->host_no, __func__)); in qla4xxx_fw_ready()
468 ha->firmware_state = FW_STATE_READY; in qla4xxx_fw_ready()
473 if (ha->firmware_state == FW_STATE_READY) { in qla4xxx_fw_ready()
476 &ha->dpc_flags)) in qla4xxx_fw_ready()
482 "Firmware Ready..\n")); in qla4xxx_fw_ready()
483 /* The firmware is ready to process SCSI in qla4xxx_fw_ready()
487 " - %s\n", ha->host_no, in qla4xxx_fw_ready()
488 __func__, (ha->addl_fw_state & in qla4xxx_fw_ready()
493 " Enabled %s\n", ha->host_no, in qla4xxx_fw_ready()
494 __func__, (ha->addl_fw_state & in qla4xxx_fw_ready()
499 ha->host_no, __func__, in qla4xxx_fw_ready()
500 (ha->addl_fw_state & in qla4xxx_fw_ready()
506 ha->host_no, __func__, in qla4xxx_fw_ready()
507 (ha->addl_fw_state & in qla4xxx_fw_ready()
515 DEBUG2(printk("scsi%ld: %s: waiting on fw, state=%x:%x - " in qla4xxx_fw_ready()
516 "seconds expired= %d\n", ha->host_no, __func__, in qla4xxx_fw_ready()
517 ha->firmware_state, ha->addl_fw_state, in qla4xxx_fw_ready()
520 !(ha->addl_fw_state & FW_ADDSTATE_LINK_UP) && in qla4xxx_fw_ready()
521 (timeout_count < ADAPTER_INIT_TOV - 5)) { in qla4xxx_fw_ready()
530 ha->host_no, __func__)); in qla4xxx_fw_ready()
532 if (ha->firmware_state & FW_STATE_CONFIGURING_IP) { in qla4xxx_fw_ready()
533 DEBUG2(printk("scsi%ld: %s: FW initialized, but is reporting " in qla4xxx_fw_ready()
535 ha->host_no, __func__)); in qla4xxx_fw_ready()
537 } else if (ha->firmware_state & FW_STATE_WAIT_AUTOCONNECT) { in qla4xxx_fw_ready()
538 DEBUG2(printk("scsi%ld: %s: FW initialized, but " in qla4xxx_fw_ready()
539 "auto-discovery still in process\n", in qla4xxx_fw_ready()
540 ha->host_no, __func__)); in qla4xxx_fw_ready()
548 * qla4xxx_init_firmware - initializes the firmware.
557 test_bit(AF_PCI_CHANNEL_IO_PERM_FAILURE, &ha->flags)) in qla4xxx_init_firmware()
560 /* For 82xx, stop firmware before initializing because if BIOS in qla4xxx_init_firmware()
561 * has previously initialized firmware, then driver's initialize in qla4xxx_init_firmware()
562 * firmware will fail. */ in qla4xxx_init_firmware()
566 ql4_printk(KERN_INFO, ha, "Initializing firmware..\n"); in qla4xxx_init_firmware()
568 DEBUG2(printk("scsi%ld: %s: Failed to initialize firmware " in qla4xxx_init_firmware()
569 "control block\n", ha->host_no, __func__)); in qla4xxx_init_firmware()
576 if (is_qla80XX(ha) && !test_bit(AF_INIT_DONE, &ha->flags)) in qla4xxx_init_firmware()
586 int size = sizeof(ha->nvram->isp4022.boardIdStr); in qla4xxx_set_model_info()
594 memcpy(ha->model_name, board_id_string, size); in qla4xxx_set_model_info()
602 DEBUG2(printk("scsi%ld: %s: Get EEProm parameters \n", ha->host_no, in qla4xxx_config_nvram()
614 spin_lock_irqsave(&ha->hardware_lock, flags); in qla4xxx_config_nvram()
617 spin_unlock_irqrestore(&ha->hardware_lock, flags); in qla4xxx_config_nvram()
621 "Please update your EEPROM\n", ha->host_no, in qla4xxx_config_nvram()
636 strcpy(ha->model_name, "QLA4010"); in qla4xxx_config_nvram()
639 ha->host_no, __func__, extHwConfig.Asuint32_t)); in qla4xxx_config_nvram()
641 spin_lock_irqsave(&ha->hardware_lock, flags); in qla4xxx_config_nvram()
644 spin_unlock_irqrestore(&ha->hardware_lock, flags); in qla4xxx_config_nvram()
653 * qla4_8xxx_pci_config() - Setup ISP82xx PCI configuration registers.
658 pci_set_master(ha->pdev); in qla4_8xxx_pci_config()
668 pci_set_master(ha->pdev); in qla4xxx_pci_config()
669 status = pci_set_mwi(ha->pdev); in qla4xxx_pci_config()
675 pci_read_config_word(ha->pdev, PCI_COMMAND, &w); in qla4xxx_pci_config()
678 pci_write_config_word(ha->pdev, PCI_COMMAND, w); in qla4xxx_pci_config()
688 ql4_printk(KERN_INFO, ha, "Starting firmware ...\n"); in qla4xxx_start_firmware_from_flash()
691 * Start firmware from flash ROM in qla4xxx_start_firmware_from_flash()
693 * WORKAROUND: Stuff a non-constant value that the firmware can in qla4xxx_start_firmware_from_flash()
697 * causing some connections to not get re-established. in qla4xxx_start_firmware_from_flash()
699 DEBUG(printk("scsi%d: %s: Start firmware from flash ROM\n", in qla4xxx_start_firmware_from_flash()
700 ha->host_no, __func__)); in qla4xxx_start_firmware_from_flash()
702 spin_lock_irqsave(&ha->hardware_lock, flags); in qla4xxx_start_firmware_from_flash()
703 writel(jiffies, &ha->reg->mailbox[7]); in qla4xxx_start_firmware_from_flash()
706 &ha->reg->u1.isp4022.nvram); in qla4xxx_start_firmware_from_flash()
708 writel(2, &ha->reg->mailbox[6]); in qla4xxx_start_firmware_from_flash()
709 readl(&ha->reg->mailbox[6]); in qla4xxx_start_firmware_from_flash()
711 writel(set_rmask(CSR_BOOT_ENABLE), &ha->reg->ctrl_status); in qla4xxx_start_firmware_from_flash()
712 readl(&ha->reg->ctrl_status); in qla4xxx_start_firmware_from_flash()
713 spin_unlock_irqrestore(&ha->hardware_lock, flags); in qla4xxx_start_firmware_from_flash()
715 /* Wait for firmware to come UP. */ in qla4xxx_start_firmware_from_flash()
717 "boot firmware to complete...\n", in qla4xxx_start_firmware_from_flash()
718 ha->host_no, __func__, FIRMWARE_UP_TOV)); in qla4xxx_start_firmware_from_flash()
723 spin_lock_irqsave(&ha->hardware_lock, flags); in qla4xxx_start_firmware_from_flash()
724 ctrl_status = readw(&ha->reg->ctrl_status); in qla4xxx_start_firmware_from_flash()
725 mbox_status = readw(&ha->reg->mailbox[0]); in qla4xxx_start_firmware_from_flash()
726 spin_unlock_irqrestore(&ha->hardware_lock, flags); in qla4xxx_start_firmware_from_flash()
734 "firmware to complete... ctrl_sts=0x%x, remaining=%ld\n", in qla4xxx_start_firmware_from_flash()
735 ha->host_no, __func__, ctrl_status, max_wait_time)); in qla4xxx_start_firmware_from_flash()
741 DEBUG(printk(KERN_INFO "scsi%ld: %s: Firmware has started\n", in qla4xxx_start_firmware_from_flash()
742 ha->host_no, __func__)); in qla4xxx_start_firmware_from_flash()
744 spin_lock_irqsave(&ha->hardware_lock, flags); in qla4xxx_start_firmware_from_flash()
746 &ha->reg->ctrl_status); in qla4xxx_start_firmware_from_flash()
747 readl(&ha->reg->ctrl_status); in qla4xxx_start_firmware_from_flash()
748 spin_unlock_irqrestore(&ha->hardware_lock, flags); in qla4xxx_start_firmware_from_flash()
752 printk(KERN_INFO "scsi%ld: %s: Boot firmware failed " in qla4xxx_start_firmware_from_flash()
753 "- mbox status 0x%x\n", ha->host_no, __func__, in qla4xxx_start_firmware_from_flash()
772 a->host_no, in ql4xxx_lock_drvr_wait()
775 drvr_wait -= QL4_LOCK_DRVR_SLEEP; in ql4xxx_lock_drvr_wait()
778 "acquired\n", a->host_no, __func__)); in ql4xxx_lock_drvr_wait()
786 * qla4xxx_start_firmware - starts qla4xxx firmware
789 * This routine performs the necessary steps to start the firmware for
806 spin_lock_irqsave(&ha->hardware_lock, flags); in qla4xxx_start_firmware()
808 DEBUG2(printk("scsi%ld: %s: port_ctrl = 0x%08X\n", ha->host_no, in qla4xxx_start_firmware()
810 DEBUG(printk("scsi%ld: %s: port_status = 0x%08X\n", ha->host_no, in qla4xxx_start_firmware()
813 /* Is Hardware already initialized? */ in qla4xxx_start_firmware()
816 "initialized\n", ha->host_no, __func__)); in qla4xxx_start_firmware()
818 /* Receive firmware boot acknowledgement */ in qla4xxx_start_firmware()
819 mbox_status = readw(&ha->reg->mailbox[0]); in qla4xxx_start_firmware()
821 DEBUG2(printk("scsi%ld: %s: H/W Config complete - mbox[0]= " in qla4xxx_start_firmware()
822 "0x%x\n", ha->host_no, __func__, mbox_status)); in qla4xxx_start_firmware()
824 /* Is firmware already booted? */ in qla4xxx_start_firmware()
831 &ha->reg->ctrl_status); in qla4xxx_start_firmware()
832 readl(&ha->reg->ctrl_status); in qla4xxx_start_firmware()
834 &ha->reg->ctrl_status); in qla4xxx_start_firmware()
835 readl(&ha->reg->ctrl_status); in qla4xxx_start_firmware()
836 spin_unlock_irqrestore(&ha->hardware_lock, flags); in qla4xxx_start_firmware()
838 DEBUG2(printk("scsi%ld: %s: Get firmware " in qla4xxx_start_firmware()
839 "state -- state = 0x%x\n", in qla4xxx_start_firmware()
840 ha->host_no, in qla4xxx_start_firmware()
841 __func__, ha->firmware_state)); in qla4xxx_start_firmware()
843 if (ha->firmware_state & in qla4xxx_start_firmware()
845 DEBUG2(printk("scsi%ld: %s: Firmware " in qla4xxx_start_firmware()
846 "in known state -- " in qla4xxx_start_firmware()
849 ha->host_no, __func__, in qla4xxx_start_firmware()
850 ha->firmware_state)); in qla4xxx_start_firmware()
855 DEBUG2(printk("scsi%ld: %s: Firmware in " in qla4xxx_start_firmware()
856 "unknown state -- resetting," in qla4xxx_start_firmware()
858 "0x%x\n", ha->host_no, __func__, in qla4xxx_start_firmware()
859 ha->firmware_state)); in qla4xxx_start_firmware()
861 spin_lock_irqsave(&ha->hardware_lock, flags); in qla4xxx_start_firmware()
865 "started - resetting\n", ha->host_no, __func__)); in qla4xxx_start_firmware()
867 spin_unlock_irqrestore(&ha->hardware_lock, flags); in qla4xxx_start_firmware()
870 ha->host_no, __func__, soft_reset, config_chip)); in qla4xxx_start_firmware()
872 DEBUG(printk("scsi%ld: %s: Issue Soft Reset\n", ha->host_no, in qla4xxx_start_firmware()
878 ha->host_no, __func__)); in qla4xxx_start_firmware()
896 if (test_and_clear_bit(AF_GET_CRASH_RECORD, &ha->flags)) in qla4xxx_start_firmware()
901 DEBUG(printk("scsi%ld: %s: Firmware has NOT started\n", in qla4xxx_start_firmware()
902 ha->host_no, __func__)); in qla4xxx_start_firmware()
907 * qla4xxx_free_ddb_index - Free DDBs reserved by firmware
910 * Since firmware is not running in autoconnect mode the DDB indices should
948 * qla4xxx_initialize_adapter - initiailizes hba
958 ha->eeprom_cmd_data = 0; in qla4xxx_initialize_adapter()
961 ha->isp_ops->pci_config(ha); in qla4xxx_initialize_adapter()
963 ha->isp_ops->disable_intrs(ha); in qla4xxx_initialize_adapter()
965 /* Initialize the Host adapter request/response queues and firmware */ in qla4xxx_initialize_adapter()
966 if (ha->isp_ops->start_firmware(ha) == QLA_ERROR) in qla4xxx_initialize_adapter()
974 * enabled via isp_ops->enable_intrs. in qla4xxx_initialize_adapter()
982 if (ha->isp_ops->get_sys_info(ha) == QLA_ERROR) in qla4xxx_initialize_adapter()
994 set_bit(AF_ONLINE, &ha->flags); in qla4xxx_initialize_adapter()
997 DEBUG2(printk("scsi%ld: initialize adapter: %s\n", ha->host_no, in qla4xxx_initialize_adapter()
1008 old_fw_ddb_device_state = ddb_entry->fw_ddb_device_state; in qla4xxx_ddb_change()
1010 "%s: DDB - old state = 0x%x, new state = 0x%x for " in qla4xxx_ddb_change()
1012 ddb_entry->fw_ddb_device_state, state, fw_ddb_index)); in qla4xxx_ddb_change()
1014 ddb_entry->fw_ddb_device_state = state; in qla4xxx_ddb_change()
1022 ddb_entry->unblock_sess(ddb_entry->sess); in qla4xxx_ddb_change()
1027 iscsi_conn_login_event(ddb_entry->conn, in qla4xxx_ddb_change()
1042 iscsi_session_failure(ddb_entry->sess->dd_data, in qla4xxx_ddb_change()
1047 clear_bit(fw_ddb_index, ha->ddb_idx_map); in qla4xxx_ddb_change()
1056 ddb_entry->unblock_sess(ddb_entry->sess); in qla4xxx_ddb_change()
1061 iscsi_session_failure(ddb_entry->sess->dd_data, in qla4xxx_ddb_change()
1084 * Firmware pads this timeout: (time2wait +1). in qla4xxx_arm_relogin_timer()
1090 atomic_set(&ddb_entry->relogin_timer, 0); in qla4xxx_arm_relogin_timer()
1091 atomic_set(&ddb_entry->retry_relogin_timer, in qla4xxx_arm_relogin_timer()
1092 ddb_entry->default_time2wait + 4); in qla4xxx_arm_relogin_timer()
1102 old_fw_ddb_device_state = ddb_entry->fw_ddb_device_state; in qla4xxx_flash_ddb_change()
1104 "%s: DDB - old state = 0x%x, new state = 0x%x for " in qla4xxx_flash_ddb_change()
1106 ddb_entry->fw_ddb_device_state, state, fw_ddb_index)); in qla4xxx_flash_ddb_change()
1108 ddb_entry->fw_ddb_device_state = state; in qla4xxx_flash_ddb_change()
1115 ddb_entry->unblock_sess(ddb_entry->sess); in qla4xxx_flash_ddb_change()
1120 iscsi_block_session(ddb_entry->sess); in qla4xxx_flash_ddb_change()
1121 if (!test_bit(DF_RELOGIN, &ddb_entry->flags)) in qla4xxx_flash_ddb_change()
1130 iscsi_block_session(ddb_entry->sess); in qla4xxx_flash_ddb_change()
1131 if (!test_bit(DF_RELOGIN, &ddb_entry->flags)) in qla4xxx_flash_ddb_change()
1140 ddb_entry->unblock_sess(ddb_entry->sess); in qla4xxx_flash_ddb_change()
1145 if (!test_bit(DF_RELOGIN, &ddb_entry->flags)) in qla4xxx_flash_ddb_change()
1160 * qla4xxx_process_ddb_changed - process ddb state change
1161 * @ha - Pointer to host adapter structure.
1162 * @fw_ddb_index - Firmware's device database index
1163 * @state - Device state
1186 clear_bit(fw_ddb_index, ha->ddb_idx_map); in qla4xxx_process_ddb_changed()
1191 ddb_entry->ddb_change(ha, fw_ddb_index, ddb_entry, state); in qla4xxx_process_ddb_changed()
1198 * qla4xxx_login_flash_ddb - Login to target (DDB)
1214 sess = cls_session->dd_data; in qla4xxx_login_flash_ddb()
1215 ddb_entry = sess->dd_data; in qla4xxx_login_flash_ddb()
1216 ha = ddb_entry->ha; in qla4xxx_login_flash_ddb()
1218 if (!test_bit(AF_LINK_UP, &ha->flags)) in qla4xxx_login_flash_ddb()
1221 if (ddb_entry->ddb_type != FLASH_DDB) { in qla4xxx_login_flash_ddb()
1227 fw_ddb_entry = dma_pool_alloc(ha->fw_ddb_dma_pool, GFP_KERNEL, in qla4xxx_login_flash_ddb()
1234 if (ddb_entry->fw_ddb_index == INVALID_ENTRY) { in qla4xxx_login_flash_ddb()
1235 ret = qla4xxx_get_ddb_index(ha, &ddb_entry->fw_ddb_index); in qla4xxx_login_flash_ddb()
1239 ha->fw_ddb_index_map[ddb_entry->fw_ddb_index] = ddb_entry; in qla4xxx_login_flash_ddb()
1240 ha->tot_ddbs++; in qla4xxx_login_flash_ddb()
1243 memcpy(fw_ddb_entry, &ddb_entry->fw_ddb_entry, in qla4xxx_login_flash_ddb()
1245 ddb_entry->sess->target_id = ddb_entry->fw_ddb_index; in qla4xxx_login_flash_ddb()
1247 ret = qla4xxx_set_ddb_entry(ha, ddb_entry->fw_ddb_index, in qla4xxx_login_flash_ddb()
1254 ddb_entry->fw_ddb_device_state = DDB_DS_LOGIN_IN_PROCESS; in qla4xxx_login_flash_ddb()
1255 ret = qla4xxx_conn_open(ha, ddb_entry->fw_ddb_index); in qla4xxx_login_flash_ddb()
1258 sess->targetname); in qla4xxx_login_flash_ddb()
1264 dma_pool_free(ha->fw_ddb_dma_pool, fw_ddb_entry, fw_ddb_dma); in qla4xxx_login_flash_ddb()