Lines Matching refs:vha

106 qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp)
119 struct qla_hw_data *ha = vha->hw;
124 ql_dbg(ql_dbg_mbx, vha, 0x1000, "Entered %s.\n", __func__);
127 ql_log(ql_log_warn, vha, 0x1001,
132 if (vha->device_flags & DFLG_DEV_FAILED) {
133 ql_log(ql_log_warn, vha, 0x1002,
141 ql_log(ql_log_warn, vha, 0xd04e,
154 ql_log(ql_log_warn, vha, 0x1003,
162 ql_log(ql_log_warn, vha, 0x1004,
172 ql_log(ql_log_info, vha, 0x1005,
186 ql_log(ql_log_warn, vha, 0xd035,
189 vha->hw_err_cnt++;
196 ql_log(ql_log_warn, vha, 0xd035,
207 ql_dbg(ql_dbg_mbx, vha, 0x1006,
232 ql_dbg(ql_dbg_mbx, vha, 0x1111,
238 ql_dbg(ql_dbg_mbx, vha, 0x1112,
250 ql_dbg(ql_dbg_mbx + ql_dbg_buffer, vha, 0x1117,
258 ql_dbg(ql_dbg_mbx, vha, 0x100f,
278 ql_dbg(ql_dbg_mbx, vha, 0x117a,
308 ql_log(ql_log_warn, vha, 0x1015, "cmd=0x%x, waited %d msecs\n",
311 ql_dbg(ql_dbg_mbx, vha, 0x1011,
321 ql_dbg(ql_dbg_mbx, vha, 0x1012,
323 vha->hw_err_cnt++;
360 ql_dbg(ql_dbg_mbx, vha, 0x1013,
370 ql_dbg(ql_dbg_mbx, vha, 0x1014,
386 ql_log(ql_log_warn, vha, 0xd048,
392 ql_dbg(ql_dbg_mbx, vha, 0x11ff,
403 ql_dbg(ql_dbg_mbx, vha, 0x1113,
408 ql_dbg(ql_dbg_mbx, vha, 0x1114,
432 ql_log(ql_log_warn, vha, 0xd04c,
437 vha->hw_err_cnt++;
442 ql_dbg(ql_dbg_mbx + ql_dbg_buffer, vha, 0x1119,
445 vha->hw_err_cnt++;
447 ql_dump_regs(ql_dbg_mbx + ql_dbg_buffer, vha, 0x1019);
450 if (!pci_channel_offline(vha->hw->pdev)) {
474 qla2xxx_dump_fw(vha);
486 ql_dbg(ql_dbg_mbx, vha, 0x101a,
498 ql_dbg(ql_dbg_mbx, vha, 0x101b,
501 if (!test_bit(ISP_ABORT_NEEDED, &vha->dpc_flags) &&
502 !test_bit(ABORT_ISP_ACTIVE, &vha->dpc_flags) &&
503 !test_bit(ISP_ABORT_RETRY, &vha->dpc_flags)) {
505 ql_dbg(ql_dbg_mbx, vha, 0x112a,
518 vha->hw_err_cnt++;
519 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
520 qla2xxx_wake_dpc(vha);
524 ql_dbg(ql_dbg_mbx, vha, 0x101d,
527 if (!test_bit(ISP_ABORT_NEEDED, &vha->dpc_flags) &&
528 !test_bit(ABORT_ISP_ACTIVE, &vha->dpc_flags) &&
529 !test_bit(ISP_ABORT_RETRY, &vha->dpc_flags)) {
531 ql_dbg(ql_dbg_mbx, vha, 0x112b,
543 vha->hw_err_cnt++;
544 set_bit(ABORT_ISP_ACTIVE, &vha->dpc_flags);
545 clear_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
548 if (ha->isp_ops->abort_isp(vha) &&
552 &vha->dpc_flags);
554 clear_bit(ABORT_ISP_ACTIVE, &vha->dpc_flags);
555 ql_dbg(ql_dbg_mbx, vha, 0x101f,
568 ql_log(ql_log_info, vha, 0xd035,
575 vha->host_no, rval);
586 ql_dbg(ql_dbg_mbx, vha, 0x1198,
592 ql_dbg(ql_dbg_mbx, vha, 0x1206,
617 qla2x00_load_ram(scsi_qla_host_t *vha, dma_addr_t req_dma, uint32_t risc_addr,
621 struct qla_hw_data *ha = vha->hw;
625 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1022,
654 rval = qla2x00_mailbox_command(vha, mcp);
657 ql_dbg(ql_dbg_mbx, vha, 0x1023,
660 vha->hw_err_cnt++;
662 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1024,
688 qla2x00_execute_fw(scsi_qla_host_t *vha, uint32_t risc_addr)
691 struct qla_hw_data *ha = vha->hw;
698 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1025,
732 vha->min_supported_speed =
762 rval = qla2x00_mailbox_command(vha, mcp);
769 ql_dbg(ql_dbg_async, vha, 0x1026,
776 ql_dbg(ql_dbg_async, vha, 0x509d,
780 ql_dbg(ql_dbg_mbx, vha, 0x1026,
782 vha->hw_err_cnt++;
790 ql_dbg(ql_dbg_mbx, vha, 0x119a,
792 ql_dbg(ql_dbg_mbx, vha, 0x1027, "exchanges=%x.\n", mcp->mb[1]);
795 ql_dbg(ql_dbg_mbx, vha, 0x119b, "max_supported_speed=%s.\n",
799 if (vha->min_supported_speed) {
802 ql_dbg(ql_dbg_mbx, vha, 0x119c,
814 ql_log(ql_log_info, vha, 0xffff,
819 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1028,
842 qla_get_exlogin_status(scsi_qla_host_t *vha, uint16_t *buf_sz,
849 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x118f,
860 rval = qla2x00_mailbox_command(vha, mcp);
862 ql_dbg(ql_dbg_mbx, vha, 0x1115, "Failed=%x.\n", rval);
867 ql_log(ql_log_info, vha, 0x1190,
871 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1116,
899 qla_set_exlogin_mem_cfg(scsi_qla_host_t *vha, dma_addr_t phys_addr)
904 struct qla_hw_data *ha = vha->hw;
906 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x111a,
922 rval = qla2x00_mailbox_command(vha, mcp);
924 ql_dbg(ql_dbg_mbx, vha, 0x111b,
928 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x118c,
952 qla_get_exchoffld_status(scsi_qla_host_t *vha, uint16_t *buf_sz,
959 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1019,
970 rval = qla2x00_mailbox_command(vha, mcp);
972 ql_dbg(ql_dbg_mbx, vha, 0x1155, "Failed=%x.\n", rval);
977 ql_log(ql_log_info, vha, 0x118e,
981 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1156,
1009 qla_set_exchoffld_mem_cfg(scsi_qla_host_t *vha)
1014 struct qla_hw_data *ha = vha->hw;
1016 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1157,
1032 rval = qla2x00_mailbox_command(vha, mcp);
1035 ql_dbg(ql_dbg_mbx, vha, 0x1158, "Failed=%x.\n", rval);
1037 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1192,
1061 qla2x00_get_fw_version(scsi_qla_host_t *vha)
1066 struct qla_hw_data *ha = vha->hw;
1068 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1029,
1074 if (IS_QLA81XX(vha->hw) || IS_QLA8031(ha) || IS_QLA8044(ha))
1085 rval = qla2x00_mailbox_command(vha, mcp);
1094 if (IS_QLA2100(vha->hw) || IS_QLA2200(vha->hw))
1099 if (IS_QLA81XX(vha->hw) || IS_QLA8031(vha->hw) || IS_QLA8044(ha)) {
1113 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1139,
1116 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x112f,
1121 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x118d,
1126 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1191,
1138 vha->flags.nvme_first_burst = 1;
1140 vha->flags.nvme_enabled = 1;
1141 ql_log(ql_log_info, vha, 0xd302,
1148 ql_log(ql_log_info, vha, 0xd302,
1151 vha->flags.nvme2_enabled = 1;
1157 ql_log(ql_log_info, vha, 0xffff,
1180 ql_log(ql_log_info, vha, 0xffff,
1191 ql_log(ql_log_info, vha, 0x11a3, "SCM in FW: %s\n",
1195 if (vha->flags.nvme2_enabled) {
1206 ql_dbg(ql_dbg_mbx, vha, 0x102a, "Failed=%x.\n", rval);
1209 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x102b,
1230 qla2x00_get_fw_options(scsi_qla_host_t *vha, uint16_t *fwopts)
1236 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x102c,
1244 rval = qla2x00_mailbox_command(vha, mcp);
1248 ql_dbg(ql_dbg_mbx, vha, 0x102d, "Failed=%x.\n", rval);
1255 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x102e,
1278 qla2x00_set_fw_options(scsi_qla_host_t *vha, uint16_t *fwopts)
1284 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x102f,
1293 if (IS_FWI2_CAPABLE(vha->hw)) {
1305 rval = qla2x00_mailbox_command(vha, mcp);
1311 ql_dbg(ql_dbg_mbx, vha, 0x1030,
1315 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1031,
1338 qla2x00_mbx_reg_test(scsi_qla_host_t *vha)
1344 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1032,
1359 rval = qla2x00_mailbox_command(vha, mcp);
1372 ql_dbg(ql_dbg_mbx, vha, 0x1033, "Failed=%x.\n", rval);
1373 vha->hw_err_cnt++;
1376 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1034,
1399 qla2x00_verify_checksum(scsi_qla_host_t *vha, uint32_t risc_addr)
1405 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1035,
1411 if (IS_FWI2_CAPABLE(vha->hw)) {
1424 rval = qla2x00_mailbox_command(vha, mcp);
1427 ql_dbg(ql_dbg_mbx, vha, 0x1036,
1428 "Failed=%x chm sum=%x.\n", rval, IS_FWI2_CAPABLE(vha->hw) ?
1431 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1037,
1457 qla2x00_issue_iocb_timeout(scsi_qla_host_t *vha, void *buffer,
1464 if (!vha->hw->flags.fw_started)
1467 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1038,
1480 rval = qla2x00_mailbox_command(vha, mcp);
1484 ql_dbg(ql_dbg_mbx, vha, 0x1039, "Failed=%x.\n", rval);
1490 IS_FWI2_CAPABLE(vha->hw) ? RF_MASK_24XX : RF_MASK;
1491 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x103a,
1500 qla2x00_issue_iocb(scsi_qla_host_t *vha, void *buffer, dma_addr_t phys_addr,
1503 return qla2x00_issue_iocb_timeout(vha, buffer, phys_addr, size,
1530 scsi_qla_host_t *vha = fcport->vha;
1531 struct qla_hw_data *ha = vha->hw;
1535 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x103b,
1541 req = vha->req;
1567 rval = qla2x00_mailbox_command(vha, mcp);
1570 ql_dbg(ql_dbg_mbx, vha, 0x103c, "Failed=%x.\n", rval);
1572 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x103d,
1585 scsi_qla_host_t *vha;
1587 vha = fcport->vha;
1589 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x103e,
1594 if (HAS_EXTENDED_IDS(vha->hw)) {
1601 mcp->mb[2] = vha->hw->loop_reset_delay;
1602 mcp->mb[9] = vha->vp_idx;
1607 rval = qla2x00_mailbox_command(vha, mcp);
1609 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x103f,
1614 rval2 = qla2x00_marker(vha, vha->hw->base_qpair, fcport->loop_id, 0,
1617 ql_dbg(ql_dbg_mbx, vha, 0x1040,
1620 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1041,
1633 scsi_qla_host_t *vha;
1635 vha = fcport->vha;
1637 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1042,
1642 if (HAS_EXTENDED_IDS(vha->hw))
1648 mcp->mb[9] = vha->vp_idx;
1653 rval = qla2x00_mailbox_command(vha, mcp);
1655 ql_dbg(ql_dbg_mbx, vha, 0x1043, "Failed=%x.\n", rval);
1659 rval2 = qla2x00_marker(vha, vha->hw->base_qpair, fcport->loop_id, l,
1662 ql_dbg(ql_dbg_mbx, vha, 0x1044,
1665 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1045,
1693 qla2x00_get_adapter_id(scsi_qla_host_t *vha, uint16_t *id, uint8_t *al_pa,
1700 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1046,
1704 mcp->mb[9] = vha->vp_idx;
1707 if (IS_CNA_CAPABLE(vha->hw))
1709 if (IS_FWI2_CAPABLE(vha->hw))
1711 if (IS_QLA27XX(vha->hw) || IS_QLA28XX(vha->hw))
1716 rval = qla2x00_mailbox_command(vha, mcp);
1732 ql_dbg(ql_dbg_mbx, vha, 0x1047, "Failed=%x.\n", rval);
1734 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1048,
1737 if (IS_CNA_CAPABLE(vha->hw)) {
1738 vha->fcoe_vlan_id = mcp->mb[9] & 0xfff;
1739 vha->fcoe_fcf_idx = mcp->mb[10];
1740 vha->fcoe_vn_port_mac[5] = mcp->mb[11] >> 8;
1741 vha->fcoe_vn_port_mac[4] = mcp->mb[11] & 0xff;
1742 vha->fcoe_vn_port_mac[3] = mcp->mb[12] >> 8;
1743 vha->fcoe_vn_port_mac[2] = mcp->mb[12] & 0xff;
1744 vha->fcoe_vn_port_mac[1] = mcp->mb[13] >> 8;
1745 vha->fcoe_vn_port_mac[0] = mcp->mb[13] & 0xff;
1748 if (IS_FAWWN_CAPABLE(vha->hw)) {
1750 vha->port_name[0] = MSB(mcp->mb[16]);
1751 vha->port_name[1] = LSB(mcp->mb[16]);
1752 vha->port_name[2] = MSB(mcp->mb[17]);
1753 vha->port_name[3] = LSB(mcp->mb[17]);
1754 vha->port_name[4] = MSB(mcp->mb[18]);
1755 vha->port_name[5] = LSB(mcp->mb[18]);
1756 vha->port_name[6] = MSB(mcp->mb[19]);
1757 vha->port_name[7] = LSB(mcp->mb[19]);
1758 fc_host_port_name(vha->host) =
1759 wwn_to_u64(vha->port_name);
1760 ql_dbg(ql_dbg_mbx, vha, 0x10ca,
1762 wwn_to_u64(vha->port_name));
1766 if (IS_QLA27XX(vha->hw) || IS_QLA28XX(vha->hw)) {
1767 vha->bbcr = mcp->mb[15];
1769 ql_log(ql_log_info, vha, 0x11a4,
1774 vha->hw->flags.scm_enabled = 1;
1775 vha->scm_fabric_connection_flags |=
1777 ql_log(ql_log_info, vha, 0x11a5,
1803 qla2x00_get_retry_cnt(scsi_qla_host_t *vha, uint8_t *retry_cnt, uint8_t *tov,
1811 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1049,
1819 rval = qla2x00_mailbox_command(vha, mcp);
1823 ql_dbg(ql_dbg_mbx, vha, 0x104a,
1835 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x104b,
1860 qla2x00_init_firmware(scsi_qla_host_t *vha, uint16_t size)
1865 struct qla_hw_data *ha = vha->hw;
1867 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x104c,
1895 if (ha->flags.scm_supported_f || vha->flags.nvme2_enabled) {
1913 rval = qla2x00_mailbox_command(vha, mcp);
1917 ql_dbg(ql_dbg_mbx, vha, 0x104d,
1921 ql_dbg(ql_dbg_mbx, vha, 0x104d, "init_cb:\n");
1922 ql_dump_buffer(ql_dbg_init + ql_dbg_verbose, vha,
1926 ql_dbg(ql_dbg_mbx, vha, 0x104d, "ex_init_cb:\n");
1927 ql_dump_buffer(ql_dbg_init + ql_dbg_verbose, vha,
1933 ql_dbg(ql_dbg_mbx, vha, 0x119d,
1936 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x104e,
1961 qla2x00_get_port_database(scsi_qla_host_t *vha, fc_port_t *fcport, uint8_t opt)
1969 struct qla_hw_data *ha = vha->hw;
1971 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x104f,
1977 ql_log(ql_log_warn, vha, 0x1050,
1990 mcp->mb[9] = vha->vp_idx;
2010 rval = qla2x00_mailbox_command(vha, mcp);
2034 ql_dbg(ql_dbg_mbx, vha, 0x119a,
2080 ql_dbg(ql_dbg_mbx, vha, 0x100a,
2123 ql_dbg(ql_dbg_mbx, vha, 0x1052,
2127 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1053,
2135 qla24xx_get_port_database(scsi_qla_host_t *vha, u16 nport_handle,
2143 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1115,
2148 pdb_dma = dma_map_single(&vha->hw->pdev->dev, pdb,
2151 ql_log(ql_log_warn, vha, 0x1116, "Failed to map dma buffer.\n");
2167 mcp->tov = vha->hw->login_timeout * 2;
2168 rval = qla2x00_mailbox_command(vha, mcp);
2171 ql_dbg(ql_dbg_mbx, vha, 0x111a,
2175 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x111b,
2179 dma_unmap_single(&vha->hw->pdev->dev, pdb_dma,
2202 qla2x00_get_firmware_state(scsi_qla_host_t *vha, uint16_t *states)
2207 struct qla_hw_data *ha = vha->hw;
2209 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1054,
2217 if (IS_FWI2_CAPABLE(vha->hw))
2223 rval = qla2x00_mailbox_command(vha, mcp);
2227 if (IS_FWI2_CAPABLE(vha->hw)) {
2237 ql_dbg(ql_dbg_mbx, vha, 0x1055, "Failed=%x.\n", rval);
2241 ql_dbg(ql_dbg_mbx, vha, 0x119e,
2244 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1056,
2270 qla2x00_get_port_name(scsi_qla_host_t *vha, uint16_t loop_id, uint8_t *name,
2277 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1057,
2281 mcp->mb[9] = vha->vp_idx;
2283 if (HAS_EXTENDED_IDS(vha->hw)) {
2294 rval = qla2x00_mailbox_command(vha, mcp);
2298 ql_dbg(ql_dbg_mbx, vha, 0x1058, "Failed=%x.\n", rval);
2312 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1059,
2335 qla24xx_link_initialize(scsi_qla_host_t *vha)
2341 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1152,
2344 if (!IS_FWI2_CAPABLE(vha->hw) || IS_CNA_CAPABLE(vha->hw))
2349 if (vha->hw->operating_mode == LOOP)
2359 rval = qla2x00_mailbox_command(vha, mcp);
2362 ql_dbg(ql_dbg_mbx, vha, 0x1153, "Failed=%x.\n", rval);
2364 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1154,
2387 qla2x00_lip_reset(scsi_qla_host_t *vha)
2393 ql_dbg(ql_dbg_disc, vha, 0x105a,
2396 if (IS_CNA_CAPABLE(vha->hw)) {
2402 } else if (IS_FWI2_CAPABLE(vha->hw)) {
2406 mcp->mb[3] = vha->hw->loop_reset_delay;
2411 if (HAS_EXTENDED_IDS(vha->hw)) {
2418 mcp->mb[2] = vha->hw->loop_reset_delay;
2424 rval = qla2x00_mailbox_command(vha, mcp);
2428 ql_dbg(ql_dbg_mbx, vha, 0x105b, "Failed=%x.\n", rval);
2431 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x105c,
2457 qla2x00_send_sns(scsi_qla_host_t *vha, dma_addr_t sns_phys_address,
2464 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x105d,
2467 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x105e,
2469 vha->hw->retry_count, vha->hw->login_timeout, mcp->tov);
2481 mcp->tov = (vha->hw->login_timeout * 2) + (vha->hw->login_timeout / 2);
2482 rval = qla2x00_mailbox_command(vha, mcp);
2486 ql_dbg(ql_dbg_mbx, vha, 0x105f,
2491 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1060,
2499 qla24xx_login_fabric(scsi_qla_host_t *vha, uint16_t loop_id, uint8_t domain,
2507 struct qla_hw_data *ha = vha->hw;
2510 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1061,
2513 if (vha->vp_idx && vha->qpair)
2514 req = vha->qpair->req;
2520 ql_log(ql_log_warn, vha, 0x1062,
2537 lg->vp_index = vha->vp_idx;
2538 rval = qla2x00_issue_iocb_timeout(vha, lg, lg_dma, 0,
2541 ql_dbg(ql_dbg_mbx, vha, 0x1063,
2544 ql_dbg(ql_dbg_mbx, vha, 0x1064,
2552 ql_dbg(ql_dbg_mbx, vha, 0x1065,
2583 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1066,
2635 qla2x00_login_fabric(scsi_qla_host_t *vha, uint16_t loop_id, uint8_t domain,
2641 struct qla_hw_data *ha = vha->hw;
2643 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1067,
2661 rval = qla2x00_mailbox_command(vha, mcp);
2687 ql_dbg(ql_dbg_mbx, vha, 0x1068,
2692 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1069,
2716 qla2x00_login_local_device(scsi_qla_host_t *vha, fc_port_t *fcport,
2722 struct qla_hw_data *ha = vha->hw;
2724 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x106a,
2728 return qla24xx_login_fabric(vha, fcport->loop_id,
2742 rval = qla2x00_mailbox_command(vha, mcp);
2762 ql_dbg(ql_dbg_mbx, vha, 0x106b,
2767 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x106c,
2775 qla24xx_fabric_logout(scsi_qla_host_t *vha, uint16_t loop_id, uint8_t domain,
2781 struct qla_hw_data *ha = vha->hw;
2784 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x106d,
2789 ql_log(ql_log_warn, vha, 0x106e,
2794 req = vha->req;
2805 lg->vp_index = vha->vp_idx;
2806 rval = qla2x00_issue_iocb_timeout(vha, lg, lg_dma, 0,
2809 ql_dbg(ql_dbg_mbx, vha, 0x106f,
2812 ql_dbg(ql_dbg_mbx, vha, 0x1070,
2817 ql_dbg(ql_dbg_mbx, vha, 0x1071,
2824 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1072,
2850 qla2x00_fabric_logout(scsi_qla_host_t *vha, uint16_t loop_id, uint8_t domain,
2857 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1073,
2862 if (HAS_EXTENDED_IDS(vha->hw)) {
2873 rval = qla2x00_mailbox_command(vha, mcp);
2877 ql_dbg(ql_dbg_mbx, vha, 0x1074,
2881 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1075,
2904 qla2x00_full_login_lip(scsi_qla_host_t *vha)
2910 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1076,
2914 mcp->mb[1] = IS_FWI2_CAPABLE(vha->hw) ? BIT_4 : 0;
2921 rval = qla2x00_mailbox_command(vha, mcp);
2925 ql_dbg(ql_dbg_mbx, vha, 0x1077, "Failed=%x.\n", rval);
2928 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1078,
2948 qla2x00_get_id_list(scsi_qla_host_t *vha, void *id_list, dma_addr_t id_list_dma,
2955 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1079,
2963 if (IS_FWI2_CAPABLE(vha->hw)) {
2969 mcp->mb[9] = vha->vp_idx;
2981 rval = qla2x00_mailbox_command(vha, mcp);
2985 ql_dbg(ql_dbg_mbx, vha, 0x107a, "Failed=%x.\n", rval);
2988 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x107b,
3009 qla2x00_get_resource_cnts(scsi_qla_host_t *vha)
3011 struct qla_hw_data *ha = vha->hw;
3016 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x107c,
3027 rval = qla2x00_mailbox_command(vha, mcp);
3031 ql_dbg(ql_dbg_mbx, vha, 0x107d,
3034 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x107e,
3070 qla2x00_get_fcal_position_map(scsi_qla_host_t *vha, char *pos_map,
3078 struct qla_hw_data *ha = vha->hw;
3080 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x107f,
3085 ql_log(ql_log_warn, vha, 0x1080,
3100 rval = qla2x00_mailbox_command(vha, mcp);
3103 ql_dbg(ql_dbg_mbx + ql_dbg_buffer, vha, 0x1081,
3106 ql_dump_buffer(ql_dbg_mbx + ql_dbg_buffer, vha, 0x111d,
3117 ql_dbg(ql_dbg_mbx, vha, 0x1082, "Failed=%x.\n", rval);
3119 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1083,
3140 qla2x00_get_link_status(scsi_qla_host_t *vha, uint16_t loop_id,
3148 struct qla_hw_data *ha = vha->hw;
3150 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1084,
3176 rval = qla2x00_mailbox_command(vha, mcp);
3180 ql_dbg(ql_dbg_mbx, vha, 0x1085,
3185 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1086,
3192 ql_dbg(ql_dbg_mbx, vha, 0x1087, "Failed=%x.\n", rval);
3199 qla24xx_get_isp_stats(scsi_qla_host_t *vha, struct link_statistics *stats,
3208 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1088,
3218 mc.mb[9] = vha->vp_idx;
3221 rval = qla24xx_send_mb_cmd(vha, &mc);
3225 ql_dbg(ql_dbg_mbx, vha, 0x1089,
3229 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x108a,
3237 ql_dbg(ql_dbg_mbx, vha, 0x108b, "Failed=%x.\n", rval);
3253 struct scsi_qla_host *vha = fcport->vha;
3254 struct qla_hw_data *ha = vha->hw;
3258 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x108c,
3282 ql_log(ql_log_warn, vha, 0x108d,
3295 abt->vp_index = fcport->vha->vp_idx;
3301 rval = qla2x00_issue_iocb(vha, abt, abt_dma, 0);
3303 ql_dbg(ql_dbg_mbx, vha, 0x108e,
3306 ql_dbg(ql_dbg_mbx, vha, 0x108f,
3311 ql_dbg(ql_dbg_mbx, vha, 0x1090,
3319 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1091,
3347 scsi_qla_host_t *vha;
3352 vha = fcport->vha;
3353 ha = vha->hw;
3354 req = vha->req;
3356 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1092,
3359 if (vha->vp_idx && vha->qpair) {
3361 qpair = vha->qpair;
3367 ql_log(ql_log_warn, vha, 0x1093,
3381 tsk->p.tsk.vp_index = fcport->vha->vp_idx;
3389 rval = qla2x00_issue_iocb(vha, tsk, tsk_dma, 0);
3391 ql_dbg(ql_dbg_mbx, vha, 0x1094,
3394 ql_dbg(ql_dbg_mbx, vha, 0x1095,
3399 ql_dbg(ql_dbg_mbx, vha, 0x1096,
3406 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1097,
3411 ql_dbg(ql_dbg_mbx, vha, 0x1098,
3419 rval2 = qla2x00_marker(vha, ha->base_qpair, fcport->loop_id, l,
3422 ql_dbg(ql_dbg_mbx, vha, 0x1099,
3425 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x109a,
3437 struct qla_hw_data *ha = fcport->vha->hw;
3448 struct qla_hw_data *ha = fcport->vha->hw;
3457 qla2x00_system_error(scsi_qla_host_t *vha)
3462 struct qla_hw_data *ha = vha->hw;
3467 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x109b,
3475 rval = qla2x00_mailbox_command(vha, mcp);
3478 ql_dbg(ql_dbg_mbx, vha, 0x109c, "Failed=%x.\n", rval);
3480 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x109d,
3488 qla2x00_write_serdes_word(scsi_qla_host_t *vha, uint16_t addr, uint16_t data)
3494 if (!IS_QLA25XX(vha->hw) && !IS_QLA2031(vha->hw) &&
3495 !IS_QLA27XX(vha->hw) && !IS_QLA28XX(vha->hw))
3498 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1182,
3503 if (IS_QLA2031(vha->hw))
3513 rval = qla2x00_mailbox_command(vha, mcp);
3516 ql_dbg(ql_dbg_mbx, vha, 0x1183,
3519 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1184,
3527 qla2x00_read_serdes_word(scsi_qla_host_t *vha, uint16_t addr, uint16_t *data)
3533 if (!IS_QLA25XX(vha->hw) && !IS_QLA2031(vha->hw) &&
3534 !IS_QLA27XX(vha->hw) && !IS_QLA28XX(vha->hw))
3537 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1185,
3547 rval = qla2x00_mailbox_command(vha, mcp);
3549 if (IS_QLA2031(vha->hw))
3555 ql_dbg(ql_dbg_mbx, vha, 0x1186,
3558 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1187,
3566 qla8044_write_serdes_word(scsi_qla_host_t *vha, uint32_t addr, uint32_t data)
3572 if (!IS_QLA8044(vha->hw))
3575 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x11a0,
3588 rval = qla2x00_mailbox_command(vha, mcp);
3591 ql_dbg(ql_dbg_mbx, vha, 0x11a1,
3594 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1188,
3602 qla8044_read_serdes_word(scsi_qla_host_t *vha, uint32_t addr, uint32_t *data)
3608 if (!IS_QLA8044(vha->hw))
3611 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1189,
3622 rval = qla2x00_mailbox_command(vha, mcp);
3627 ql_dbg(ql_dbg_mbx, vha, 0x118a,
3630 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x118b,
3639 * @vha: HA context
3647 qla2x00_set_serdes_params(scsi_qla_host_t *vha, uint16_t sw_em_1g,
3654 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x109e,
3666 rval = qla2x00_mailbox_command(vha, mcp);
3670 ql_dbg(ql_dbg_mbx, vha, 0x109f,
3674 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10a0,
3682 qla2x00_stop_firmware(scsi_qla_host_t *vha)
3688 if (!IS_FWI2_CAPABLE(vha->hw))
3691 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10a1,
3700 rval = qla2x00_mailbox_command(vha, mcp);
3703 ql_dbg(ql_dbg_mbx, vha, 0x10a2, "Failed=%x.\n", rval);
3707 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10a3,
3715 qla2x00_enable_eft_trace(scsi_qla_host_t *vha, dma_addr_t eft_dma,
3722 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10a4,
3725 if (!IS_FWI2_CAPABLE(vha->hw))
3728 if (unlikely(pci_channel_offline(vha->hw->pdev)))
3743 rval = qla2x00_mailbox_command(vha, mcp);
3745 ql_dbg(ql_dbg_mbx, vha, 0x10a5,
3749 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10a6,
3757 qla2x00_disable_eft_trace(scsi_qla_host_t *vha)
3763 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10a7,
3766 if (!IS_FWI2_CAPABLE(vha->hw))
3769 if (unlikely(pci_channel_offline(vha->hw->pdev)))
3778 rval = qla2x00_mailbox_command(vha, mcp);
3780 ql_dbg(ql_dbg_mbx, vha, 0x10a8,
3784 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10a9,
3792 qla2x00_enable_fce_trace(scsi_qla_host_t *vha, dma_addr_t fce_dma,
3799 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10aa,
3802 if (!IS_QLA25XX(vha->hw) && !IS_QLA81XX(vha->hw) &&
3803 !IS_QLA83XX(vha->hw) && !IS_QLA27XX(vha->hw) &&
3804 !IS_QLA28XX(vha->hw))
3807 if (unlikely(pci_channel_offline(vha->hw->pdev)))
3826 rval = qla2x00_mailbox_command(vha, mcp);
3828 ql_dbg(ql_dbg_mbx, vha, 0x10ab,
3832 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10ac,
3845 qla2x00_disable_fce_trace(scsi_qla_host_t *vha, uint64_t *wr, uint64_t *rd)
3851 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10ad,
3854 if (!IS_FWI2_CAPABLE(vha->hw))
3857 if (unlikely(pci_channel_offline(vha->hw->pdev)))
3868 rval = qla2x00_mailbox_command(vha, mcp);
3870 ql_dbg(ql_dbg_mbx, vha, 0x10ae,
3874 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10af,
3893 qla2x00_get_idma_speed(scsi_qla_host_t *vha, uint16_t loop_id,
3900 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10b0,
3903 if (!IS_IIDMA_CAPABLE(vha->hw))
3909 mcp->mb[9] = vha->vp_idx;
3914 rval = qla2x00_mailbox_command(vha, mcp);
3924 ql_dbg(ql_dbg_mbx, vha, 0x10b1, "Failed=%x.\n", rval);
3926 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10b2,
3936 qla2x00_set_idma_speed(scsi_qla_host_t *vha, uint16_t loop_id,
3943 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10b3,
3946 if (!IS_IIDMA_CAPABLE(vha->hw))
3953 mcp->mb[9] = vha->vp_idx;
3958 rval = qla2x00_mailbox_command(vha, mcp);
3968 ql_dbg(ql_dbg_mbx, vha, 0x10b4,
3971 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10b5,
3979 qla24xx_report_id_acquisition(scsi_qla_host_t *vha,
3982 struct qla_hw_data *ha = vha->hw;
3989 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10b6,
4003 ql_dbg(ql_dbg_async, vha, 0x10b7,
4007 ql_dbg(ql_dbg_async, vha, 0x10b8,
4012 qla_update_host_map(vha, id);
4016 ql_dbg(ql_dbg_async, vha, 0x10b9,
4022 ql_dbg(ql_dbg_async, vha, 0x5075,
4026 ql_dbg(ql_dbg_async, vha, 0x5075,
4028 vha->port_name);
4033 spin_lock_irqsave(&vha->hw->tgt.sess_lock, flags);
4034 list_for_each_entry(fcport, &vha->vp_fcports, list) {
4039 if (wwn_to_u64(vha->port_name) >
4041 vha->d_id.b24 = 0;
4042 vha->d_id.b.al_pa = 1;
4046 ql_dbg(ql_dbg_async, vha, 0x5075,
4048 vha->d_id.b24, id.b24);
4050 ql_dbg(ql_dbg_async, vha, 0x5075,
4056 fcport = qla2x00_find_fcport_by_wwpn(vha,
4058 spin_unlock_irqrestore(&vha->hw->tgt.sess_lock, flags);
4068 fcport->login_retry = vha->hw->login_retry_count;
4070 if (vha->flags.nvme_enabled)
4073 if (wwn_to_u64(vha->port_name) >
4081 &vha->dpc_flags);
4090 qla24xx_post_newsess_work(vha, &id,
4099 set_bit(N2N_LOGIN_NEEDED, &vha->dpc_flags);
4114 vha->flags.bbcr_enable = (rptid_entry->u.f1.bbcr & 0xf) != 0;
4119 if (qla_ini_mode_enabled(vha) &&
4123 memcpy(vha->port_name,
4128 qla_update_host_map(vha, id);
4131 set_bit(REGISTER_FC4_NEEDED, &vha->dpc_flags);
4132 set_bit(REGISTER_FDMI_NEEDED, &vha->dpc_flags);
4136 ql_dbg(ql_dbg_mbx, vha, 0x10ba,
4165 set_bit(VP_DPC_NEEDED, &vha->dpc_flags);
4166 qla2xxx_wake_dpc(vha);
4168 ql_dbg(ql_dbg_async, vha, 0x505f,
4173 ql_dbg(ql_dbg_async, vha, 0x5075,
4180 vha->d_id.b.domain = rptid_entry->port_id[2];
4181 vha->d_id.b.area = rptid_entry->port_id[1];
4182 vha->d_id.b.al_pa = rptid_entry->port_id[0];
4186 qla_update_vp_map(vha, SET_AL_PA);
4189 list_for_each_entry(fcport, &vha->vp_fcports, list) {
4194 fcport = qla2x00_find_fcport_by_wwpn(vha,
4198 fcport->login_retry = vha->hw->login_retry_count;
4225 * Change VP configuration for vha
4228 * vha = adapter block pointer.
4237 qla24xx_modify_vp_config(scsi_qla_host_t *vha)
4242 struct qla_hw_data *ha = vha->hw;
4247 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10bb,
4252 ql_log(ql_log_warn, vha, 0x10bc,
4261 vpmod->vp_index1 = vha->vp_idx;
4264 qlt_modify_vp_config(vha, vpmod);
4266 memcpy(vpmod->node_name_idx1, vha->node_name, WWN_SIZE);
4267 memcpy(vpmod->port_name_idx1, vha->port_name, WWN_SIZE);
4272 ql_dbg(ql_dbg_mbx, vha, 0x10bd,
4275 ql_dbg(ql_dbg_mbx, vha, 0x10be,
4280 ql_dbg(ql_dbg_mbx, vha, 0x10bf,
4286 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10c0,
4288 fc_vport_set_state(vha->fc_vport, FC_VPORT_INITIALIZING);
4317 qla2x00_send_change_request(scsi_qla_host_t *vha, uint16_t format,
4324 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10c7,
4334 rval = qla2x00_mailbox_command(vha, mcp);
4347 qla2x00_dump_ram(scsi_qla_host_t *vha, dma_addr_t req_dma, uint32_t addr,
4354 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1009,
4357 if (MSW(addr) || IS_FWI2_CAPABLE(vha->hw)) {
4372 if (IS_FWI2_CAPABLE(vha->hw)) {
4384 rval = qla2x00_mailbox_command(vha, mcp);
4387 ql_dbg(ql_dbg_mbx, vha, 0x1008,
4390 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1007,
4406 qla84xx_verify_chip(struct scsi_qla_host *vha, uint16_t *status)
4413 struct qla_hw_data *ha = vha->hw;
4415 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10c8,
4437 ql_dbg(ql_dbg_mbx + ql_dbg_buffer, vha, 0x111c,
4439 ql_dump_buffer(ql_dbg_mbx + ql_dbg_buffer, vha, 0x111e,
4442 rval = qla2x00_issue_iocb_timeout(vha, mn, mn_dma, 0, 120);
4444 ql_dbg(ql_dbg_mbx, vha, 0x10cb,
4449 ql_dbg(ql_dbg_mbx + ql_dbg_buffer, vha, 0x1110,
4451 ql_dump_buffer(ql_dbg_mbx + ql_dbg_buffer, vha, 0x1118,
4457 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10ce,
4463 ql_dbg(ql_dbg_mbx, vha, 0x10cf,
4471 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10d0,
4488 ql_dbg(ql_dbg_mbx, vha, 0x10d1,
4491 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10d2,
4499 qla25xx_init_req_que(struct scsi_qla_host *vha, struct req_que *req)
4505 struct qla_hw_data *ha = vha->hw;
4510 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10d3,
4559 rval = qla2x00_mailbox_command(vha, mcp);
4561 ql_dbg(ql_dbg_mbx, vha, 0x10d4,
4564 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10d5,
4572 qla25xx_init_rsp_que(struct scsi_qla_host *vha, struct rsp_que *rsp)
4578 struct qla_hw_data *ha = vha->hw;
4583 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10d6,
4631 rval = qla2x00_mailbox_command(vha, mcp);
4633 ql_dbg(ql_dbg_mbx, vha, 0x10d7,
4636 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10d8,
4644 qla81xx_idc_ack(scsi_qla_host_t *vha, uint16_t *mb)
4650 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10d9,
4659 rval = qla2x00_mailbox_command(vha, mcp);
4662 ql_dbg(ql_dbg_mbx, vha, 0x10da,
4665 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10db,
4673 qla81xx_fac_get_sector_size(scsi_qla_host_t *vha, uint32_t *sector_size)
4679 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10dc,
4682 if (!IS_QLA81XX(vha->hw) && !IS_QLA83XX(vha->hw) &&
4683 !IS_QLA27XX(vha->hw) && !IS_QLA28XX(vha->hw))
4692 rval = qla2x00_mailbox_command(vha, mcp);
4695 ql_dbg(ql_dbg_mbx, vha, 0x10dd,
4699 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10de,
4708 qla81xx_fac_do_write_enable(scsi_qla_host_t *vha, int enable)
4714 if (!IS_QLA81XX(vha->hw) && !IS_QLA83XX(vha->hw) &&
4715 !IS_QLA27XX(vha->hw) && !IS_QLA28XX(vha->hw))
4718 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10df,
4728 rval = qla2x00_mailbox_command(vha, mcp);
4731 ql_dbg(ql_dbg_mbx, vha, 0x10e0,
4735 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10e1,
4743 qla81xx_fac_erase_sector(scsi_qla_host_t *vha, uint32_t start, uint32_t finish)
4749 if (!IS_QLA81XX(vha->hw) && !IS_QLA83XX(vha->hw) &&
4750 !IS_QLA27XX(vha->hw) && !IS_QLA28XX(vha->hw))
4753 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10e2,
4766 rval = qla2x00_mailbox_command(vha, mcp);
4769 ql_dbg(ql_dbg_mbx, vha, 0x10e3,
4773 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10e4,
4781 qla81xx_fac_semaphore_access(scsi_qla_host_t *vha, int lock)
4786 struct qla_hw_data *ha = vha->hw;
4792 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10e2,
4802 rval = qla2x00_mailbox_command(vha, mcp);
4805 ql_dbg(ql_dbg_mbx, vha, 0x10e3,
4809 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10e4,
4817 qla81xx_restart_mpi_firmware(scsi_qla_host_t *vha)
4823 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10e5,
4831 rval = qla2x00_mailbox_command(vha, mcp);
4834 ql_dbg(ql_dbg_mbx, vha, 0x10e6,
4838 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10e7,
4846 qla82xx_set_driver_version(scsi_qla_host_t *vha, char *version)
4854 struct qla_hw_data *ha = vha->hw;
4859 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x117b,
4879 rval = qla2x00_mailbox_command(vha, mcp);
4882 ql_dbg(ql_dbg_mbx, vha, 0x117c,
4885 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x117d,
4893 qla25xx_set_driver_version(scsi_qla_host_t *vha, char *version)
4902 struct qla_hw_data *ha = vha->hw;
4908 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x117e,
4913 ql_log(ql_log_warn, vha, 0x117f,
4936 rval = qla2x00_mailbox_command(vha, mcp);
4939 ql_dbg(ql_dbg_mbx, vha, 0x1180,
4942 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1181,
4952 qla24xx_get_port_login_templ(scsi_qla_host_t *vha, dma_addr_t buf_dma,
4960 if (!IS_FWI2_CAPABLE(vha->hw))
4963 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1159,
4977 rval = qla2x00_mailbox_command(vha, mcp);
4980 ql_dbg(ql_dbg_mbx, vha, 0x115a,
4983 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x115b,
4995 qla25xx_set_els_cmds_supported(scsi_qla_host_t *vha)
5005 struct qla_hw_data *ha = vha->hw;
5011 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1197,
5017 ql_log(ql_log_warn, vha, 0x7101,
5053 rval = qla2x00_mailbox_command(vha, mcp);
5056 ql_dbg(ql_dbg_mbx, vha, 0x118d,
5059 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x118c,
5070 qla2x00_read_asic_temperature(scsi_qla_host_t *vha, uint16_t *temp)
5076 if (!IS_FWI2_CAPABLE(vha->hw))
5079 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1159,
5088 rval = qla2x00_mailbox_command(vha, mcp);
5092 ql_dbg(ql_dbg_mbx, vha, 0x115a,
5095 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x115b,
5103 qla2x00_read_sfp(scsi_qla_host_t *vha, dma_addr_t sfp_dma, uint8_t *sfp,
5109 struct qla_hw_data *ha = vha->hw;
5111 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10e8,
5133 rval = qla2x00_mailbox_command(vha, mcp);
5139 ql_dbg(ql_dbg_mbx, vha, 0x10e9,
5146 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10ea,
5154 qla2x00_write_sfp(scsi_qla_host_t *vha, dma_addr_t sfp_dma, uint8_t *sfp,
5160 struct qla_hw_data *ha = vha->hw;
5162 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10eb,
5187 rval = qla2x00_mailbox_command(vha, mcp);
5190 ql_dbg(ql_dbg_mbx, vha, 0x10ec,
5193 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10ed,
5201 qla2x00_get_xgmac_stats(scsi_qla_host_t *vha, dma_addr_t stats_dma,
5208 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10ee,
5211 if (!IS_CNA_CAPABLE(vha->hw))
5224 rval = qla2x00_mailbox_command(vha, mcp);
5227 ql_dbg(ql_dbg_mbx, vha, 0x10ef,
5231 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10f0,
5242 qla2x00_get_dcbx_params(scsi_qla_host_t *vha, dma_addr_t tlv_dma,
5249 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10f1,
5252 if (!IS_CNA_CAPABLE(vha->hw))
5266 rval = qla2x00_mailbox_command(vha, mcp);
5269 ql_dbg(ql_dbg_mbx, vha, 0x10f2,
5273 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10f3,
5281 qla2x00_read_ram_word(scsi_qla_host_t *vha, uint32_t risc_addr, uint32_t *data)
5287 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10f4,
5290 if (!IS_FWI2_CAPABLE(vha->hw))
5300 rval = qla2x00_mailbox_command(vha, mcp);
5302 ql_dbg(ql_dbg_mbx, vha, 0x10f5,
5305 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10f6,
5314 qla2x00_loopback_test(scsi_qla_host_t *vha, struct msg_echo_lb *mreq,
5321 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10f7,
5350 if (IS_CNA_CAPABLE(vha->hw))
5358 rval = qla2x00_mailbox_command(vha, mcp);
5361 ql_dbg(ql_dbg_mbx, vha, 0x10f8,
5366 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10f9,
5376 qla2x00_echo_test(scsi_qla_host_t *vha, struct msg_echo_lb *mreq,
5382 struct qla_hw_data *ha = vha->hw;
5384 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10fa,
5392 mcp->mb[2] = vha->fcoe_fcf_idx;
5423 rval = qla2x00_mailbox_command(vha, mcp);
5426 ql_dbg(ql_dbg_mbx, vha, 0x10fb,
5430 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10fc,
5440 qla84xx_reset_chip(scsi_qla_host_t *vha, uint16_t enable_diagnostic)
5446 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10fd,
5455 rval = qla2x00_mailbox_command(vha, mcp);
5458 ql_dbg(ql_dbg_mbx, vha, 0x10fe, "Failed=%x.\n", rval);
5460 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10ff,
5467 qla2x00_write_ram_word(scsi_qla_host_t *vha, uint32_t risc_addr, uint32_t data)
5473 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1100,
5476 if (!IS_FWI2_CAPABLE(vha->hw))
5488 rval = qla2x00_mailbox_command(vha, mcp);
5490 ql_dbg(ql_dbg_mbx, vha, 0x1101,
5494 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1102,
5502 qla81xx_write_mpi_register(scsi_qla_host_t *vha, uint16_t *mb)
5507 struct qla_hw_data *ha = vha->hw;
5512 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1103,
5553 ql_dbg(ql_dbg_mbx, vha, 0x1104,
5556 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1105,
5565 qla2x00_set_data_rate(scsi_qla_host_t *vha, uint16_t mode)
5570 struct qla_hw_data *ha = vha->hw;
5573 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1106,
5590 ql_log(ql_log_warn, vha, 0x1199,
5607 rval = qla2x00_mailbox_command(vha, mcp);
5609 ql_dbg(ql_dbg_mbx, vha, 0x1107,
5613 ql_dbg(ql_dbg_mbx, vha, 0x1179,
5616 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1108,
5624 qla2x00_get_data_rate(scsi_qla_host_t *vha)
5629 struct qla_hw_data *ha = vha->hw;
5631 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1106,
5645 rval = qla2x00_mailbox_command(vha, mcp);
5647 ql_dbg(ql_dbg_mbx, vha, 0x1107,
5655 ql_log(ql_log_info, vha, 0x11a2,
5659 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1108,
5669 qla81xx_get_port_config(scsi_qla_host_t *vha, uint16_t *mb)
5674 struct qla_hw_data *ha = vha->hw;
5676 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1109,
5688 rval = qla2x00_mailbox_command(vha, mcp);
5691 ql_dbg(ql_dbg_mbx, vha, 0x110a,
5697 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x110b,
5704 qla81xx_set_port_config(scsi_qla_host_t *vha, uint16_t *mb)
5710 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x110c,
5720 rval = qla2x00_mailbox_command(vha, mcp);
5723 ql_dbg(ql_dbg_mbx, vha, 0x110d,
5726 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x110e,
5734 qla24xx_set_fcp_prio(scsi_qla_host_t *vha, uint16_t loop_id, uint16_t priority,
5740 struct qla_hw_data *ha = vha->hw;
5742 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x110f,
5755 mcp->mb[9] = vha->vp_idx;
5760 rval = qla2x00_mailbox_command(vha, mcp);
5769 ql_dbg(ql_dbg_mbx, vha, 0x10cd, "Failed=%x.\n", rval);
5771 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10cc,
5779 qla2x00_get_thermal_temp(scsi_qla_host_t *vha, uint16_t *temp)
5782 struct qla_hw_data *ha = vha->hw;
5786 ql_dbg(ql_dbg_mbx, vha, 0x1150,
5794 rval = qla2x00_read_sfp(vha, 0, &byte,
5801 rval = qla2x00_read_sfp(vha, 0, &byte,
5806 ql_dbg(ql_dbg_mbx, vha, 0x10c9,
5812 *temp = qla82xx_read_temperature(vha);
5816 *temp = qla8044_read_temperature(vha);
5821 rval = qla2x00_read_asic_temperature(vha, temp);
5826 qla82xx_mbx_intr_enable(scsi_qla_host_t *vha)
5829 struct qla_hw_data *ha = vha->hw;
5833 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1017,
5848 rval = qla2x00_mailbox_command(vha, mcp);
5850 ql_dbg(ql_dbg_mbx, vha, 0x1016,
5853 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x100e,
5861 qla82xx_mbx_intr_disable(scsi_qla_host_t *vha)
5864 struct qla_hw_data *ha = vha->hw;
5868 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x100d,
5883 rval = qla2x00_mailbox_command(vha, mcp);
5885 ql_dbg(ql_dbg_mbx, vha, 0x100c,
5888 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x100b,
5896 qla82xx_md_get_template_size(scsi_qla_host_t *vha)
5898 struct qla_hw_data *ha = vha->hw;
5903 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x111f,
5918 rval = qla2x00_mailbox_command(vha, mcp);
5922 ql_dbg(ql_dbg_mbx, vha, 0x1120,
5927 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1121,
5931 ql_dbg(ql_dbg_mbx, vha, 0x1122,
5940 qla82xx_md_get_template(scsi_qla_host_t *vha)
5942 struct qla_hw_data *ha = vha->hw;
5947 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1123,
5953 ql_log(ql_log_warn, vha, 0x1124,
5975 rval = qla2x00_mailbox_command(vha, mcp);
5978 ql_dbg(ql_dbg_mbx, vha, 0x1125,
5983 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1126,
5989 qla8044_md_get_template(scsi_qla_host_t *vha)
5991 struct qla_hw_data *ha = vha->hw;
5997 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0xb11f,
6003 ql_log(ql_log_warn, vha, 0xb11b,
6027 rval = qla2x00_mailbox_command(vha, mcp);
6030 ql_dbg(ql_dbg_mbx, vha, 0xb11c,
6036 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0xb11d,
6044 qla81xx_set_led_config(scsi_qla_host_t *vha, uint16_t *led_cfg)
6047 struct qla_hw_data *ha = vha->hw;
6054 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1133,
6075 rval = qla2x00_mailbox_command(vha, mcp);
6077 ql_dbg(ql_dbg_mbx, vha, 0x1134,
6080 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1135,
6088 qla81xx_get_led_config(scsi_qla_host_t *vha, uint16_t *led_cfg)
6091 struct qla_hw_data *ha = vha->hw;
6098 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1136,
6111 rval = qla2x00_mailbox_command(vha, mcp);
6113 ql_dbg(ql_dbg_mbx, vha, 0x1137,
6124 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1138,
6132 qla82xx_mbx_beacon_ctl(scsi_qla_host_t *vha, int enable)
6135 struct qla_hw_data *ha = vha->hw;
6142 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1127,
6157 rval = qla2x00_mailbox_command(vha, mcp);
6159 ql_dbg(ql_dbg_mbx, vha, 0x1128,
6162 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1129,
6170 qla83xx_wr_reg(scsi_qla_host_t *vha, uint32_t reg, uint32_t data)
6173 struct qla_hw_data *ha = vha->hw;
6180 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1130,
6193 rval = qla2x00_mailbox_command(vha, mcp);
6196 ql_dbg(ql_dbg_mbx, vha, 0x1131,
6199 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1132,
6207 qla2x00_port_logout(scsi_qla_host_t *vha, struct fc_port *fcport)
6210 struct qla_hw_data *ha = vha->hw;
6215 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x113b,
6221 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x113c,
6232 rval = qla2x00_mailbox_command(vha, mcp);
6234 ql_dbg(ql_dbg_mbx, vha, 0x113d,
6237 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x113e,
6244 qla83xx_rd_reg(scsi_qla_host_t *vha, uint32_t reg, uint32_t *data)
6249 struct qla_hw_data *ha = vha->hw;
6255 ql_dbg(ql_dbg_mbx, vha, 0x114b, "Entered %s.\n", __func__);
6265 rval = qla2x00_mailbox_command(vha, mcp);
6268 ql_dbg(ql_dbg_mbx, vha, 0x114c,
6280 ql_dbg(ql_dbg_mbx, vha, 0x1141,
6288 ql_dbg(ql_dbg_mbx, vha, 0x1142, "Done %s.\n", __func__);
6295 qla83xx_restart_nic_firmware(scsi_qla_host_t *vha)
6300 struct qla_hw_data *ha = vha->hw;
6305 ql_dbg(ql_dbg_mbx, vha, 0x1143, "Entered %s.\n", __func__);
6312 rval = qla2x00_mailbox_command(vha, mcp);
6315 ql_dbg(ql_dbg_mbx, vha, 0x1144,
6318 qla2xxx_dump_fw(vha);
6320 ql_dbg(ql_dbg_mbx, vha, 0x1145, "Done %s.\n", __func__);
6327 qla83xx_access_control(scsi_qla_host_t *vha, uint16_t options,
6334 struct qla_hw_data *ha = vha->hw;
6339 ql_dbg(ql_dbg_mbx, vha, 0x1146, "Entered %s.\n", __func__);
6356 rval = qla2x00_mailbox_command(vha, mcp);
6359 ql_dbg(ql_dbg_mbx, vha, 0x1147,
6363 qla2xxx_dump_fw(vha);
6368 ql_dbg(ql_dbg_mbx, vha, 0x1148,
6371 ql_dbg(ql_dbg_mbx, vha, 0x1149,
6374 ql_dbg(ql_dbg_mbx, vha, 0x114a, "Done %s.\n", __func__);
6381 qla2x00_dump_mctp_data(scsi_qla_host_t *vha, dma_addr_t req_dma, uint32_t addr,
6388 if (!IS_MCTP_CAPABLE(vha->hw))
6391 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x114f,
6413 rval = qla2x00_mailbox_command(vha, mcp);
6416 ql_dbg(ql_dbg_mbx, vha, 0x114e,
6419 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x114d,
6427 qla26xx_dport_diagnostics(scsi_qla_host_t *vha,
6435 if (!IS_QLA83XX(vha->hw) && !IS_QLA27XX(vha->hw) &&
6436 !IS_QLA28XX(vha->hw))
6439 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x119f,
6442 dd_dma = dma_map_single(&vha->hw->pdev->dev,
6444 if (dma_mapping_error(&vha->hw->pdev->dev, dd_dma)) {
6445 ql_log(ql_log_warn, vha, 0x1194, "Failed to map dma buffer.\n");
6463 rval = qla2x00_mailbox_command(vha, mcp);
6466 ql_dbg(ql_dbg_mbx, vha, 0x1195, "Failed=%x.\n", rval);
6468 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1196,
6472 dma_unmap_single(&vha->hw->pdev->dev, dd_dma,
6479 qla26xx_dport_diagnostics_v2(scsi_qla_host_t *vha,
6487 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x119f,
6490 dd_dma = dma_map_single(&vha->hw->pdev->dev,
6492 if (dma_mapping_error(&vha->hw->pdev->dev, dd_dma)) {
6493 ql_log(ql_log_warn, vha, 0x1194,
6512 rval = qla2x00_mailbox_command(vha, mcp);
6515 ql_dbg(ql_dbg_mbx, vha, 0x1195, "Failed=%x.\n", rval);
6517 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1196,
6521 dma_unmap_single(&vha->hw->pdev->dev, dd_dma, size, DMA_FROM_DEVICE);
6539 int qla24xx_send_mb_cmd(struct scsi_qla_host *vha, mbx_cmd_t *mcp)
6545 if (!vha->hw->flags.fw_started)
6549 sp = qla2x00_get_sp(vha, NULL, GFP_KERNEL);
6558 qla2x00_init_async_sp(sp, qla2x00_get_async_timeout(vha) + 2,
6565 ql_dbg(ql_dbg_mbx, vha, 0x1018,
6571 ql_dbg(ql_dbg_mbx, vha, 0x113f, "MB:%s hndl %x submitted\n",
6580 ql_dbg(ql_dbg_mbx, vha, 0x1140, "%s: %s Timeout. %x.\n",
6584 ql_dbg(ql_dbg_mbx, vha, 0x119d, "%s: %s done.\n",
6588 ql_dbg(ql_dbg_mbx, vha, 0x119e, "%s: %s Failed. %x.\n",
6604 int qla24xx_gpdb_wait(struct scsi_qla_host *vha, fc_port_t *fcport, u8 opt)
6609 struct qla_hw_data *ha = vha->hw;
6612 if (!vha->hw->flags.fw_started)
6617 ql_log(ql_log_warn, vha, 0xd047,
6629 mc.mb[9] = vha->vp_idx;
6632 rval = qla24xx_send_mb_cmd(vha, &mc);
6634 ql_dbg(ql_dbg_mbx, vha, 0x1193,
6639 rval = __qla24xx_parse_gpdb(vha, fcport, pd);
6641 ql_dbg(ql_dbg_mbx, vha, 0x1197, "%s: %8phC done\n",
6651 int __qla24xx_parse_gpdb(struct scsi_qla_host *vha, fc_port_t *fcport,
6658 if (NVME_TARGET(vha->hw, fcport)) {
6668 ql_dbg(ql_dbg_mbx, vha, 0x119a,
6693 ql_dbg(ql_dbg_disc, vha, 0x2062,
6699 if (NVME_TARGET(vha->hw, fcport)) {
6731 int qla24xx_gidlist_wait(struct scsi_qla_host *vha,
6737 if (!vha->hw->flags.fw_started)
6747 mc.mb[9] = vha->vp_idx;
6749 rval = qla24xx_send_mb_cmd(vha, &mc);
6751 ql_dbg(ql_dbg_mbx, vha, 0x119b,
6755 ql_dbg(ql_dbg_mbx, vha, 0x119c,
6762 int qla27xx_set_zio_threshold(scsi_qla_host_t *vha, uint16_t value)
6768 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1200,
6780 rval = qla2x00_mailbox_command(vha, mcp);
6782 ql_dbg(ql_dbg_mbx, vha, 0x1201, "%s %x\n",
6788 int qla27xx_get_zio_threshold(scsi_qla_host_t *vha, uint16_t *value)
6794 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1203,
6805 rval = qla2x00_mailbox_command(vha, mcp);
6809 ql_dbg(ql_dbg_mbx, vha, 0x1205, "%s %x\n",
6816 qla2x00_read_sfp_dev(struct scsi_qla_host *vha, char *buf, int count)
6818 struct qla_hw_data *ha = vha->hw;
6837 rval = qla2x00_read_sfp(vha, phys_addr, sfp_data,
6840 ql_log(ql_log_warn, vha, 0x706d,
6867 int qla24xx_res_count_wait(struct scsi_qla_host *vha,
6873 if (!vha->hw->flags.fw_started)
6879 rval = qla24xx_send_mb_cmd(vha, &mc);
6881 ql_dbg(ql_dbg_mbx, vha, 0xffff,
6889 ql_dbg(ql_dbg_mbx, vha, 0xffff,
6896 int qla28xx_secure_flash_update(scsi_qla_host_t *vha, uint16_t opts,
6919 rval = qla2x00_mailbox_command(vha, mcp);
6922 ql_dbg(ql_dbg_mbx, vha, 0xffff, "%s(%ld): failed rval 0x%x, %x %x %x",
6923 __func__, vha->host_no, rval, mcp->mb[0], mcp->mb[1],
6930 int qla2xxx_write_remote_register(scsi_qla_host_t *vha, uint32_t addr,
6937 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10e8,
6949 rval = qla2x00_mailbox_command(vha, mcp);
6952 ql_dbg(ql_dbg_mbx, vha, 0x10e9,
6955 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10ea,
6962 int qla2xxx_read_remote_register(scsi_qla_host_t *vha, uint32_t addr,
6969 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10e8,
6979 rval = qla2x00_mailbox_command(vha, mcp);
6984 ql_dbg(ql_dbg_mbx, vha, 0x10e9,
6987 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10ea,
6995 ql26xx_led_config(scsi_qla_host_t *vha, uint16_t options, uint16_t *led)
6997 struct qla_hw_data *ha = vha->hw;
7005 ql_dbg(ql_dbg_mbx, vha, 0x7070, "Entered %s (options=%x).\n",
7030 rval = qla2x00_mailbox_command(vha, mcp);
7032 ql_dbg(ql_dbg_mbx, vha, 0x7071, "Failed %s %x (mb=%x,%x)\n",
7039 ql_dbg(ql_dbg_mbx, vha, 0x7072, "Done %s\n", __func__);
7044 ql_dbg(ql_dbg_mbx, vha, 0x7073, "Done %s (led=%x,%x,%x)\n",
7055 * @vha: host adapter pointer
7058 void qla_no_op_mb(struct scsi_qla_host *vha)
7070 rval = qla2x00_mailbox_command(vha, mcp);
7073 ql_dbg(ql_dbg_async, vha, 0x7071,
7078 int qla_mailbox_passthru(scsi_qla_host_t *vha,
7096 rval = qla2x00_mailbox_command(vha, mcp);
7099 ql_dbg(ql_dbg_mbx, vha, 0xf0a2,
7102 ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0xf0a3, "Done %s.\n",