Lines Matching +full:0 +full:x209c

106 		ql_dbg(ql_dbg_async, sp->vha, 0x507c,  in qla24xx_abort_iocb_timeout()
111 ql_dbg(ql_dbg_async, sp->vha, 0x507c, in qla24xx_abort_iocb_timeout()
177 ql_dbg(ql_dbg_async, vha, 0x507c, in qla24xx_async_abort_cmd()
207 ql_dbg(ql_dbg_disc, fcport->vha, 0x2071, in qla2x00_async_iocb_timeout()
222 lio->u.logio.data[0] = MBS_COMMAND_ERROR; in qla2x00_async_iocb_timeout()
225 QLA_LOGIO_LOGIN_RETRIED : 0; in qla2x00_async_iocb_timeout()
273 ql_dbg(ql_dbg_disc, vha, 0x20dd, in qla2x00_async_login_sp_done()
279 memset(&ea, 0, sizeof(ea)); in qla2x00_async_login_sp_done()
281 ea.data[0] = lio->u.logio.data[0]; in qla2x00_async_login_sp_done()
283 ea.iop[0] = lio->u.logio.iop[0]; in qla2x00_async_login_sp_done()
318 ql_log(ql_log_warn, vha, 0xffff, in qla2x00_async_login()
330 fcport->logout_completed = 0; in qla2x00_async_login()
350 ql_dbg(ql_dbg_disc, vha, 0x2072, in qla2x00_async_login()
402 ql_dbg(ql_dbg_disc, vha, 0x2070, in qla2x00_async_logout()
428 qlt_logo_completion_handler(fcport, data[0]); in qla2x00_async_prlo_done()
464 ql_dbg(ql_dbg_disc, vha, 0x2070, in qla2x00_async_prlo()
487 ql_dbg(ql_dbg_disc, vha, 0x20d2, in qla24xx_handle_adisc_event()
493 WARN_ONCE(!qla2xxx_is_valid_mbs(ea->data[0]), "mbs: %#x\n", in qla24xx_handle_adisc_event()
494 ea->data[0]); in qla24xx_handle_adisc_event()
496 if (ea->data[0] != MBS_COMMAND_COMPLETE) { in qla24xx_handle_adisc_event()
497 ql_dbg(ql_dbg_disc, vha, 0x2066, in qla24xx_handle_adisc_event()
500 /* deleted = 0 & logout_on_delete = force fw cleanup */ in qla24xx_handle_adisc_event()
501 fcport->deleted = 0; in qla24xx_handle_adisc_event()
512 ql_dbg(ql_dbg_disc, vha, 0x20d3, in qla24xx_handle_adisc_event()
545 ql_dbg(ql_dbg_disc, vha, 0x2066, in qla2x00_async_adisc_sp_done()
551 memset(&ea, 0, sizeof(ea)); in qla2x00_async_adisc_sp_done()
553 ea.data[0] = lio->u.logio.data[0]; in qla2x00_async_adisc_sp_done()
555 ea.iop[0] = lio->u.logio.iop[0]; in qla2x00_async_adisc_sp_done()
594 ql_dbg(ql_dbg_disc, vha, 0x206f, in qla2x00_async_adisc()
638 unsigned long flags = 0; in qla2x00_find_new_loop_id()
655 ql_dbg(ql_dbg_disc, dev->vha, 0x2086, in qla2x00_find_new_loop_id()
659 ql_log(ql_log_warn, dev->vha, 0x2087, in qla2x00_find_new_loop_id()
683 u16 i, n, found = 0, loop_id; in qla24xx_handle_gnl_done_event()
690 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_handle_gnl_done_event()
701 if (fcport->login_retry == 0) { in qla24xx_handle_gnl_done_event()
702 ql_dbg(ql_dbg_disc, vha, 0x20de, in qla24xx_handle_gnl_done_event()
714 ql_dbg(ql_dbg_disc, vha, 0x20e0, in qla24xx_handle_gnl_done_event()
720 n = ea->data[0] / sizeof(struct get_name_list_extended); in qla24xx_handle_gnl_done_event()
722 ql_dbg(ql_dbg_disc, vha, 0x20e1, in qla24xx_handle_gnl_done_event()
728 for (i = 0; i < n; i++) { in qla24xx_handle_gnl_done_event()
733 id.b.al_pa = e->port_id[0]; in qla24xx_handle_gnl_done_event()
734 id.b.rsvd_1 = 0; in qla24xx_handle_gnl_done_event()
745 loop_id = (loop_id & 0x7fff); in qla24xx_handle_gnl_done_event()
747 current_login_state = e->current_login_state & 0xf; in qla24xx_handle_gnl_done_event()
758 ql_dbg(ql_dbg_disc, vha, 0x20e2, in qla24xx_handle_gnl_done_event()
775 ql_dbg(ql_dbg_disc, vha, 0x20e3, in qla24xx_handle_gnl_done_event()
779 fcport->d_id.b24 = 0; in qla24xx_handle_gnl_done_event()
809 vha, 0x20e4, "%s %d %8phC post gpdb\n", in qla24xx_handle_gnl_done_event()
812 if ((e->prli_svc_param_word_3[0] & BIT_4) == 0) in qla24xx_handle_gnl_done_event()
816 data[0] = data[1] = 0; in qla24xx_handle_gnl_done_event()
827 ql_dbg(ql_dbg_disc, vha, 0x20e5, in qla24xx_handle_gnl_done_event()
849 if ((e->prli_svc_param_word_3[0] & BIT_4) == 0) in qla24xx_handle_gnl_done_event()
854 data[0] = data[1] = 0; in qla24xx_handle_gnl_done_event()
890 for (i = 0; i < n; i++) { in qla24xx_handle_gnl_done_event()
892 id.b.domain = e->port_id[0]; in qla24xx_handle_gnl_done_event()
895 id.b.rsvd_1 = 0; in qla24xx_handle_gnl_done_event()
901 e->port_name, 0); in qla24xx_handle_gnl_done_event()
904 vha, 0x20e5, in qla24xx_handle_gnl_done_event()
935 ql_log(ql_log_info, vha, 0x705d, in qla24xx_handle_gnl_done_event()
941 ql_log(ql_log_info, vha, 0x705d, in qla24xx_handle_gnl_done_event()
944 fcport->scan_state = 0; in qla24xx_handle_gnl_done_event()
967 u16 i, n = 0, loop_id; in qla24xx_async_gnl_sp_done()
974 ql_dbg(ql_dbg_disc, vha, 0x20e7, in qla24xx_async_gnl_sp_done()
983 memset(&ea, 0, sizeof(ea)); in qla24xx_async_gnl_sp_done()
991 ea.data[0] = sp->u.iocb_cmd.u.mbx.in_mb[1]; /* amnt xfered */ in qla24xx_async_gnl_sp_done()
994 for (i = 0; i < n; i++) { in qla24xx_async_gnl_sp_done()
998 loop_id = (loop_id & 0x7fff); in qla24xx_async_gnl_sp_done()
1002 ql_dbg(ql_dbg_disc, vha, 0x20e8, in qla24xx_async_gnl_sp_done()
1005 e->port_id[0], e->current_login_state, e->last_login_state, in qla24xx_async_gnl_sp_done()
1006 (loop_id & 0x7fff)); in qla24xx_async_gnl_sp_done()
1028 for (i = 0; i < n; i++) { in qla24xx_async_gnl_sp_done()
1046 id.b.al_pa = e->port_id[0]; in qla24xx_async_gnl_sp_done()
1047 id.b.rsvd_1 = 0; in qla24xx_async_gnl_sp_done()
1050 ql_dbg(ql_dbg_disc, vha, 0x2065, in qla24xx_async_gnl_sp_done()
1055 (u8 *)&wwnn, NULL, 0); in qla24xx_async_gnl_sp_done()
1060 vha->gnl.sent = 0; in qla24xx_async_gnl_sp_done()
1087 ql_dbg(ql_dbg_disc, vha, 0x20d9, in qla24xx_async_gnl()
1118 mb[0] = MBC_PORT_NODE_NAME_LIST; in qla24xx_async_gnl()
1129 ql_dbg(ql_dbg_disc, vha, 0x20da, in qla24xx_async_gnl()
1167 ql_dbg(ql_dbg_disc, vha, 0x20db, in qla24xx_async_gpdb_sp_done()
1176 memset(&ea, 0, sizeof(ea)); in qla24xx_async_gpdb_sp_done()
1208 ql_dbg(ql_dbg_disc, vha, 0x2129, in qla2x00_async_prli_sp_done()
1215 memset(&ea, 0, sizeof(ea)); in qla2x00_async_prli_sp_done()
1217 ea.data[0] = lio->u.logio.data[0]; in qla2x00_async_prli_sp_done()
1219 ea.iop[0] = lio->u.logio.iop[0]; in qla2x00_async_prli_sp_done()
1237 ql_dbg(ql_dbg_disc, vha, 0xffff, "%s %d %8phC exit\n", in qla24xx_async_prli()
1245 ql_dbg(ql_dbg_disc, vha, 0xffff, "%s %d %8phC exit\n", in qla24xx_async_prli()
1255 fcport->logout_completed = 0; in qla24xx_async_prli()
1265 lio->u.logio.flags = 0; in qla24xx_async_prli()
1270 ql_dbg(ql_dbg_disc, vha, 0x211b, in qla24xx_async_prli()
1316 ql_log(ql_log_warn, vha, 0xffff, in qla24xx_async_gpdb()
1340 ql_log(ql_log_warn, vha, 0xd043, in qla24xx_async_gpdb()
1346 mb[0] = MBC_GET_PORT_DATABASE; in qla24xx_async_gpdb()
1360 ql_dbg(ql_dbg_disc, vha, 0x20dc, in qla24xx_async_gpdb()
1388 ea->fcport->deleted = 0; in __qla24xx_handle_gpdb_event()
1404 ql_dbg(ql_dbg_disc, vha, 0x20d6, in __qla24xx_handle_gpdb_event()
1424 ql_dbg(ql_dbg_disc, vha, 0x20d2, in qla24xx_handle_gpdb_event()
1435 ls = pd->current_login_state & 0xf; in qla24xx_handle_gpdb_event()
1440 ql_dbg(ql_dbg_disc, vha, 0x20d3, in qla24xx_handle_gpdb_event()
1468 ql_dbg(ql_dbg_disc, vha, 0x20d5, "%s %d %8phC post del sess\n", in qla24xx_handle_gpdb_event()
1478 u8 login = 0; in qla_chk_n2n_b4_login()
1510 ql_dbg(ql_dbg_disc, vha, 0x20e6, in qla_chk_n2n_b4_login()
1513 fcport->scan_state = 0; in qla_chk_n2n_b4_login()
1518 ql_dbg(ql_dbg_disc, vha, 0x20bf, in qla_chk_n2n_b4_login()
1531 ql_dbg(ql_dbg_disc, vha, 0x20d8, in qla24xx_fcport_handle_login()
1539 return 0; in qla24xx_fcport_handle_login()
1545 return 0; in qla24xx_fcport_handle_login()
1551 return 0; in qla24xx_fcport_handle_login()
1557 return 0; in qla24xx_fcport_handle_login()
1561 return 0; in qla24xx_fcport_handle_login()
1581 ql_log(ql_log_info, vha, 0x705d, in qla24xx_fcport_handle_login()
1590 if (wwn == 0) { in qla24xx_fcport_handle_login()
1591 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_fcport_handle_login()
1596 ql_dbg(ql_dbg_disc, vha, 0x20bd, in qla24xx_fcport_handle_login()
1610 if ((fcport->current_login_state & 0xf) == 0x6) { in qla24xx_fcport_handle_login()
1611 ql_dbg(ql_dbg_disc, vha, 0x2118, in qla24xx_fcport_handle_login()
1616 qla24xx_post_gpdb_work(vha, fcport, 0); in qla24xx_fcport_handle_login()
1618 ql_dbg(ql_dbg_disc, vha, 0x2118, in qla24xx_fcport_handle_login()
1628 ql_dbg(ql_dbg_disc, vha, 0x20d8, in qla24xx_fcport_handle_login()
1651 data[0] = data[1] = 0; in qla24xx_fcport_handle_login()
1666 ql_dbg(ql_dbg_disc, fcport->vha, 0xffff, in qla24xx_fcport_handle_login()
1680 return 0; in qla24xx_fcport_handle_login()
1714 if (vha->scan.scan_flags == 0) { in qla2x00_handle_rscn()
1715 ql_dbg(ql_dbg_disc, vha, 0xffff, "%s: schedule\n", __func__); in qla2x00_handle_rscn()
1730 ql_dbg(ql_dbg_disc, vha, 0x2102, in qla24xx_handle_relogin_event()
1740 ql_dbg(ql_dbg_disc, vha, 0x20e9, "%s %d %8phC post gnl\n", in qla24xx_handle_relogin_event()
1756 ql_dbg(ql_dbg_disc, vha, 0x2118, in qla_handle_els_plogi_done()
1778 memset(&ea, 0, sizeof(ea)); in qla_rscn_replay()
1842 ql_dbg(ql_dbg_taskm, vha, 0x802f, in qla2x00_async_tm_cmd()
1855 ql_log(ql_log_warn, vha, 0x8030, in qla2x00_async_tm_cmd()
1879 unsigned long flags = 0; in qla24xx_async_abort_command()
1908 WARN_ONCE(!qla2xxx_is_valid_mbs(ea->data[0]), "mbs: %#x\n", in qla24xx_handle_prli_done_event()
1909 ea->data[0]); in qla24xx_handle_prli_done_event()
1911 switch (ea->data[0]) { in qla24xx_handle_prli_done_event()
1913 ql_dbg(ql_dbg_disc, vha, 0x2118, in qla24xx_handle_prli_done_event()
1919 ea->fcport->nvme_prli_service_param = ea->iop[0]; in qla24xx_handle_prli_done_event()
1920 if (ea->iop[0] & NVME_PRLI_SP_FIRST_BURST) in qla24xx_handle_prli_done_event()
1922 (ea->iop[1] & 0xffff) * 512; in qla24xx_handle_prli_done_event()
1924 ea->fcport->nvme_first_burst_size = 0; in qla24xx_handle_prli_done_event()
1925 qla24xx_post_gpdb_work(vha, ea->fcport, 0); in qla24xx_handle_prli_done_event()
1928 if ((ea->iop[0] == LSC_SCODE_ELS_REJECT) && in qla24xx_handle_prli_done_event()
1929 (ea->iop[1] == 0x50000)) { /* reson 5=busy expl:0x0 */ in qla24xx_handle_prli_done_event()
1940 ql_dbg(ql_dbg_disc, vha, 0x2118, in qla24xx_handle_prli_done_event()
1952 ea->fcport->keep_nport_handle = 0; in qla24xx_handle_prli_done_event()
1968 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_handle_plogi_done_event()
1973 ea->data[0], ea->data[1], ea->iop[0], ea->iop[1]); in qla24xx_handle_plogi_done_event()
1977 ql_dbg(ql_dbg_disc, vha, 0x20ea, in qla24xx_handle_plogi_done_event()
1991 ql_dbg(ql_dbg_disc, vha, 0x20d3, in qla24xx_handle_plogi_done_event()
1997 ql_dbg(ql_dbg_disc, vha, 0x20d3, in qla24xx_handle_plogi_done_event()
2005 WARN_ONCE(!qla2xxx_is_valid_mbs(ea->data[0]), "mbs: %#x\n", in qla24xx_handle_plogi_done_event()
2006 ea->data[0]); in qla24xx_handle_plogi_done_event()
2008 switch (ea->data[0]) { in qla24xx_handle_plogi_done_event()
2016 ql_dbg(ql_dbg_disc, vha, 0x2117, in qla24xx_handle_plogi_done_event()
2021 ql_dbg(ql_dbg_disc, vha, 0x20ea, in qla24xx_handle_plogi_done_event()
2022 "%s %d %8phC LoopID 0x%x in use with %06x. post gpdb\n", in qla24xx_handle_plogi_done_event()
2030 ea->fcport->send_els_logo = 0; in qla24xx_handle_plogi_done_event()
2034 qla24xx_post_gpdb_work(vha, ea->fcport, 0); in qla24xx_handle_plogi_done_event()
2038 ql_dbg(ql_dbg_disc, vha, 0x20eb, "%s %d %8phC cmd error %x\n", in qla24xx_handle_plogi_done_event()
2050 cid.b.domain = (ea->iop[1] >> 16) & 0xff; in qla24xx_handle_plogi_done_event()
2051 cid.b.area = (ea->iop[1] >> 8) & 0xff; in qla24xx_handle_plogi_done_event()
2052 cid.b.al_pa = ea->iop[1] & 0xff; in qla24xx_handle_plogi_done_event()
2053 cid.b.rsvd_1 = 0; in qla24xx_handle_plogi_done_event()
2055 ql_dbg(ql_dbg_disc, vha, 0x20ec, in qla24xx_handle_plogi_done_event()
2065 lid = ea->iop[1] & 0xffff; in qla24xx_handle_plogi_done_event()
2079 ql_dbg(ql_dbg_disc, vha, 0x20ed, in qla24xx_handle_plogi_done_event()
2080 "%s %d %8phC NPortId %06x inuse with loopid 0x%x. post gidpn\n", in qla24xx_handle_plogi_done_event()
2084 ql_dbg(ql_dbg_disc, vha, 0x20ed, in qla24xx_handle_plogi_done_event()
2085 "%s %d %8phC NPortId %06x inuse with loopid 0x%x. sched delete\n", in qla24xx_handle_plogi_done_event()
2092 ea->fcport->keep_nport_handle = 0; in qla24xx_handle_plogi_done_event()
2113 qla83xx_idc_lock(vha, 0); in qla83xx_nic_core_fw_load()
2123 ql_dbg(ql_dbg_p3p, vha, 0xb077, in qla83xx_nic_core_fw_load()
2145 qla83xx_wr_reg(vha, QLA83XX_IDC_LOCK_RECOVERY, 0); in qla83xx_nic_core_fw_load()
2151 ql_log(ql_log_warn, vha, 0xb07d, in qla83xx_nic_core_fw_load()
2164 memset(config, 0, sizeof(config)); in qla83xx_nic_core_fw_load()
2173 qla83xx_idc_unlock(vha, 0); in qla83xx_nic_core_fw_load()
2186 * 0 = success
2193 struct req_que *req = ha->req_q_map[0]; in qla2x00_initialize_adapter()
2196 memset(&vha->qla_stats, 0, sizeof(vha->qla_stats)); in qla2x00_initialize_adapter()
2197 memset(&vha->fc_host_stat, 0, sizeof(vha->fc_host_stat)); in qla2x00_initialize_adapter()
2200 vha->flags.online = 0; in qla2x00_initialize_adapter()
2201 ha->flags.chip_reset_done = 0; in qla2x00_initialize_adapter()
2202 vha->flags.reset_active = 0; in qla2x00_initialize_adapter()
2203 ha->flags.pci_channel_io_perm_failure = 0; in qla2x00_initialize_adapter()
2204 ha->flags.eeh_busy = 0; in qla2x00_initialize_adapter()
2209 vha->dpc_flags = 0; in qla2x00_initialize_adapter()
2210 vha->flags.management_server_logged_in = 0; in qla2x00_initialize_adapter()
2211 vha->marker_needed = 0; in qla2x00_initialize_adapter()
2212 ha->isp_abort_cnt = 0; in qla2x00_initialize_adapter()
2213 ha->beacon_blink_led = 0; in qla2x00_initialize_adapter()
2215 set_bit(0, ha->req_qid_map); in qla2x00_initialize_adapter()
2216 set_bit(0, ha->rsp_qid_map); in qla2x00_initialize_adapter()
2218 ql_dbg(ql_dbg_init, vha, 0x0040, in qla2x00_initialize_adapter()
2222 ql_log(ql_log_warn, vha, 0x0044, in qla2x00_initialize_adapter()
2233 ql_log(ql_log_info, vha, 0xffff, "Secure Adapter: %s\n", in qla2x00_initialize_adapter()
2240 ql_log(ql_log_fatal, vha, 0x004f, in qla2x00_initialize_adapter()
2257 ql_dbg(ql_dbg_init, vha, 0x0061, in qla2x00_initialize_adapter()
2269 ql_log(ql_log_info, vha, 0xffff, "FC4 priority set to %s\n", in qla2x00_initialize_adapter()
2274 ql_log(ql_log_info, vha, 0x0077, in qla2x00_initialize_adapter()
2279 ql_dbg(ql_dbg_init, vha, 0x0078, in qla2x00_initialize_adapter()
2300 ql_log(ql_log_warn, vha, 0x00d0, in qla2x00_initialize_adapter()
2319 ql_log(ql_log_warn, vha, 0x00d4, in qla2x00_initialize_adapter()
2329 ql_log(ql_log_warn, vha, 0x0124, in qla2x00_initialize_adapter()
2348 * Returns 0 on success.
2379 * Returns 0 on success.
2385 unsigned long flags = 0; in qla2300_pci_config()
2412 for (cnt = 0; cnt < 30000; cnt++) { in qla2300_pci_config()
2413 if ((rd_reg_word(&reg->hccr) & HCCR_RISC_PAUSE) != 0) in qla2300_pci_config()
2420 wrt_reg_word(&reg->ctrl_status, 0x20); in qla2300_pci_config()
2430 wrt_reg_word(&reg->ctrl_status, 0x0); in qla2300_pci_config()
2435 for (cnt = 0; cnt < 30000; cnt++) { in qla2300_pci_config()
2436 if ((rd_reg_word(&reg->hccr) & HCCR_RISC_PAUSE) == 0) in qla2300_pci_config()
2445 pci_write_config_byte(ha->pdev, PCI_LATENCY_TIMER, 0x80); in qla2300_pci_config()
2461 * Returns 0 on success.
2467 unsigned long flags = 0; in qla24xx_pci_config()
2479 pci_write_config_byte(ha->pdev, PCI_LATENCY_TIMER, 0x80); in qla24xx_pci_config()
2505 * Returns 0 on success.
2536 * Returns 0 on success.
2550 ql_log(ql_log_info, vha, 0x0079, "RISC CODE NOT loaded.\n"); in qla2x00_isp_firmware()
2562 ql_dbg(ql_dbg_init, vha, 0x007a, in qla2x00_isp_firmware()
2572 * Returns 0 on success.
2577 unsigned long flags = 0; in qla2x00_reset_chip()
2592 cmd = 0; in qla2x00_reset_chip()
2601 for (cnt = 0; cnt < 30000; cnt++) { in qla2x00_reset_chip()
2603 HCCR_RISC_PAUSE) != 0) in qla2x00_reset_chip()
2613 wrt_reg_word(&reg->ctrl_status, 0x20); in qla2x00_reset_chip()
2617 wrt_reg_word(&reg->fpm_diag_config, 0x100); in qla2x00_reset_chip()
2622 wrt_reg_word(&reg->fpm_diag_config, 0x0); in qla2x00_reset_chip()
2627 wrt_reg_word(&reg->ctrl_status, 0x10); in qla2x00_reset_chip()
2632 WRT_FB_CMD_REG(ha, reg, 0xa000); in qla2x00_reset_chip()
2635 WRT_FB_CMD_REG(ha, reg, 0x00fc); in qla2x00_reset_chip()
2638 for (cnt = 0; cnt < 3000; cnt++) { in qla2x00_reset_chip()
2639 if ((RD_FB_CMD_REG(ha, reg) & 0xff) == 0) in qla2x00_reset_chip()
2646 wrt_reg_word(&reg->ctrl_status, 0); in qla2x00_reset_chip()
2674 CSR_ISP_SOFT_RESET) == 0) in qla2x00_reset_chip()
2684 wrt_reg_word(&reg->semaphore, 0); in qla2x00_reset_chip()
2691 for (cnt = 0; cnt < 30000; cnt++) { in qla2x00_reset_chip()
2692 if (RD_MAILBOX_REG(ha, reg, 0) != MBS_BUSY) in qla2x00_reset_chip()
2719 * Returns 0 on success.
2724 uint16_t mb[4] = {0x1010, 0, 1, 0}; in qla81xx_reset_mpi()
2736 * Returns 0 on success.
2741 unsigned long flags = 0; in qla24xx_reset_risc()
2753 for (cnt = 0; cnt < 30000; cnt++) { in qla24xx_reset_risc()
2754 if ((rd_reg_dword(&reg->ctrl_status) & CSRX_DMA_ACTIVE) == 0) in qla24xx_reset_risc()
2763 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x017e, in qla24xx_reset_risc()
2764 "HCCR: 0x%x, Control Status %x, DMA active status:0x%x\n", in qla24xx_reset_risc()
2777 for (cnt = 10000; rd_reg_word(&reg->mailbox0) != 0 && in qla24xx_reset_risc()
2789 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x017f, in qla24xx_reset_risc()
2790 "HCCR: 0x%x, MailBox0 Status 0x%x\n", in qla24xx_reset_risc()
2796 for (cnt = 0; cnt < 60; cnt++) { in qla24xx_reset_risc()
2799 CSRX_ISP_SOFT_RESET) == 0) in qla24xx_reset_risc()
2807 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x015d, in qla24xx_reset_risc()
2808 "HCCR: 0x%x, Soft Reset status: 0x%x\n", in qla24xx_reset_risc()
2823 abts_cnt = 0; in qla24xx_reset_risc()
2824 vha->flags.online = 0; in qla24xx_reset_risc()
2839 for (cnt = 60; rd_reg_word(&reg->mailbox0) != 0 && in qla24xx_reset_risc()
2850 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x015e, in qla24xx_reset_risc()
2851 "Host Risc 0x%x, mailbox0 0x%x\n", in qla24xx_reset_risc()
2857 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x015f, in qla24xx_reset_risc()
2888 uint32_t wd32 = 0; in qla25xx_manipulate_risc_semaphore()
2890 uint elapsed_msec = 0; in qla25xx_manipulate_risc_semaphore()
2894 if (vha->hw->pdev->subsystem_device != 0x0175 && in qla25xx_manipulate_risc_semaphore()
2895 vha->hw->pdev->subsystem_device != 0x0240) in qla25xx_manipulate_risc_semaphore()
2950 * Returns 0 on success.
2977 * Returns 0 on success.
2985 unsigned long flags = 0; in qla2x00_chip_diag()
2989 struct req_que *req = ha->req_q_map[0]; in qla2x00_chip_diag()
2994 ql_dbg(ql_dbg_init, vha, 0x007b, "Testing device at %p.\n", in qla2x00_chip_diag()
3017 ql_dbg(ql_dbg_init, vha, 0x007c, in qla2x00_chip_diag()
3026 data = qla2x00_debounce_register(MAILBOX_REG(ha, reg, 0)); in qla2x00_chip_diag()
3029 data = RD_MAILBOX_REG(ha, reg, 0); in qla2x00_chip_diag()
3039 ql_dbg(ql_dbg_init, vha, 0x007d, "Checking product ID of chip.\n"); in qla2x00_chip_diag()
3047 ql_log(ql_log_warn, vha, 0x0062, in qla2x00_chip_diag()
3048 "Wrong product ID = 0x%x,0x%x,0x%x.\n", in qla2x00_chip_diag()
3053 ha->product_id[0] = mb[1]; in qla2x00_chip_diag()
3068 ql_dbg(ql_dbg_init, vha, 0x007e, "Found QLA2200A Chip.\n"); in qla2x00_chip_diag()
3077 ql_dbg(ql_dbg_init, vha, 0x007f, "Checking mailboxes.\n"); in qla2x00_chip_diag()
3080 ql_log(ql_log_warn, vha, 0x0080, in qla2x00_chip_diag()
3089 ql_log(ql_log_info, vha, 0x0081, in qla2x00_chip_diag()
3101 * Returns 0 on success.
3108 struct req_que *req = ha->req_q_map[0]; in qla24xx_chip_diag()
3117 ql_log(ql_log_warn, vha, 0x0082, in qla24xx_chip_diag()
3143 ql_dbg(ql_dbg_init, vha, 0x00bd, in qla2x00_init_fce_trace()
3153 ql_log(ql_log_warn, vha, 0x00be, in qla2x00_init_fce_trace()
3162 ql_log(ql_log_warn, vha, 0x00bf, in qla2x00_init_fce_trace()
3168 ql_dbg(ql_dbg_init, vha, 0x00c0, in qla2x00_init_fce_trace()
3188 ql_dbg(ql_dbg_init, vha, 0x00bd, in qla2x00_init_eft_trace()
3198 ql_log(ql_log_warn, vha, 0x00c1, in qla2x00_init_eft_trace()
3206 ql_log(ql_log_warn, vha, 0x00c2, in qla2x00_init_eft_trace()
3212 ql_dbg(ql_dbg_init, vha, 0x00c3, in qla2x00_init_eft_trace()
3232 struct req_que *req = ha->req_q_map[0]; in qla2x00_alloc_fw_dump()
3233 struct rsp_que *rsp = ha->rsp_q_map[0]; in qla2x00_alloc_fw_dump()
3236 dump_size = fixed_size = mem_size = eft_size = fce_size = mq_size = 0; in qla2x00_alloc_fw_dump()
3237 req_q_size = rsp_q_size = 0; in qla2x00_alloc_fw_dump()
3243 mem_size = (ha->fw_memory_size - 0x11000 + 1) * in qla2x00_alloc_fw_dump()
3255 mem_size = (ha->fw_memory_size - 0x100000 + 1) * in qla2x00_alloc_fw_dump()
3285 for (j = 0; j < 2; j++, fwdt++) { in qla2x00_alloc_fw_dump()
3287 ql_dbg(ql_dbg_init, vha, 0x00ba, in qla2x00_alloc_fw_dump()
3291 ql_dbg(ql_dbg_init, vha, 0x00fa, in qla2x00_alloc_fw_dump()
3295 ql_dbg(ql_dbg_init, vha, 0x00fa, in qla2x00_alloc_fw_dump()
3320 ql_dbg(ql_dbg_init, vha, 0x00c5, in qla2x00_alloc_fw_dump()
3327 ql_log(ql_log_warn, vha, 0x00c4, in qla2x00_alloc_fw_dump()
3337 ql_dbg(ql_dbg_init, vha, 0x00c5, in qla2x00_alloc_fw_dump()
3347 ql_dbg(ql_dbg_init, vha, 0x00c5, in qla2x00_alloc_fw_dump()
3358 ha->fw_dump->signature[0] = 'Q'; in qla2x00_alloc_fw_dump()
3387 #define MPS_MASK 0xe0 in qla81xx_mpi_sync()
3395 rval = qla2x00_write_ram_word(vha, 0x7c00, 1); in qla81xx_mpi_sync()
3397 ql_log(ql_log_warn, vha, 0x0105, in qla81xx_mpi_sync()
3402 pci_read_config_word(vha->hw->pdev, 0x54, &dc); in qla81xx_mpi_sync()
3403 rval = qla2x00_read_ram_word(vha, 0x7a15, &dw); in qla81xx_mpi_sync()
3405 ql_log(ql_log_warn, vha, 0x0067, "Unable to read sync.\n"); in qla81xx_mpi_sync()
3415 rval = qla2x00_write_ram_word(vha, 0x7a15, dw); in qla81xx_mpi_sync()
3417 ql_log(ql_log_warn, vha, 0x0114, "Unable to gain sync.\n"); in qla81xx_mpi_sync()
3421 rval = qla2x00_write_ram_word(vha, 0x7c00, 0); in qla81xx_mpi_sync()
3423 ql_log(ql_log_warn, vha, 0x006d, in qla81xx_mpi_sync()
3462 ql_log(ql_log_fatal, NULL, 0x0126, in qla2x00_alloc_outstanding_cmds()
3465 req->num_outstanding_cmds = 0; in qla2x00_alloc_outstanding_cmds()
3494 memset(str, 0, STR_LEN); in qla2xxx_print_sfp_info()
3496 ql_dbg(ql_dbg_init, vha, 0x015a, in qla2xxx_print_sfp_info()
3499 memset(str, 0, STR_LEN); in qla2xxx_print_sfp_info()
3501 ql_dbg(ql_dbg_init, vha, 0x015c, in qla2xxx_print_sfp_info()
3505 memset(str, 0, STR_LEN); in qla2xxx_print_sfp_info()
3508 p = len = 0; in qla2xxx_print_sfp_info()
3516 ql_dbg(ql_dbg_init, vha, 0x0160, in qla2xxx_print_sfp_info()
3520 memset(str, 0, STR_LEN); in qla2xxx_print_sfp_info()
3523 p = len = 0; in qla2xxx_print_sfp_info()
3529 ql_dbg(ql_dbg_init, vha, 0x0196, in qla2xxx_print_sfp_info()
3532 memset(str, 0, STR_LEN); in qla2xxx_print_sfp_info()
3535 p = len = 0; in qla2xxx_print_sfp_info()
3541 ql_dbg(ql_dbg_init, vha, 0x016e, in qla2xxx_print_sfp_info()
3545 ql_dbg(ql_dbg_init, vha, 0x016f, in qla2xxx_print_sfp_info()
3548 ql_dbg(ql_dbg_init, vha, 0x0170, in qla2xxx_print_sfp_info()
3551 ql_dbg(ql_dbg_init, vha, 0x0189, in qla2xxx_print_sfp_info()
3554 ql_dbg(ql_dbg_init, vha, 0x018a, in qla2xxx_print_sfp_info()
3557 ql_dbg(ql_dbg_init, vha, 0x0194, in qla2xxx_print_sfp_info()
3560 ql_dbg(ql_dbg_init, vha, 0x0195, in qla2xxx_print_sfp_info()
3571 * 0 -- Configure firmware to use short-range settings -- normal
3589 u8 ll = 0; in qla24xx_detect_sfp()
3592 used_nvram = 0; in qla24xx_detect_sfp()
3593 ha->flags.lr_detected = 0; in qla24xx_detect_sfp()
3606 rc = qla2x00_read_sfp_dev(vha, NULL, 0); in qla24xx_detect_sfp()
3610 used_nvram = 0; in qla24xx_detect_sfp()
3614 ha->flags.lr_detected = 0; in qla24xx_detect_sfp()
3627 ql_dbg(ql_dbg_async, vha, 0x507b, in qla24xx_detect_sfp()
3648 ha->base_qpair->fwres.iocbs_used = 0; in qla_init_iocb_limit()
3649 for (i = 0; i < ha->max_qpairs; i++) { in qla_init_iocb_limit()
3656 ha->queue_pair_map[i]->fwres.iocbs_used = 0; in qla_init_iocb_limit()
3665 * Returns 0 on success.
3671 uint32_t srisc_address = 0; in qla2x00_setup_chip()
3676 int done_once = 0; in qla2x00_setup_chip()
3690 wrt_reg_word(&reg->hccr, (HCCR_ENABLE_PARITY + 0x0)); in qla2x00_setup_chip()
3701 ql_dbg(ql_dbg_init, vha, 0x00c9, in qla2x00_setup_chip()
3707 ql_dbg(ql_dbg_init, vha, 0x00ca, in qla2x00_setup_chip()
3721 ql_dbg(ql_dbg_init, vha, 0x00ca, in qla2x00_setup_chip()
3749 ha->flags.npiv_supported = 0; in qla2x00_setup_chip()
3781 ql_log(ql_log_fatal, vha, 0x00cd, in qla2x00_setup_chip()
3797 wrt_reg_word(&reg->hccr, HCCR_ENABLE_PARITY + 0x1); in qla2x00_setup_chip()
3800 wrt_reg_word(&reg->hccr, HCCR_ENABLE_PARITY + 0x7); in qla2x00_setup_chip()
3815 ql_log(ql_log_warn, vha, 0x00ce, in qla2x00_setup_chip()
3822 ha->flags.fac_supported = 0; in qla2x00_setup_chip()
3829 ql_log(ql_log_fatal, vha, 0x00cf, in qla2x00_setup_chip()
3843 * Returns 0 on success.
3852 rsp->ring_index = 0; in qla2x00_init_response_q_entries()
3855 for (cnt = 0; cnt < rsp->length; cnt++) { in qla2x00_init_response_q_entries()
3865 * Returns 0 on success.
3873 memset(ha->fw_options, 0, sizeof(ha->fw_options)); in qla2x00_update_fw_options()
3880 ql_dbg(ql_dbg_init + ql_dbg_buffer, vha, 0x0115, in qla2x00_update_fw_options()
3882 ql_dump_buffer(ql_dbg_init + ql_dbg_buffer, vha, 0x0109, in qla2x00_update_fw_options()
3893 tx_sens = ha->fw_seriallink_options[0] & in qla2x00_update_fw_options()
3895 rx_sens = (ha->fw_seriallink_options[0] & in qla2x00_update_fw_options()
3899 if (rx_sens == 0x0) in qla2x00_update_fw_options()
3900 rx_sens = 0x3; in qla2x00_update_fw_options()
3917 if (rx_sens == 0x0) in qla2x00_update_fw_options()
3918 rx_sens = 0x3; in qla2x00_update_fw_options()
3941 ql_dbg(ql_dbg_disc, vha, 0x2100, in qla2x00_update_fw_options()
3942 "(%s): Setting FLOGI retry BIT in fw_options[2]: 0x%x\n", in qla2x00_update_fw_options()
3966 ql_dbg(ql_dbg_disc, vha, 0x2101, in qla24xx_update_fw_options()
3967 "(%s): Setting FLOGI retry BIT in fw_options[2]: 0x%x\n", in qla24xx_update_fw_options()
4007 ql_dbg(ql_dbg_init, vha, 0x00e8, in qla24xx_update_fw_options()
4008 "%s, add FW options 1-3 = 0x%04x 0x%04x 0x%04x mode %x\n", in qla24xx_update_fw_options()
4016 if ((le16_to_cpu(ha->fw_seriallink_options24[0]) & BIT_0) == 0) in qla24xx_update_fw_options()
4024 ql_log(ql_log_warn, vha, 0x0104, in qla24xx_update_fw_options()
4034 struct req_que *req = ha->req_q_map[0]; in qla2x00_config_rings()
4035 struct rsp_que *rsp = ha->rsp_q_map[0]; in qla2x00_config_rings()
4038 ha->init_cb->request_q_outpointer = cpu_to_le16(0); in qla2x00_config_rings()
4039 ha->init_cb->response_q_inpointer = cpu_to_le16(0); in qla2x00_config_rings()
4045 wrt_reg_word(ISP_REQ_Q_IN(ha, reg), 0); in qla2x00_config_rings()
4046 wrt_reg_word(ISP_REQ_Q_OUT(ha, reg), 0); in qla2x00_config_rings()
4047 wrt_reg_word(ISP_RSP_Q_IN(ha, reg), 0); in qla2x00_config_rings()
4048 wrt_reg_word(ISP_RSP_Q_OUT(ha, reg), 0); in qla2x00_config_rings()
4056 device_reg_t *reg = ISP_QUE_REG(ha, 0); in qla24xx_config_rings()
4060 uint16_t rid = 0; in qla24xx_config_rings()
4061 struct req_que *req = ha->req_q_map[0]; in qla24xx_config_rings()
4062 struct rsp_que *rsp = ha->rsp_q_map[0]; in qla24xx_config_rings()
4066 icb->request_q_outpointer = cpu_to_le16(0); in qla24xx_config_rings()
4067 icb->response_q_inpointer = cpu_to_le16(0); in qla24xx_config_rings()
4074 icb->atio_q_inpointer = cpu_to_le16(0); in qla24xx_config_rings()
4087 ql_dbg(ql_dbg_init, vha, 0x0019, in qla24xx_config_rings()
4088 "Registering vector 0x%x for base que.\n", in qla24xx_config_rings()
4104 ql_dbg(ql_dbg_init, vha, 0x00fe, in qla24xx_config_rings()
4111 wrt_reg_dword(&reg->isp25mq.req_q_in, 0); in qla24xx_config_rings()
4112 wrt_reg_dword(&reg->isp25mq.req_q_out, 0); in qla24xx_config_rings()
4113 wrt_reg_dword(&reg->isp25mq.rsp_q_in, 0); in qla24xx_config_rings()
4114 wrt_reg_dword(&reg->isp25mq.rsp_q_out, 0); in qla24xx_config_rings()
4116 wrt_reg_dword(&reg->isp24.req_q_in, 0); in qla24xx_config_rings()
4117 wrt_reg_dword(&reg->isp24.req_q_out, 0); in qla24xx_config_rings()
4118 wrt_reg_dword(&reg->isp24.rsp_q_in, 0); in qla24xx_config_rings()
4119 wrt_reg_dword(&reg->isp24.rsp_q_out, 0); in qla24xx_config_rings()
4126 ql_dbg(ql_dbg_init, vha, 0x00fd, in qla24xx_config_rings()
4143 * Returns 0 on success.
4149 unsigned long flags = 0; in qla2x00_init_rings()
4160 for (que = 0; que < ha->max_req_queues; que++) { in qla2x00_init_rings()
4165 *req->out_ptr = 0; in qla2x00_init_rings()
4173 req->ring_index = 0; in qla2x00_init_rings()
4177 for (que = 0; que < ha->max_rsp_queues; que++) { in qla2x00_init_rings()
4182 *rsp->in_ptr = 0; in qla2x00_init_rings()
4191 ha->tgt.atio_ring_index = 0; in qla2x00_init_rings()
4199 ql_dbg(ql_dbg_init, vha, 0x00d1, "Issue init firmware.\n"); in qla2x00_init_rings()
4221 BIT_7) != 0; in qla2x00_init_rings()
4222 ql_dbg(ql_dbg_init, vha, 0x0191, "DPORT Support: %s.\n", in qla2x00_init_rings()
4227 BIT_6) != 0; in qla2x00_init_rings()
4228 ql_dbg(ql_dbg_init, vha, 0x00bc, "FA-WWPN Support: %s.\n", in qla2x00_init_rings()
4235 ql_log(ql_log_fatal, vha, 0x00d2, in qla2x00_init_rings()
4238 ql_dbg(ql_dbg_init, vha, 0x00d3, in qla2x00_init_rings()
4241 vha->u_ql2xexchoffld = vha->u_ql2xiniexchg = 0; in qla2x00_init_rings()
4251 * Returns 0 on success.
4290 ql_log(ql_log_info, vha, 0x801e, in qla2x00_fw_ready()
4297 if (state[0] < FSTATE_LOSS_OF_SYNC) { in qla2x00_fw_ready()
4300 if (IS_QLA84XX(ha) && state[0] != FSTATE_READY) { in qla2x00_fw_ready()
4301 ql_dbg(ql_dbg_taskm, vha, 0x801f, in qla2x00_fw_ready()
4302 "fw_state=%x 84xx=%x.\n", state[0], in qla2x00_fw_ready()
4306 ql_dbg(ql_dbg_taskm, vha, 0x8028, in qla2x00_fw_ready()
4313 vha, 0x8007, in qla2x00_fw_ready()
4322 ql_dbg(ql_dbg_taskm, vha, 0x8008, in qla2x00_fw_ready()
4327 } else if (state[0] == FSTATE_READY) { in qla2x00_fw_ready()
4328 ql_dbg(ql_dbg_taskm, vha, 0x8037, in qla2x00_fw_ready()
4341 state[0] != FSTATE_READY) { in qla2x00_fw_ready()
4346 ql_log(ql_log_info, vha, 0x8038, in qla2x00_fw_ready()
4367 ql_dbg(ql_dbg_taskm, vha, 0x803a, in qla2x00_fw_ready()
4368 "fw_state=%x (%x, %x, %x, %x %x) curr time=%lx.\n", state[0], in qla2x00_fw_ready()
4372 ql_log(ql_log_warn, vha, 0x803b, in qla2x00_fw_ready()
4387 * 0 = success
4414 (rval == QLA_COMMAND_ERROR && loop_id == 0x7)) { in qla2x00_configure_hba()
4415 ql_dbg(ql_dbg_disc, vha, 0x2008, in qla2x00_configure_hba()
4418 ql_log(ql_log_warn, vha, 0x2009, in qla2x00_configure_hba()
4421 (rval == QLA_COMMAND_ERROR && loop_id == 0x1b)) { in qla2x00_configure_hba()
4422 ql_log(ql_log_warn, vha, 0x1151, in qla2x00_configure_hba()
4433 ql_log(ql_log_info, vha, 0x200a, in qla2x00_configure_hba()
4443 ha->switch_cap = 0; in qla2x00_configure_hba()
4446 case 0: in qla2x00_configure_hba()
4447 ql_dbg(ql_dbg_disc, vha, 0x200b, "HBA in NL topology.\n"); in qla2x00_configure_hba()
4453 ql_dbg(ql_dbg_disc, vha, 0x200c, "HBA in FL topology.\n"); in qla2x00_configure_hba()
4460 ql_dbg(ql_dbg_disc, vha, 0x200d, "HBA in N P2P topology.\n"); in qla2x00_configure_hba()
4467 ql_dbg(ql_dbg_disc, vha, 0x200e, "HBA in F P2P topology.\n"); in qla2x00_configure_hba()
4475 ql_dbg(ql_dbg_disc, vha, 0x200f, in qla2x00_configure_hba()
4487 id.b.rsvd_1 = 0; in qla2x00_configure_hba()
4494 ql_log(ql_log_info, vha, 0x2010, in qla2x00_configure_hba()
4495 "Topology - %s, Host Loop address 0x%x.\n", in qla2x00_configure_hba()
4507 uint64_t zero[2] = { 0 }; in qla2x00_set_model_info()
4514 if (memcmp(model, &zero, len) != 0) { in qla2x00_set_model_info()
4519 if (*en != 0x20 && *en != 0x00) in qla2x00_set_model_info()
4521 *en-- = '\0'; in qla2x00_set_model_info()
4524 index = (ha->pdev->subsystem_device & 0xff); in qla2x00_set_model_info()
4532 index = (ha->pdev->subsystem_device & 0xff); in qla2x00_set_model_info()
4585 * 0 = success.
4591 uint8_t chksum = 0; in qla2x00_nvram_config()
4604 ha->nvram_base = 0; in qla2x00_nvram_config()
4607 ha->nvram_base = 0x80; in qla2x00_nvram_config()
4611 for (cnt = 0, chksum = 0; cnt < ha->nvram_size; cnt++) in qla2x00_nvram_config()
4614 ql_dbg(ql_dbg_init + ql_dbg_buffer, vha, 0x010f, in qla2x00_nvram_config()
4616 ql_dump_buffer(ql_dbg_init + ql_dbg_buffer, vha, 0x0110, in qla2x00_nvram_config()
4623 ql_log(ql_log_warn, vha, 0x0064, in qla2x00_nvram_config()
4626 ql_log(ql_log_warn, vha, 0x0065, in qla2x00_nvram_config()
4633 memset(nv, 0, ha->nvram_size); in qla2x00_nvram_config()
4637 nv->firmware_options[0] = BIT_2 | BIT_1; in qla2x00_nvram_config()
4639 nv->add_firmware_options[0] = BIT_5; in qla2x00_nvram_config()
4644 nv->firmware_options[0] = BIT_2 | BIT_1; in qla2x00_nvram_config()
4646 nv->add_firmware_options[0] = BIT_5; in qla2x00_nvram_config()
4650 nv->firmware_options[0] = BIT_3 | BIT_1; in qla2x00_nvram_config()
4660 nv->port_name[0] = 33; in qla2x00_nvram_config()
4681 memset(icb, 0, ha->init_cb_size); in qla2x00_nvram_config()
4686 nv->firmware_options[0] |= (BIT_6 | BIT_1); in qla2x00_nvram_config()
4687 nv->firmware_options[0] &= ~(BIT_5 | BIT_4); in qla2x00_nvram_config()
4692 nv->firmware_options[0] |= BIT_2; in qla2x00_nvram_config()
4693 nv->firmware_options[0] &= ~BIT_3; in qla2x00_nvram_config()
4694 nv->special_options[0] &= ~BIT_6; in qla2x00_nvram_config()
4708 nv->firmware_options[0] |= BIT_2; in qla2x00_nvram_config()
4713 if ((nv->add_firmware_options[0] & (BIT_6 | BIT_5 | BIT_4)) == in qla2x00_nvram_config()
4716 nv->add_firmware_options[0] &= ~(BIT_6 | BIT_5 | BIT_4); in qla2x00_nvram_config()
4717 nv->add_firmware_options[0] |= BIT_5; in qla2x00_nvram_config()
4746 if ((icb->firmware_options[1] & BIT_6) == 0) { in qla2x00_nvram_config()
4752 icb->node_name[0] &= 0xF0; in qla2x00_nvram_config()
4763 if (nv->host_p[0] & BIT_7) in qla2x00_nvram_config()
4765 ha->flags.disable_risc_code_load = ((nv->host_p[0] & BIT_4) ? 1 : 0); in qla2x00_nvram_config()
4768 ha->flags.disable_risc_code_load = 0; in qla2x00_nvram_config()
4769 ha->flags.enable_lip_reset = ((nv->host_p[1] & BIT_1) ? 1 : 0); in qla2x00_nvram_config()
4770 ha->flags.enable_lip_full_login = ((nv->host_p[1] & BIT_2) ? 1 : 0); in qla2x00_nvram_config()
4771 ha->flags.enable_target_reset = ((nv->host_p[1] & BIT_3) ? 1 : 0); in qla2x00_nvram_config()
4772 ha->flags.enable_led_scheme = (nv->special_options[1] & BIT_4) ? 1 : 0; in qla2x00_nvram_config()
4773 ha->flags.disable_serdes = 0; in qla2x00_nvram_config()
4776 (icb->add_firmware_options[0] & (BIT_6 | BIT_5 | BIT_4)) >> 4; in qla2x00_nvram_config()
4788 icb->execution_throttle = cpu_to_le16(0xFFFF); in qla2x00_nvram_config()
4804 /* Link Down Timeout = 0: in qla2x00_nvram_config()
4809 * Link Down Timeout != 0: in qla2x00_nvram_config()
4814 if (nv->link_down_timeout == 0) { in qla2x00_nvram_config()
4839 icb->lun_enables = cpu_to_le16(0); in qla2x00_nvram_config()
4840 icb->command_resource_count = 0; in qla2x00_nvram_config()
4841 icb->immediate_notify_resource_count = 0; in qla2x00_nvram_config()
4842 icb->timeout = cpu_to_le16(0); in qla2x00_nvram_config()
4846 icb->firmware_options[0] &= ~BIT_3; in qla2x00_nvram_config()
4847 icb->add_firmware_options[0] &= in qla2x00_nvram_config()
4849 icb->add_firmware_options[0] |= BIT_2; in qla2x00_nvram_config()
4857 ha->zio_mode = icb->add_firmware_options[0] & in qla2x00_nvram_config()
4862 icb->add_firmware_options[0] &= in qla2x00_nvram_config()
4864 vha->flags.process_response_queue = 0; in qla2x00_nvram_config()
4868 ql_log(ql_log_info, vha, 0x0068, in qla2x00_nvram_config()
4872 icb->add_firmware_options[0] |= (uint8_t)ha->zio_mode; in qla2x00_nvram_config()
4879 ql_log(ql_log_warn, vha, 0x0069, in qla2x00_nvram_config()
4897 ql_dbg(ql_dbg_disc, fcport->vha, 0x210b, in qla2x00_rport_del()
4915 ql_dbg(ql_dbg_disc, fcport->vha, 0x207d, in qla2x00_set_fcport_state()
4943 ql_log(ql_log_warn, vha, 0xd049, in qla2x00_alloc_fcport()
4965 ql_log(ql_log_warn, vha, 0xd049, in qla2x00_alloc_fcport()
5002 memset(ha->init_cb, 0, ha->init_cb_size); in qla_get_login_template()
5007 ql_dbg(ql_dbg_init, vha, 0x00d1, in qla_get_login_template()
5026 * 0 = success.
5043 ql_dbg(ql_dbg_disc, vha, 0x2013, in qla2x00_configure_loop()
5050 ql_dbg(ql_dbg_disc, vha, 0x2014, in qla2x00_configure_loop()
5051 "Configure loop -- dpc flags = 0x%lx.\n", flags); in qla2x00_configure_loop()
5083 ql_dbg(ql_dbg_disc, vha, 0x2015, in qla2x00_configure_loop()
5092 ql_dbg(ql_dbg_disc, vha, 0x2099, in qla2x00_configure_loop()
5106 ql_dbg(ql_dbg_disc, vha, 0x2069, in qla2x00_configure_loop()
5117 qlt_24xx_process_atio_queue(vha, 0); in qla2x00_configure_loop()
5125 ql_dbg(ql_dbg_disc, vha, 0x206a, in qla2x00_configure_loop()
5128 ql_dbg(ql_dbg_disc, vha, 0x206b, in qla2x00_configure_loop()
5178 * 0 = success.
5199 found_devs = 0; in qla2x00_configure_local_loop()
5204 memset(ha->gid_list, 0, qla2x00_gid_list_size(ha)); in qla2x00_configure_local_loop()
5210 ql_dbg(ql_dbg_disc, vha, 0x2011, in qla2x00_configure_local_loop()
5212 ql_dump_buffer(ql_dbg_disc + ql_dbg_buffer, vha, 0x2075, in qla2x00_configure_local_loop()
5215 if (entries == 0) { in qla2x00_configure_local_loop()
5225 vha->scan.scan_retry = 0; in qla2x00_configure_local_loop()
5235 ql_log(ql_log_warn, vha, 0x2012, in qla2x00_configure_local_loop()
5244 for (index = 0; index < entries; index++) { in qla2x00_configure_local_loop()
5255 if ((domain & 0xf0) == 0xf0) in qla2x00_configure_local_loop()
5269 memset(new_fcport->port_name, 0, WWN_SIZE); in qla2x00_configure_local_loop()
5278 rval2 = qla2x00_get_port_database(vha, new_fcport, 0); in qla2x00_configure_local_loop()
5280 ql_dbg(ql_dbg_disc, vha, 0x2097, in qla2x00_configure_local_loop()
5282 "-- get_port_database=%x, loop_id=0x%04x.\n", in qla2x00_configure_local_loop()
5286 ql_dbg(ql_dbg_disc, vha, 0x2105, in qla2x00_configure_local_loop()
5295 found = 0; in qla2x00_configure_local_loop()
5325 ql_log(ql_log_warn, vha, 0xd031, in qla2x00_configure_local_loop()
5353 (fcport->flags & FCF_FCP2_DEVICE) == 0 && in qla2x00_configure_local_loop()
5356 ql_dbg(ql_dbg_disc, vha, 0x20f0, in qla2x00_configure_local_loop()
5376 ql_dbg(ql_dbg_disc, vha, 0x2098, in qla2x00_configure_local_loop()
5402 ql_dbg(ql_dbg_disc, vha, 0x2004, in qla2x00_iidma_fcport()
5404 fcport->port_name, rval, fcport->fp_speed, mb[0], mb[1]); in qla2x00_iidma_fcport()
5406 ql_dbg(ql_dbg_disc, vha, 0x2005, in qla2x00_iidma_fcport()
5447 fcport->rport = rport = fc_remote_port_add(vha->host, 0, &rport_ids); in qla2x00_reg_remote_port()
5449 ql_log(ql_log_warn, vha, 0x2006, in qla2x00_reg_remote_port()
5472 ql_dbg(ql_dbg_disc, vha, 0x20ee, in qla2x00_reg_remote_port()
5490 * 0 - Success
5502 ql_dbg(ql_dbg_disc, vha, 0x20ef, "%s %8phC\n", in qla2x00_update_fcport()
5508 fcport->deleted = 0; in qla2x00_update_fcport()
5510 fcport->logout_on_delete = 0; in qla2x00_update_fcport()
5513 fcport->n2n_chip_reset = fcport->n2n_link_reset_cnt = 0; in qla2x00_update_fcport()
5560 fcport->id_changed = 0; in qla2x00_update_fcport()
5561 ql_dbg(ql_dbg_disc, vha, 0x20d7, in qla2x00_update_fcport()
5567 ql_dbg(ql_dbg_disc, vha, 0x20d7, in qla2x00_update_fcport()
5596 data[0] = data[1] = 0; in qla_register_fcport_fn()
5614 * 0 = success.
5635 ql_dbg(ql_dbg_disc, vha, 0x20a0, in qla2x00_configure_fabric()
5643 rval = qla2x00_get_port_name(vha, loop_id, vha->fabric_port_name, 0); in qla2x00_configure_fabric()
5645 ql_dbg(ql_dbg_disc, vha, 0x20ff, in qla2x00_configure_fabric()
5649 rval = qla2x00_send_change_request(vha, 0x3, 0); in qla2x00_configure_fabric()
5651 ql_log(ql_log_warn, vha, 0x121, in qla2x00_configure_fabric()
5652 "Failed to enable receiving of RSCN requests: 0x%x.\n", in qla2x00_configure_fabric()
5661 rval = ha->isp_ops->fabric_login(vha, loop_id, 0xff, 0xff, in qla2x00_configure_fabric()
5662 0xfc, mb, BIT_1|BIT_0); in qla2x00_configure_fabric()
5663 if (rval != QLA_SUCCESS || mb[0] != MBS_COMMAND_COMPLETE) { in qla2x00_configure_fabric()
5664 ql_dbg(ql_dbg_disc, vha, 0x20a1, in qla2x00_configure_fabric()
5665 "Failed SNS login: loop_id=%x mb[0]=%x mb[1]=%x mb[2]=%x mb[6]=%x mb[7]=%x (%x).\n", in qla2x00_configure_fabric()
5666 loop_id, mb[0], mb[1], mb[2], mb[6], mb[7], rval); in qla2x00_configure_fabric()
5679 ql_dbg(ql_dbg_disc, vha, 0x20a2, in qla2x00_configure_fabric()
5687 ql_dbg(ql_dbg_disc, vha, 0x209a, in qla2x00_configure_fabric()
5695 ql_dbg(ql_dbg_disc, vha, 0x2049, in qla2x00_configure_fabric()
5701 ql_dbg(ql_dbg_disc, vha, 0x2104, in qla2x00_configure_fabric()
5708 ql_dbg(ql_dbg_disc, vha, 0x209b, in qla2x00_configure_fabric()
5737 } while (0); in qla2x00_configure_fabric()
5743 ql_dbg(ql_dbg_disc, vha, 0x2068, in qla2x00_configure_fabric()
5757 * 0 = success.
5787 ql_dbg(ql_dbg_disc, vha, 0x209c, in qla2x00_find_all_fabric_devs()
5790 memset(swl, 0, ha->max_fibre_devices * sizeof(sw_info_t)); in qla2x00_find_all_fabric_devs()
5816 swl_idx = 0; in qla2x00_find_all_fabric_devs()
5821 ql_log(ql_log_warn, vha, 0x209d, in qla2x00_find_all_fabric_devs()
5828 last_dev = 0; in qla2x00_find_all_fabric_devs()
5839 atomic_set(&vha->loop_down_timer, 0); in qla2x00_find_all_fabric_devs()
5859 new_fcport->nvme_flag = 0; in qla2x00_find_all_fabric_devs()
5862 ql_log(ql_log_info, vha, 0x2131, in qla2x00_find_all_fabric_devs()
5867 if (swl[swl_idx].d_id.b.rsvd_1 != 0) { in qla2x00_find_all_fabric_devs()
5876 ql_log(ql_log_warn, vha, 0x209e, in qla2x00_find_all_fabric_devs()
5887 first_dev = 0; in qla2x00_find_all_fabric_devs()
5889 ql_dbg(ql_dbg_disc, vha, 0x209f, in qla2x00_find_all_fabric_devs()
5906 if (((new_fcport->d_id.b24 & 0xffff00) == in qla2x00_find_all_fabric_devs()
5907 (vha->d_id.b24 & 0xffff00)) && ha->current_topology == in qla2x00_find_all_fabric_devs()
5912 if ((new_fcport->d_id.b.domain & 0xf0) == 0xf0) in qla2x00_find_all_fabric_devs()
5918 new_fcport->fc4_type != 0)) in qla2x00_find_all_fabric_devs()
5924 found = 0; in qla2x00_find_all_fabric_devs()
5952 if ((fcport->flags & FCF_FABRIC_DEVICE) == 0) { in qla2x00_find_all_fabric_devs()
5966 ql_dbg(ql_dbg_tgt_mgt, vha, 0xf080, in qla2x00_find_all_fabric_devs()
5968 " old %x:%x:%x (loop_id 0x%04x)-> new %x:%x:%x\n", in qla2x00_find_all_fabric_devs()
5990 fcport->login_succ = 0; in qla2x00_find_all_fabric_devs()
6009 ql_log(ql_log_warn, vha, 0xd032, in qla2x00_find_all_fabric_devs()
6026 if ((fcport->flags & FCF_FABRIC_DEVICE) == 0) in qla2x00_find_all_fabric_devs()
6036 (fcport->flags & FCF_FCP2_DEVICE) == 0 && in qla2x00_find_all_fabric_devs()
6039 ql_dbg(ql_dbg_disc, vha, 0x20f0, in qla2x00_find_all_fabric_devs()
6050 (fcport->flags & FCF_LOGIN_NEEDED) != 0) in qla2x00_find_all_fabric_devs()
6065 if (vha->vp_idx == 0) { in qla2x00_reserve_mgmt_server_loop_id()
6072 for (; lid > 0; lid--) { in qla2x00_reserve_mgmt_server_loop_id()
6093 * 0 - Login successfully
6108 retry = 0; in qla2x00_fabric_login()
6109 tmp_loopid = 0; in qla2x00_fabric_login()
6112 ql_dbg(ql_dbg_disc, vha, 0x2000, in qla2x00_fabric_login()
6113 "Trying Fabric Login w/loop id 0x%04x for port " in qla2x00_fabric_login()
6125 if (mb[0] == MBS_PORT_ID_USED) { in qla2x00_fabric_login()
6137 ql_dbg(ql_dbg_disc, vha, 0x2001, in qla2x00_fabric_login()
6139 "id=0x%04x, port id= %02x%02x%02x.\n", in qla2x00_fabric_login()
6143 } else if (mb[0] == MBS_COMMAND_COMPLETE) { in qla2x00_fabric_login()
6180 } else if (mb[0] == MBS_LOOP_ID_USED) { in qla2x00_fabric_login()
6190 } else if (mb[0] == MBS_COMMAND_ERROR) { in qla2x00_fabric_login()
6208 ql_dbg(ql_dbg_disc, vha, 0x2002, in qla2x00_fabric_login()
6210 "jiffies=%lx.\n", mb[0], fcport->d_id.b.domain, in qla2x00_fabric_login()
6219 fcport->login_retry = 0; in qla2x00_fabric_login()
6238 * 0 - Login successfully
6248 memset(mb, 0, sizeof(mb)); in qla2x00_local_device_login()
6252 if (mb[0] == MBS_COMMAND_ERROR) in qla2x00_local_device_login()
6254 else if (mb[0] == MBS_COMMAND_PARAMETER_ERROR) in qla2x00_local_device_login()
6270 * 0 = success
6290 0, 0, MK_SYNC_ALL); in qla2x00_loop_resync()
6291 vha->marker_needed = 0; in qla2x00_loop_resync()
6314 ql_dbg(ql_dbg_disc, vha, 0x206c, in qla2x00_loop_resync()
6330 int32_t rval = 0; in qla2x00_perform_loop_resync()
6334 atomic_set(&ha->loop_down_timer, 0); in qla2x00_perform_loop_resync()
6385 uint32_t class_type_mask = 0x3; in qla83xx_reset_ownership()
6386 uint16_t fcoe_other_function = 0xffff, i; in qla83xx_reset_ownership()
6400 for (i = 0; i < 8; i++) { in qla83xx_reset_ownership()
6408 if (fcoe_other_function == 0xffff) { in qla83xx_reset_ownership()
6409 for (i = 0; i < 8; i++) { in qla83xx_reset_ownership()
6421 * However consider only valid physical fcoe function numbers (0-15). in qla83xx_reset_ownership()
6424 ((fcoe_other_function == 0xffff) ? in qla83xx_reset_ownership()
6425 0 : (1 << (fcoe_other_function)))); in qla83xx_reset_ownership()
6432 ql_dbg(ql_dbg_p3p, vha, 0xb07f, in qla83xx_reset_ownership()
6498 uint32_t idc_audit_reg = 0, duration_secs = 0; in qla83xx_idc_audit()
6517 ql_log(ql_log_warn, vha, 0xb078, in qla83xx_idc_audit()
6532 ql_log(ql_log_info, vha, 0xb080, in qla83xx_initiating_reset()
6533 "NIC Core reset has been disabled. idc-control=0x%x\n", in qla83xx_initiating_reset()
6543 ql_log(ql_log_info, vha, 0xb056, "HW State: NEED RESET.\n"); in qla83xx_initiating_reset()
6548 ql_log(ql_log_info, vha, 0xb057, "HW State: %s.\n", state); in qla83xx_initiating_reset()
6553 qla83xx_idc_unlock(vha, 0); in qla83xx_initiating_reset()
6555 qla83xx_idc_lock(vha, 0); in qla83xx_initiating_reset()
6581 uint32_t drv_presence = 0; in qla83xx_check_driver_presence()
6597 ql_dbg(ql_dbg_p3p, vha, 0xb058, in qla83xx_nic_core_reset()
6601 ql_log(ql_log_warn, vha, 0xb059, in qla83xx_nic_core_reset()
6606 qla83xx_idc_lock(vha, 0); in qla83xx_nic_core_reset()
6609 ql_log(ql_log_warn, vha, 0xb05a, in qla83xx_nic_core_reset()
6610 "Function=0x%x has been removed from IDC participation.\n", in qla83xx_nic_core_reset()
6628 ha->flags.nic_core_hung = 0; in qla83xx_nic_core_reset()
6633 qla83xx_idc_unlock(vha, 0); in qla83xx_nic_core_reset()
6635 ql_dbg(ql_dbg_p3p, vha, 0xb05b, "Exiting %s.\n", __func__); in qla83xx_nic_core_reset()
6648 ql_log(ql_log_info, vha, 0x506d, in qla2xxx_mctp_dump()
6658 ql_log(ql_log_warn, vha, 0x506e, in qla2xxx_mctp_dump()
6664 #define MCTP_DUMP_STR_ADDR 0x00000000 in qla2xxx_mctp_dump()
6668 ql_log(ql_log_warn, vha, 0x506f, in qla2xxx_mctp_dump()
6671 ql_log(ql_log_info, vha, 0x5070, in qla2xxx_mctp_dump()
6682 ql_log(ql_log_warn, vha, 0x5071, in qla2xxx_mctp_dump()
6685 ql_dbg(ql_dbg_p3p, vha, 0xb084, in qla2xxx_mctp_dump()
6687 ha->flags.nic_core_reset_hdlr_active = 0; in qla2xxx_mctp_dump()
6708 ql_dbg(ql_dbg_dpc, vha, 0x401d, in qla2x00_quiesce_io()
6723 WARN_ON_ONCE(qla2x00_eh_wait_for_pending_commands(vha, 0, 0, WAIT_HOST) in qla2x00_quiesce_io()
6740 vha->flags.online = 0; in qla2x00_abort_isp_cleanup()
6741 ha->flags.chip_reset_done = 0; in qla2x00_abort_isp_cleanup()
6745 ql_log(ql_log_info, vha, 0x00af, in qla2x00_abort_isp_cleanup()
6758 ha->flags.rida_fmt2 = 0; in qla2x00_abort_isp_cleanup()
6759 ha->flags.n2n_ae = 0; in qla2x00_abort_isp_cleanup()
6760 ha->flags.lip_ae = 0; in qla2x00_abort_isp_cleanup()
6761 ha->current_topology = 0; in qla2x00_abort_isp_cleanup()
6763 ha->flags.fw_init_done = 0; in qla2x00_abort_isp_cleanup()
6766 for (i = 0; i < ha->max_qpairs; i++) { in qla2x00_abort_isp_cleanup()
6778 i = 0; in qla2x00_abort_isp_cleanup()
6787 ha->flags.purge_mbox = 0; in qla2x00_abort_isp_cleanup()
6814 fcport->scan_state = 0; in qla2x00_abort_isp_cleanup()
6833 ql_log(ql_log_info, vha, 0x00b4, in qla2x00_abort_isp_cleanup()
6839 vha->flags.online = 0; in qla2x00_abort_isp_cleanup()
6857 * 0 = success
6863 uint8_t status = 0; in qla2x00_abort_isp()
6866 struct req_que *req = ha->req_q_map[0]; in qla2x00_abort_isp()
6875 status = 0; in qla2x00_abort_isp()
6881 ql_dbg(ql_dbg_p3p, vha, 0xb05c, in qla2x00_abort_isp()
6884 ql_dbg(ql_dbg_p3p, vha, 0xb073, in qla2x00_abort_isp()
6891 status = 0; in qla2x00_abort_isp()
6898 return 0; in qla2x00_abort_isp()
6902 return 0; in qla2x00_abort_isp()
6928 ha->isp_abort_cnt = 0; in qla2x00_abort_isp()
6935 memset(ha->fce, 0, in qla2x00_abort_isp()
6941 ql_log(ql_log_warn, vha, 0x8033, in qla2x00_abort_isp()
6944 ha->flags.fce_enabled = 0; in qla2x00_abort_isp()
6949 memset(ha->eft, 0, EFT_SIZE); in qla2x00_abort_isp()
6953 ql_log(ql_log_warn, vha, 0x8034, in qla2x00_abort_isp()
6961 if (ha->isp_abort_cnt == 0) { in qla2x00_abort_isp()
6962 ql_log(ql_log_fatal, vha, 0x8035, in qla2x00_abort_isp()
6970 vha->flags.online = 0; in qla2x00_abort_isp()
6973 status = 0; in qla2x00_abort_isp()
6976 ql_dbg(ql_dbg_taskm, vha, 0x8020, in qla2x00_abort_isp()
6983 ql_dbg(ql_dbg_taskm, vha, 0x8021, in qla2x00_abort_isp()
6994 ql_dbg(ql_dbg_taskm, vha, 0x8022, "%s succeeded.\n", __func__); in qla2x00_abort_isp()
7011 ql_dbg(ql_dbg_p3p, vha, 0xb05d, in qla2x00_abort_isp()
7014 ql_dbg(ql_dbg_p3p, vha, 0xb074, in qla2x00_abort_isp()
7018 ql_log(ql_log_warn, vha, 0x8023, "%s **** FAILED ****.\n", in qla2x00_abort_isp()
7033 * 0 = success
7043 vha->flags.online = 0; in qla2x00_restart_isp()
7065 return vha->device_flags & DFLG_NO_CABLE ? 0 : status; in qla2x00_restart_isp()
7069 qla2x00_marker(vha, ha->base_qpair, 0, 0, MK_SYNC_ALL); in qla2x00_restart_isp()
7072 return 0; in qla2x00_restart_isp()
7090 ql_dbg(ql_dbg_init, base_vha, 0x00ff, in qla25xx_init_queues()
7094 ql_dbg(ql_dbg_init, base_vha, 0x0100, in qla25xx_init_queues()
7106 ql_dbg(ql_dbg_init, base_vha, 0x0101, in qla25xx_init_queues()
7110 ql_dbg(ql_dbg_init, base_vha, 0x0102, in qla25xx_init_queues()
7128 unsigned long flags = 0; in qla2x00_reset_adapter()
7132 vha->flags.online = 0; in qla2x00_reset_adapter()
7148 unsigned long flags = 0; in qla24xx_reset_adapter()
7155 vha->flags.online = 0; in qla24xx_reset_adapter()
7211 if (ha->port_no == 0) { in qla24xx_nvram_config()
7230 for (cnt = 0, chksum = 0; cnt < ha->nvram_size >> 2; cnt++, dptr++) in qla24xx_nvram_config()
7233 ql_dbg(ql_dbg_init + ql_dbg_buffer, vha, 0x006a, in qla24xx_nvram_config()
7235 ql_dump_buffer(ql_dbg_init + ql_dbg_buffer, vha, 0x010d, in qla24xx_nvram_config()
7242 ql_log(ql_log_warn, vha, 0x006b, in qla24xx_nvram_config()
7245 ql_dump_buffer(ql_dbg_init, vha, 0x006b, nv, sizeof(*nv)); in qla24xx_nvram_config()
7246 ql_log(ql_log_warn, vha, 0x006c, in qla24xx_nvram_config()
7253 memset(nv, 0, ha->nvram_size); in qla24xx_nvram_config()
7257 nv->execution_throttle = cpu_to_le16(0xFFFF); in qla24xx_nvram_config()
7258 nv->exchange_count = cpu_to_le16(0); in qla24xx_nvram_config()
7260 nv->port_name[0] = 0x21; in qla24xx_nvram_config()
7261 nv->port_name[1] = 0x00 + ha->port_no + 1; in qla24xx_nvram_config()
7262 nv->port_name[2] = 0x00; in qla24xx_nvram_config()
7263 nv->port_name[3] = 0xe0; in qla24xx_nvram_config()
7264 nv->port_name[4] = 0x8b; in qla24xx_nvram_config()
7265 nv->port_name[5] = 0x1c; in qla24xx_nvram_config()
7266 nv->port_name[6] = 0x55; in qla24xx_nvram_config()
7267 nv->port_name[7] = 0x86; in qla24xx_nvram_config()
7268 nv->node_name[0] = 0x20; in qla24xx_nvram_config()
7269 nv->node_name[1] = 0x00; in qla24xx_nvram_config()
7270 nv->node_name[2] = 0x00; in qla24xx_nvram_config()
7271 nv->node_name[3] = 0xe0; in qla24xx_nvram_config()
7272 nv->node_name[4] = 0x8b; in qla24xx_nvram_config()
7273 nv->node_name[5] = 0x1c; in qla24xx_nvram_config()
7274 nv->node_name[6] = 0x55; in qla24xx_nvram_config()
7275 nv->node_name[7] = 0x86; in qla24xx_nvram_config()
7278 nv->interrupt_delay_timer = cpu_to_le16(0); in qla24xx_nvram_config()
7279 nv->login_timeout = cpu_to_le16(0); in qla24xx_nvram_config()
7286 nv->efi_parameters = cpu_to_le32(0); in qla24xx_nvram_config()
7305 memset(icb, 0, ha->init_cb_size); in qla24xx_nvram_config()
7340 if ((icb->firmware_options_1 & cpu_to_le32(BIT_14)) == 0) { in qla24xx_nvram_config()
7346 icb->node_name[0] &= 0xF0; in qla24xx_nvram_config()
7350 ha->flags.disable_risc_code_load = 0; in qla24xx_nvram_config()
7351 ha->flags.enable_lip_reset = 0; in qla24xx_nvram_config()
7353 le32_to_cpu(nv->host_p) & BIT_10 ? 1 : 0; in qla24xx_nvram_config()
7355 le32_to_cpu(nv->host_p) & BIT_11 ? 1 : 0; in qla24xx_nvram_config()
7356 ha->flags.enable_led_scheme = 0; in qla24xx_nvram_config()
7357 ha->flags.disable_serdes = le32_to_cpu(nv->host_p) & BIT_5 ? 1 : 0; in qla24xx_nvram_config()
7372 icb->execution_throttle = cpu_to_le16(0xFFFF); in qla24xx_nvram_config()
7388 /* Link Down Timeout = 0: in qla24xx_nvram_config()
7393 * Link Down Timeout != 0: in qla24xx_nvram_config()
7398 if (le16_to_cpu(nv->link_down_timeout) == 0) { in qla24xx_nvram_config()
7438 ql_log(ql_log_info, vha, 0x006f, in qla24xx_nvram_config()
7448 ql_log(ql_log_warn, vha, 0x0070, in qla24xx_nvram_config()
7458 ql_dbg(ql_dbg_init, vha, 0x018b, in qla27xx_print_image()
7494 uint32_t sum = 0; in qla27xx_image_status_checksum()
7536 ql_dbg(ql_dbg_init, NULL, 0x0180, "generation delta = %d\n", delta); in qla27xx_compare_image_generation()
7551 ql_dbg(ql_dbg_init, vha, 0x018a, "Primary aux image not addressed\n"); in qla28xx_get_aux_images()
7561 ql_dbg(ql_dbg_init, vha, 0x018b, in qla28xx_get_aux_images()
7568 ql_dbg(ql_dbg_init, vha, 0x018c, in qla28xx_get_aux_images()
7576 ql_dbg(ql_dbg_init, vha, 0x018d, in qla28xx_get_aux_images()
7583 ql_dbg(ql_dbg_init, vha, 0x018a, in qla28xx_get_aux_images()
7594 ql_dbg(ql_dbg_init, vha, 0x018b, in qla28xx_get_aux_images()
7601 ql_dbg(ql_dbg_init, vha, 0x018c, in qla28xx_get_aux_images()
7609 ql_dbg(ql_dbg_init, vha, 0x018d, in qla28xx_get_aux_images()
7618 &sec_aux_image_status) >= 0) { in qla28xx_get_aux_images()
7631 ql_dbg(ql_dbg_init, vha, 0x018f, in qla28xx_get_aux_images()
7649 ql_dbg(ql_dbg_init, vha, 0x018a, "Primary image not addressed\n"); in qla27xx_get_active_image()
7662 ql_dbg(ql_dbg_init, vha, 0x018b, in qla27xx_get_active_image()
7669 ql_dbg(ql_dbg_init, vha, 0x018c, in qla27xx_get_active_image()
7677 ql_dbg(ql_dbg_init, vha, 0x018d, in qla27xx_get_active_image()
7684 ql_dbg(ql_dbg_init, vha, 0x018a, "Secondary image not addressed\n"); in qla27xx_get_active_image()
7693 ql_dbg(ql_dbg_init, vha, 0x018b, in qla27xx_get_active_image()
7700 ql_dbg(ql_dbg_init, vha, 0x018c, in qla27xx_get_active_image()
7708 ql_dbg(ql_dbg_init, vha, 0x018d, in qla27xx_get_active_image()
7720 &pri_image_status, &sec_image_status) < 0) { in qla27xx_get_active_image()
7725 ql_dbg(ql_dbg_init, vha, 0x018f, "active image %s (%u)\n", in qla27xx_get_active_image()
7752 uint32_t risc_addr, risc_size, risc_attr = 0; in qla24xx_load_risc_flash()
7754 struct req_que *req = ha->req_q_map[0]; in qla24xx_load_risc_flash()
7757 ql_dbg(ql_dbg_init, vha, 0x008b, in qla24xx_load_risc_flash()
7763 ql_log(ql_log_fatal, vha, 0x008c, in qla24xx_load_risc_flash()
7766 ql_log(ql_log_fatal, vha, 0x008d, in qla24xx_load_risc_flash()
7768 dcode[0], dcode[1], dcode[2], dcode[3]); in qla24xx_load_risc_flash()
7774 *srisc_addr = 0; in qla24xx_load_risc_flash()
7776 for (j = 0; j < segments; j++) { in qla24xx_load_risc_flash()
7777 ql_dbg(ql_dbg_init, vha, 0x008d, in qla24xx_load_risc_flash()
7788 for (fragment = 0; risc_size; fragment++) { in qla24xx_load_risc_flash()
7792 ql_dbg(ql_dbg_init, vha, 0x008e, in qla24xx_load_risc_flash()
7796 for (i = 0; i < dlen; i++) in qla24xx_load_risc_flash()
7801 ql_log(ql_log_fatal, vha, 0x008f, in qla24xx_load_risc_flash()
7817 ql_dbg(ql_dbg_init, vha, 0x0160, "-> templates = %u\n", templates); in qla24xx_load_risc_flash()
7818 for (j = 0; j < templates; j++, fwdt++) { in qla24xx_load_risc_flash()
7822 fwdt->length = 0; in qla24xx_load_risc_flash()
7827 ql_dbg(ql_dbg_init, vha, 0x0161, in qla24xx_load_risc_flash()
7831 ql_dbg(ql_dbg_init, vha, 0x0162, in qla24xx_load_risc_flash()
7840 ql_dbg(ql_dbg_init, vha, 0x0163, in qla24xx_load_risc_flash()
7845 ql_log(ql_log_warn, vha, 0x0164, in qla24xx_load_risc_flash()
7854 ql_log(ql_log_warn, vha, 0x0165, in qla24xx_load_risc_flash()
7860 ql_dbg(ql_dbg_init, vha, 0x0166, in qla24xx_load_risc_flash()
7864 ql_log(ql_log_warn, vha, 0x0167, in qla24xx_load_risc_flash()
7871 ql_dbg(ql_dbg_init, vha, 0x0168, in qla24xx_load_risc_flash()
7883 fwdt->length = 0; in qla24xx_load_risc_flash()
7900 struct req_que *req = ha->req_q_map[0]; in qla2x00_load_risc()
7905 ql_log(ql_log_info, vha, 0x0083, in qla2x00_load_risc()
7907 ql_log(ql_log_info, vha, 0x0084, in qla2x00_load_risc()
7915 *srisc_addr = 0; in qla2x00_load_risc()
7917 fwclen = 0; in qla2x00_load_risc()
7921 ql_log(ql_log_fatal, vha, 0x0085, in qla2x00_load_risc()
7926 for (i = 0; i < 4; i++) in qla2x00_load_risc()
7928 if ((wcode[0] == 0xffff && wcode[1] == 0xffff && wcode[2] == 0xffff && in qla2x00_load_risc()
7929 wcode[3] == 0xffff) || (wcode[0] == 0 && wcode[1] == 0 && in qla2x00_load_risc()
7930 wcode[2] == 0 && wcode[3] == 0)) { in qla2x00_load_risc()
7931 ql_log(ql_log_fatal, vha, 0x0086, in qla2x00_load_risc()
7933 ql_log(ql_log_fatal, vha, 0x0087, in qla2x00_load_risc()
7935 wcode[0], wcode[1], wcode[2], wcode[3]); in qla2x00_load_risc()
7942 *srisc_addr = *srisc_addr == 0 ? *seg : *srisc_addr; in qla2x00_load_risc()
7948 ql_log(ql_log_fatal, vha, 0x0088, in qla2x00_load_risc()
7954 fragment = 0; in qla2x00_load_risc()
7955 while (risc_size > 0 && rval == QLA_SUCCESS) { in qla2x00_load_risc()
7959 ql_dbg(ql_dbg_init, vha, 0x0089, in qla2x00_load_risc()
7961 "words 0x%x.\n", risc_addr, wlen); in qla2x00_load_risc()
7963 for (i = 0; i < wlen; i++) in qla2x00_load_risc()
7969 ql_log(ql_log_fatal, vha, 0x008a, in qla2x00_load_risc()
7997 uint32_t risc_addr, risc_size, risc_attr = 0; in qla24xx_load_risc_blob()
8003 struct req_que *req = ha->req_q_map[0]; in qla24xx_load_risc_blob()
8006 ql_dbg(ql_dbg_init, vha, 0x0090, in qla24xx_load_risc_blob()
8011 ql_log(ql_log_warn, vha, 0x0092, in qla24xx_load_risc_blob()
8020 ql_log(ql_log_fatal, vha, 0x0093, in qla24xx_load_risc_blob()
8023 ql_log(ql_log_fatal, vha, 0x0095, in qla24xx_load_risc_blob()
8025 dcode[0], dcode[1], dcode[2], dcode[3]); in qla24xx_load_risc_blob()
8030 *srisc_addr = 0; in qla24xx_load_risc_blob()
8032 for (j = 0; j < segments; j++) { in qla24xx_load_risc_blob()
8033 ql_dbg(ql_dbg_init, vha, 0x0096, in qla24xx_load_risc_blob()
8044 for (fragment = 0; risc_size; fragment++) { in qla24xx_load_risc_blob()
8048 ql_dbg(ql_dbg_init, vha, 0x0097, in qla24xx_load_risc_blob()
8054 for (i = 0; i < dlen; i++) in qla24xx_load_risc_blob()
8059 ql_log(ql_log_fatal, vha, 0x0098, in qla24xx_load_risc_blob()
8075 ql_dbg(ql_dbg_init, vha, 0x0170, "-> templates = %u\n", templates); in qla24xx_load_risc_blob()
8076 for (j = 0; j < templates; j++, fwdt++) { in qla24xx_load_risc_blob()
8080 fwdt->length = 0; in qla24xx_load_risc_blob()
8083 ql_dbg(ql_dbg_init, vha, 0x0171, in qla24xx_load_risc_blob()
8088 ql_dbg(ql_dbg_init, vha, 0x0172, in qla24xx_load_risc_blob()
8097 ql_dbg(ql_dbg_init, vha, 0x0173, in qla24xx_load_risc_blob()
8102 ql_log(ql_log_warn, vha, 0x0174, in qla24xx_load_risc_blob()
8108 for (i = 0; i < risc_size; i++) in qla24xx_load_risc_blob()
8112 ql_log(ql_log_warn, vha, 0x0175, in qla24xx_load_risc_blob()
8118 ql_dbg(ql_dbg_init, vha, 0x0176, in qla24xx_load_risc_blob()
8122 ql_log(ql_log_warn, vha, 0x0177, in qla24xx_load_risc_blob()
8129 ql_dbg(ql_dbg_init, vha, 0x0178, in qla24xx_load_risc_blob()
8141 fwdt->length = 0; in qla24xx_load_risc_blob()
8191 ql_dbg(ql_dbg_init, vha, 0x008b, in qla81xx_load_risc()
8198 ql_dbg(ql_dbg_init, vha, 0x008b, in qla81xx_load_risc()
8209 ql_log(ql_log_info, vha, 0x0099, in qla81xx_load_risc()
8215 ql_log(ql_log_info, vha, 0x009a, "Need firmware flash update.\n"); in qla81xx_load_risc()
8243 ql_log(ql_log_info, vha, 0x8015, in qla2x00_try_to_stop_firmware()
8249 ha->flags.fw_init_done = 0; in qla2x00_try_to_stop_firmware()
8268 qla2x00_marker(vha, ha->base_qpair, 0, 0, MK_SYNC_ALL); in qla24xx_configure_vhba()
8271 vha->flags.management_server_logged_in = 0; in qla24xx_configure_vhba()
8274 rval2 = ha->isp_ops->fabric_login(vha, NPH_SNS, 0xff, 0xff, 0xfc, mb, in qla24xx_configure_vhba()
8276 if (rval2 != QLA_SUCCESS || mb[0] != MBS_COMMAND_COMPLETE) { in qla24xx_configure_vhba()
8278 ql_dbg(ql_dbg_init, vha, 0x0120, in qla24xx_configure_vhba()
8282 ql_dbg(ql_dbg_init, vha, 0x0103, in qla24xx_configure_vhba()
8283 "Failed SNS login: loop_id=%x mb[0]=%x mb[1]=%x " in qla24xx_configure_vhba()
8285 NPH_SNS, mb[0], mb[1], mb[2], mb[6], mb[7]); in qla24xx_configure_vhba()
8289 atomic_set(&vha->loop_down_timer, 0); in qla24xx_configure_vhba()
8368 return rval != QLA_SUCCESS || status[0] ? QLA_FUNCTION_FAILED : in qla84xx_init_chip()
8408 ql_dbg(ql_dbg_init, vha, 0x0110, in qla81xx_nvram_config()
8421 ql_dbg(ql_dbg_init, vha, 0x0110, in qla81xx_nvram_config()
8428 for (cnt = 0, chksum = 0; cnt < ha->nvram_size >> 2; cnt++, dptr++) in qla81xx_nvram_config()
8431 ql_dbg(ql_dbg_init + ql_dbg_buffer, vha, 0x0111, in qla81xx_nvram_config()
8433 ql_dump_buffer(ql_dbg_init + ql_dbg_buffer, vha, 0x0112, in qla81xx_nvram_config()
8440 ql_log(ql_log_info, vha, 0x0073, in qla81xx_nvram_config()
8443 ql_dump_buffer(ql_dbg_init, vha, 0x0073, nv, sizeof(*nv)); in qla81xx_nvram_config()
8444 ql_log(ql_log_info, vha, 0x0074, in qla81xx_nvram_config()
8451 memset(nv, 0, ha->nvram_size); in qla81xx_nvram_config()
8455 nv->execution_throttle = cpu_to_le16(0xFFFF); in qla81xx_nvram_config()
8456 nv->exchange_count = cpu_to_le16(0); in qla81xx_nvram_config()
8457 nv->port_name[0] = 0x21; in qla81xx_nvram_config()
8458 nv->port_name[1] = 0x00 + ha->port_no + 1; in qla81xx_nvram_config()
8459 nv->port_name[2] = 0x00; in qla81xx_nvram_config()
8460 nv->port_name[3] = 0xe0; in qla81xx_nvram_config()
8461 nv->port_name[4] = 0x8b; in qla81xx_nvram_config()
8462 nv->port_name[5] = 0x1c; in qla81xx_nvram_config()
8463 nv->port_name[6] = 0x55; in qla81xx_nvram_config()
8464 nv->port_name[7] = 0x86; in qla81xx_nvram_config()
8465 nv->node_name[0] = 0x20; in qla81xx_nvram_config()
8466 nv->node_name[1] = 0x00; in qla81xx_nvram_config()
8467 nv->node_name[2] = 0x00; in qla81xx_nvram_config()
8468 nv->node_name[3] = 0xe0; in qla81xx_nvram_config()
8469 nv->node_name[4] = 0x8b; in qla81xx_nvram_config()
8470 nv->node_name[5] = 0x1c; in qla81xx_nvram_config()
8471 nv->node_name[6] = 0x55; in qla81xx_nvram_config()
8472 nv->node_name[7] = 0x86; in qla81xx_nvram_config()
8474 nv->interrupt_delay_timer = cpu_to_le16(0); in qla81xx_nvram_config()
8475 nv->login_timeout = cpu_to_le16(0); in qla81xx_nvram_config()
8482 nv->efi_parameters = cpu_to_le32(0); in qla81xx_nvram_config()
8487 nv->enode_mac[0] = 0x00; in qla81xx_nvram_config()
8488 nv->enode_mac[1] = 0xC0; in qla81xx_nvram_config()
8489 nv->enode_mac[2] = 0xDD; in qla81xx_nvram_config()
8490 nv->enode_mac[3] = 0x04; in qla81xx_nvram_config()
8491 nv->enode_mac[4] = 0x05; in qla81xx_nvram_config()
8492 nv->enode_mac[5] = 0x06 + ha->port_no + 1; in qla81xx_nvram_config()
8503 memset(icb, 0, ha->init_cb_size); in qla81xx_nvram_config()
8524 if (!memcmp(icb->enode_mac, "\0\0\0\0\0\0", sizeof(icb->enode_mac))) { in qla81xx_nvram_config()
8525 icb->enode_mac[0] = 0x00; in qla81xx_nvram_config()
8526 icb->enode_mac[1] = 0xC0; in qla81xx_nvram_config()
8527 icb->enode_mac[2] = 0xDD; in qla81xx_nvram_config()
8528 icb->enode_mac[3] = 0x04; in qla81xx_nvram_config()
8529 icb->enode_mac[4] = 0x05; in qla81xx_nvram_config()
8530 icb->enode_mac[5] = 0x06 + ha->port_no + 1; in qla81xx_nvram_config()
8551 if ((icb->firmware_options_1 & cpu_to_le32(BIT_14)) == 0) { in qla81xx_nvram_config()
8557 icb->node_name[0] &= 0xF0; in qla81xx_nvram_config()
8561 if ((nv->enhanced_features & BIT_7) == 0) in qla81xx_nvram_config()
8566 ha->flags.disable_risc_code_load = 0; in qla81xx_nvram_config()
8567 ha->flags.enable_lip_reset = 0; in qla81xx_nvram_config()
8569 le32_to_cpu(nv->host_p) & BIT_10 ? 1 : 0; in qla81xx_nvram_config()
8571 le32_to_cpu(nv->host_p) & BIT_11 ? 1 : 0; in qla81xx_nvram_config()
8572 ha->flags.enable_led_scheme = 0; in qla81xx_nvram_config()
8573 ha->flags.disable_serdes = le32_to_cpu(nv->host_p) & BIT_5 ? 1 : 0; in qla81xx_nvram_config()
8585 icb->execution_throttle = cpu_to_le16(0xFFFF); in qla81xx_nvram_config()
8601 /* Link Down Timeout = 0: in qla81xx_nvram_config()
8606 * Link Down Timeout != 0: in qla81xx_nvram_config()
8611 if (le16_to_cpu(nv->link_down_timeout) == 0) { in qla81xx_nvram_config()
8650 vha->flags.process_response_queue = 0; in qla81xx_nvram_config()
8654 ql_log(ql_log_info, vha, 0x0075, in qla81xx_nvram_config()
8675 ql_log(ql_log_warn, vha, 0x0076, in qla81xx_nvram_config()
8697 qla2x00_marker(vha, ha->base_qpair, 0, 0, MK_SYNC_ALL); in qla82xx_restart_isp()
8704 status = 0; in qla82xx_restart_isp()
8720 ha->isp_abort_cnt = 0; in qla82xx_restart_isp()
8728 memset(ha->fce, 0, in qla82xx_restart_isp()
8734 ql_log(ql_log_warn, vha, 0x8001, in qla82xx_restart_isp()
8737 ha->flags.fce_enabled = 0; in qla82xx_restart_isp()
8742 memset(ha->eft, 0, EFT_SIZE); in qla82xx_restart_isp()
8746 ql_log(ql_log_warn, vha, 0x8010, in qla82xx_restart_isp()
8754 ql_dbg(ql_dbg_taskm, vha, 0x8011, in qla82xx_restart_isp()
8772 ql_log(ql_log_warn, vha, 0x8016, in qla82xx_restart_isp()
8813 pri_entry = &ha->fcp_prio_cfg->entry[0]; in qla24xx_get_fcp_prio()
8815 for (i = 0; i < entries; i++) { in qla24xx_get_fcp_prio()
8816 pid_match = wwn_match = 0; in qla24xx_get_fcp_prio()
8902 if (priority < 0) in qla24xx_update_fcport_fcp_prio()
8906 fcport->fcp_prio = priority & 0xf; in qla24xx_update_fcport_fcp_prio()
8913 ql_dbg(ql_dbg_user, vha, 0x709e, in qla24xx_update_fcport_fcp_prio()
8918 fcport->fcp_prio = priority & 0xf; in qla24xx_update_fcport_fcp_prio()
8920 ql_dbg(ql_dbg_user, vha, 0x704f, in qla24xx_update_fcport_fcp_prio()
8921 "Unable to update FCP_CMND priority - ret=0x%x for " in qla24xx_update_fcport_fcp_prio()
8958 int rsp_id = 0; in qla2xxx_create_qpair()
8959 int req_id = 0; in qla2xxx_create_qpair()
8962 uint16_t qpair_id = 0; in qla2xxx_create_qpair()
8967 ql_log(ql_log_warn, vha, 0x00181, in qla2xxx_create_qpair()
8975 ql_log(ql_log_warn, vha, 0x0182, in qla2xxx_create_qpair()
8984 qpair->use_shadow_reg = IS_SHADOW_REG_CAPABLE(ha) ? 1 : 0; in qla2xxx_create_qpair()
8991 ql_log(ql_log_warn, vha, 0x0183, in qla2xxx_create_qpair()
9007 for (i = 0; i < ha->msix_count; i++) { in qla2xxx_create_qpair()
9012 ql_dbg(ql_dbg_multiq, vha, 0xc00f, in qla2xxx_create_qpair()
9017 ql_log(ql_log_warn, vha, 0x0184, in qla2xxx_create_qpair()
9031 rsp_id = qla25xx_create_rsp_que(ha, 0, 0, 0, qpair, startqp); in qla2xxx_create_qpair()
9033 ql_log(ql_log_warn, vha, 0x0185, in qla2xxx_create_qpair()
9041 req_id = qla25xx_create_req_que(ha, 0, vp_idx, 0, rsp_id, qos, in qla2xxx_create_qpair()
9044 ql_log(ql_log_warn, vha, 0x0186, in qla2xxx_create_qpair()
9062 ql_log(ql_log_warn, vha, 0xd036, in qla2xxx_create_qpair()
9074 ql_dbg(ql_dbg_multiq, vha, 0xc00d, in qla2xxx_create_qpair()
9077 ql_dbg(ql_dbg_init, vha, 0x0187, in qla2xxx_create_qpair()
9088 qpair->msix->in_use = 0; in qla2xxx_create_qpair()
9091 vha->flags.qpairs_available = 0; in qla2xxx_create_qpair()
9123 vha->flags.qpairs_available = 0; in qla2xxx_delete_qpair()
9124 vha->flags.qpairs_req_created = 0; in qla2xxx_delete_qpair()
9125 vha->flags.qpairs_rsp_created = 0; in qla2xxx_delete_qpair()