37 unsigned long flags = 0;
54 "error_state is greater than pci_channel_io_frozen, "
61 "Device in failed state, exiting.\n");
66 io_lock_on = base_vha->
flags.init_done;
72 if (ha->
flags.pci_channel_io_perm_failure) {
74 "Perm failure on EEH timeout MBX, exiting.\n");
82 "FW hung = %d.\n", ha->
flags.isp82xx_fw_hung);
94 "Cmd access timeout, cmd=0x%x, Exiting.\n",
99 ha->
flags.mbox_busy = 1;
104 "Prepare to issue mbox cmd=0x%x.\n", mcp->
mb[0]);
117 command = mcp->
mb[0];
120 for (cnt = 0; cnt < ha->
mbx_count; cnt++) {
133 "Loaded MBX registers (displayed in bytes) =.\n");
145 "I/O Address = %p.\n", optr);
149 ha->
flags.mbox_int = 0;
154 "Going to unlock irq & waiting for interrupts. "
155 "jiffies=%lx.\n", jiffies);
165 spin_unlock_irqrestore(&ha->hardware_lock,
167 ha->
flags.mbox_busy = 0;
169 "Pending mailbox timeout, exiting.\n");
178 spin_unlock_irqrestore(&ha->hardware_lock, flags);
186 "Cmd=%x Polling Mode.\n", command);
191 spin_unlock_irqrestore(&ha->hardware_lock,
193 ha->
flags.mbox_busy = 0;
195 "Pending mailbox timeout, exiting.\n");
204 spin_unlock_irqrestore(&ha->hardware_lock, flags);
207 while (!ha->
flags.mbox_int) {
214 if (!ha->
flags.mbox_int &&
221 (
uint)((jiffies - (wait_time - (mcp->
tov *
HZ)))/
HZ));
225 if (ha->
flags.mbox_int) {
229 "Cmd=%x completed.\n", command);
232 ha->
flags.mbox_int = 0;
236 ha->
flags.mbox_busy = 0;
242 "FW hung = %d.\n", ha->
flags.isp82xx_fw_hung);
274 "MBX Command timeout for cmd %x, iocontrol=%x jiffies=%lx "
275 "mb[0]=0x%x\n", command, ictrl, jiffies, mb0);
287 ha->
flags.mbox_busy = 0;
294 "Checking for additional resp interrupt.\n");
303 ha->
flags.eeh_busy) {
306 "Timeout, schedule isp_abort_needed.\n");
313 "disabling pause transmit on port "
321 "Mailbox cmd timeout occurred, cmd=0x%x, "
322 "mb[0]=0x%x, eeh_busy=0x%x. Scheduling ISP "
323 "abort.\n", command, mcp->
mb[0],
328 }
else if (!abort_active) {
331 "Timeout, calling abort_isp.\n");
338 "disabling pause transmit on port "
346 "Mailbox cmd timeout occurred, cmd=0x%x, "
347 "mb[0]=0x%x. Scheduling ISP abort ",
348 command, mcp->
mb[0]);
353 if (ha->
isp_ops->abort_isp(vha)) {
360 "Finished abort_isp.\n");
373 "**** Failed mbx[0]=%x, mb[1]=%x, mb[2]=%x, mb[3]=%x, cmd=%x ****.\n",
374 mcp->
mb[0], mcp->
mb[1], mcp->
mb[2], mcp->
mb[3], command);
392 "Entered %s.\n", __func__);
396 mcp->
mb[8] =
MSW(risc_addr);
402 mcp->
mb[1] =
LSW(risc_addr);
403 mcp->
mb[2] =
MSW(req_dma);
404 mcp->
mb[3] =
LSW(req_dma);
409 mcp->
mb[4] =
MSW(risc_code_size);
410 mcp->
mb[5] =
LSW(risc_code_size);
413 mcp->
mb[4] =
LSW(risc_code_size);
420 rval = qla2x00_mailbox_command(vha, mcp);
424 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
427 "Done %s.\n", __func__);
433 #define EXTENDED_BB_CREDITS BIT_0
458 "Entered %s.\n", __func__);
464 mcp->
mb[1] =
MSW(risc_addr);
465 mcp->
mb[2] =
LSW(risc_addr);
476 mcp->
mb[1] =
LSW(risc_addr);
486 rval = qla2x00_mailbox_command(vha, mcp);
490 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
494 "Done exchanges=%x.\n", mcp->
mb[1]);
497 "Done %s.\n", __func__);
529 "Entered %s.\n", __func__);
540 rval = qla2x00_mailbox_command(vha, mcp);
567 "%s: FW_attributes Upper: 0x%x, Lower: 0x%x.\n",
568 __func__, mcp->
mb[15], mcp->
mb[6]);
570 "%s: Ext_FwAttributes Upper: 0x%x, Lower: 0x%x.\n",
571 __func__, mcp->
mb[17], mcp->
mb[16]);
581 "Done %s.\n", __func__);
608 "Entered %s.\n", __func__);
615 rval = qla2x00_mailbox_command(vha, mcp);
621 fwopts[0] = mcp->
mb[0];
622 fwopts[1] = mcp->
mb[1];
623 fwopts[2] = mcp->
mb[2];
624 fwopts[3] = mcp->
mb[3];
627 "Done %s.\n", __func__);
656 "Entered %s.\n", __func__);
659 mcp->
mb[1] = fwopts[1];
660 mcp->
mb[2] = fwopts[2];
661 mcp->
mb[3] = fwopts[3];
667 mcp->
mb[10] = fwopts[10];
668 mcp->
mb[11] = fwopts[11];
674 rval = qla2x00_mailbox_command(vha, mcp);
676 fwopts[0] = mcp->
mb[0];
681 "Failed=%x (%x/%x).\n", rval, mcp->
mb[0], mcp->
mb[1]);
685 "Done %s.\n", __func__);
714 "Entered %s.\n", __func__);
728 rval = qla2x00_mailbox_command(vha, mcp);
731 if (mcp->
mb[1] != 0xAAAA || mcp->
mb[2] != 0x5555 ||
732 mcp->
mb[3] != 0xAA55 || mcp->
mb[4] != 0x55AA)
734 if (mcp->
mb[5] != 0xA5A5 || mcp->
mb[6] != 0x5A5A ||
735 mcp->
mb[7] != 0x2525)
745 "Done %s.\n", __func__);
774 "Entered %s.\n", __func__);
780 mcp->
mb[1] =
MSW(risc_addr);
781 mcp->
mb[2] =
LSW(risc_addr);
785 mcp->
mb[1] =
LSW(risc_addr);
792 rval = qla2x00_mailbox_command(vha, mcp);
797 (mcp->
mb[2] << 16) | mcp->
mb[1] : mcp->
mb[1]);
800 "Done %s.\n", __func__);
833 "Entered %s.\n", __func__);
837 mcp->
mb[2] =
MSW(phys_addr);
838 mcp->
mb[3] =
LSW(phys_addr);
845 rval = qla2x00_mailbox_command(vha, mcp);
857 "Done %s.\n", __func__);
888 unsigned long flags = 0;
900 "Entered %s.\n", __func__);
907 spin_unlock_irqrestore(&ha->hardware_lock, flags);
909 if (handle == MAX_OUTSTANDING_COMMANDS) {
926 rval = qla2x00_mailbox_command(vha, mcp);
932 "Done %s.\n", __func__);
952 "Entered %s.\n", __func__);
954 req = vha->
hw->req_q_map[0];
965 mcp->
mb[2] = vha->
hw->loop_reset_delay;
971 rval = qla2x00_mailbox_command(vha, mcp);
974 "Failed=%x.\n", rval);
982 "Failed to issue marker IOCB (%x).\n", rval2);
985 "Done %s.\n", __func__);
1004 "Entered %s.\n", __func__);
1006 req = vha->
hw->req_q_map[0];
1021 rval = qla2x00_mailbox_command(vha, mcp);
1031 "Failed to issue marker IOCB (%x).\n", rval2);
1034 "Done %s.\n", __func__);
1069 "Entered %s.\n", __func__);
1079 rval = qla2x00_mailbox_command(vha, mcp);
1087 *al_pa =
LSB(mcp->
mb[2]);
1088 *area =
MSB(mcp->
mb[2]);
1089 *domain =
LSB(mcp->
mb[3]);
1091 *sw_cap = mcp->
mb[7];
1098 "Done %s.\n", __func__);
1140 "Entered %s.\n", __func__);
1147 rval = qla2x00_mailbox_command(vha, mcp);
1152 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
1155 *r_a_tov = mcp->
mb[3] / 2;
1156 ratov = (mcp->
mb[3]/2) / 10;
1157 if (mcp->
mb[1] * ratov > (*retry_cnt) * (*tov)) {
1164 "Done %s mb3=%d ratov=%d.\n", __func__, mcp->
mb[3], ratov);
1196 "Entered %s.\n", __func__);
1200 (0x04 | (ha->
portnum << 5) | (0 << 8) | (0 << 16)));
1202 if (ha->
flags.npiv_supported)
1230 rval = qla2x00_mailbox_command(vha, mcp);
1235 "Failed=%x mb[0]=%x, mb[1]=%x, mb[2]=%x, mb[3]=%x,.\n",
1236 rval, mcp->
mb[0], mcp->
mb[1], mcp->
mb[2], mcp->
mb[3]);
1240 "Done %s.\n", __func__);
1275 dma_size = left *
sizeof(*list);
1280 "%s(%ld): DMA Alloc failed of %ld\n",
1281 __func__, vha->
host_no, dma_size);
1288 mc.
mb[2] =
MSW(pmap_dma);
1289 mc.
mb[3] =
LSW(pmap_dma);
1292 mc.
mb[8] = dma_size;
1298 rval = qla2x00_mailbox_command(vha, &mc);
1301 (mc.
mb[1] == 0xA)) {
1314 "%s(%ld): failed to allocate node names list "
1315 "structure.\n", __func__, vha->
host_no);
1320 memcpy(list, pmap, dma_size);
1326 *out_len = dma_size;
1364 "Entered %s.\n", __func__);
1370 "Failed to allocate port database structure.\n");
1378 mcp->
mb[2] =
MSW(pd_dma);
1379 mcp->
mb[3] =
LSW(pd_dma);
1402 rval = qla2x00_mailbox_command(vha, mcp);
1414 "Unable to verify login-state (%x/%x) for "
1437 fcport->
d_id.
b.rsvd_1 = 0;
1458 "Unable to verify login-state (%x/%x) - "
1482 fcport->
d_id.
b.rsvd_1 = 0;
1500 "Failed=%x mb[0]=%x mb[1]=%x.\n", rval,
1501 mcp->
mb[0], mcp->
mb[1]);
1504 "Done %s.\n", __func__);
1534 "Entered %s.\n", __func__);
1544 rval = qla2x00_mailbox_command(vha, mcp);
1547 states[0] = mcp->
mb[1];
1549 states[1] = mcp->
mb[2];
1550 states[2] = mcp->
mb[3];
1551 states[3] = mcp->
mb[4];
1552 states[4] = mcp->
mb[5];
1561 "Done %s.\n", __func__);
1594 "Entered %s.\n", __func__);
1600 mcp->
mb[1] = loop_id;
1604 mcp->
mb[1] = loop_id << 8 |
opt;
1610 rval = qla2x00_mailbox_command(vha, mcp);
1618 name[0] =
MSB(mcp->
mb[2]);
1619 name[1] =
LSB(mcp->
mb[2]);
1620 name[2] =
MSB(mcp->
mb[3]);
1621 name[3] =
LSB(mcp->
mb[3]);
1622 name[4] =
MSB(mcp->
mb[6]);
1623 name[5] =
LSB(mcp->
mb[6]);
1624 name[6] =
MSB(mcp->
mb[7]);
1625 name[7] =
LSB(mcp->
mb[7]);
1629 "Done %s.\n", __func__);
1658 "Entered %s.\n", __func__);
1670 mcp->
mb[3] = vha->
hw->loop_reset_delay;
1676 mcp->
mb[1] = 0x00ff;
1680 mcp->
mb[1] = 0xff00;
1682 mcp->
mb[2] = vha->
hw->loop_reset_delay;
1688 rval = qla2x00_mailbox_command(vha, mcp);
1696 "Done %s.\n", __func__);
1729 "Entered %s.\n", __func__);
1732 "Retry cnt=%d ratov=%d total tov=%d.\n",
1733 vha->
hw->retry_count, vha->
hw->login_timeout, mcp->
tov);
1737 mcp->
mb[2] =
MSW(sns_phys_address);
1738 mcp->
mb[3] =
LSW(sns_phys_address);
1739 mcp->
mb[6] =
MSW(
MSD(sns_phys_address));
1740 mcp->
mb[7] =
LSW(
MSD(sns_phys_address));
1745 mcp->
tov = (vha->
hw->login_timeout * 2) + (vha->
hw->login_timeout / 2);
1746 rval = qla2x00_mailbox_command(vha, mcp);
1751 "Failed=%x mb[0]=%x mb[1]=%x.\n",
1752 rval, mcp->
mb[0], mcp->
mb[1]);
1756 "Done %s.\n", __func__);
1776 "Entered %s.\n", __func__);
1778 if (ha->
flags.cpu_affinity_enabled)
1787 "Failed to allocate login IOCB.\n");
1809 "Failed to issue login IOCB (%x).\n", rval);
1812 "Failed to complete IOCB -- error status (%x).\n",
1820 "Failed to complete IOCB -- completion status (%x) "
1827 mb[1] =
LSW(iop[1]);
1851 "Done %s.\n", __func__);
1857 if (iop[0] &
BIT_4) {
1911 "Entered %s.\n", __func__);
1916 mcp->
mb[1] = loop_id;
1920 mcp->
mb[1] = (loop_id << 8) | opt;
1922 mcp->
mb[2] = domain;
1923 mcp->
mb[3] = area << 8 | al_pa;
1928 rval = qla2x00_mailbox_command(vha, mcp);
1948 if (mcp->
mb[0] == 0x4001 || mcp->
mb[0] == 0x4002 ||
1949 mcp->
mb[0] == 0x4003 || mcp->
mb[0] == 0x4005 ||
1950 mcp->
mb[0] == 0x4006)
1955 "Failed=%x mb[0]=%x mb[1]=%x mb[2]=%x.\n",
1956 rval, mcp->
mb[0], mcp->
mb[1], mcp->
mb[2]);
1960 "Done %s.\n", __func__);
1992 "Entered %s.\n", __func__);
1997 fcport->
d_id.
b.al_pa, mb_ret, opt);
2009 rval = qla2x00_mailbox_command(vha, mcp);
2012 if (mb_ret !=
NULL) {
2013 mb_ret[0] = mcp->
mb[0];
2014 mb_ret[1] = mcp->
mb[1];
2015 mb_ret[6] = mcp->
mb[6];
2016 mb_ret[7] = mcp->
mb[7];
2026 if (mcp->
mb[0] == 0x4005 || mcp->
mb[0] == 0x4006)
2030 "Failed=%x mb[0]=%x mb[1]=%x mb[6]=%x mb[7]=%x.\n",
2031 rval, mcp->
mb[0], mcp->
mb[1], mcp->
mb[6], mcp->
mb[7]);
2035 "Done %s.\n", __func__);
2053 "Entered %s.\n", __func__);
2058 "Failed to allocate logout IOCB.\n");
2083 "Failed to issue logout IOCB (%x).\n", rval);
2086 "Failed to complete IOCB -- error status (%x).\n",
2091 "Failed to complete IOCB -- completion status (%x) "
2098 "Done %s.\n", __func__);
2131 "Entered %s.\n", __func__);
2136 mcp->
mb[1] = loop_id;
2140 mcp->
mb[1] = loop_id << 8;
2146 rval = qla2x00_mailbox_command(vha, mcp);
2151 "Failed=%x mb[1]=%x.\n", rval, mcp->
mb[1]);
2155 "Done %s.\n", __func__);
2184 "Entered %s.\n", __func__);
2194 rval = qla2x00_mailbox_command(vha, mcp);
2202 "Done %s.\n", __func__);
2229 "Entered %s.\n", __func__);
2231 if (id_list ==
NULL)
2237 mcp->
mb[2] =
MSW(id_list_dma);
2238 mcp->
mb[3] =
LSW(id_list_dma);
2239 mcp->
mb[6] =
MSW(
MSD(id_list_dma));
2240 mcp->
mb[7] =
LSW(
MSD(id_list_dma));
2245 mcp->
mb[1] =
MSW(id_list_dma);
2246 mcp->
mb[2] =
LSW(id_list_dma);
2247 mcp->
mb[3] =
MSW(
MSD(id_list_dma));
2248 mcp->
mb[6] =
LSW(
MSD(id_list_dma));
2254 rval = qla2x00_mailbox_command(vha, mcp);
2260 *entries = mcp->
mb[1];
2262 "Done %s.\n", __func__);
2291 "Entered %s.\n", __func__);
2300 rval = qla2x00_mailbox_command(vha, mcp);
2305 "Failed mb[0]=%x.\n", mcp->
mb[0]);
2308 "Done %s mb1=%x mb2=%x mb3=%x mb6=%x mb7=%x mb10=%x "
2309 "mb11=%x mb12=%x.\n", __func__, mcp->
mb[1], mcp->
mb[2],
2310 mcp->
mb[3], mcp->
mb[6], mcp->
mb[7], mcp->
mb[10],
2311 mcp->
mb[11], mcp->
mb[12]);
2314 *cur_xchg_cnt = mcp->
mb[3];
2316 *orig_xchg_cnt = mcp->
mb[6];
2318 *cur_iocb_cnt = mcp->
mb[7];
2320 *orig_iocb_cnt = mcp->
mb[10];
2321 if (vha->
hw->flags.npiv_supported && max_npiv_vports)
2322 *max_npiv_vports = mcp->
mb[11];
2324 *max_fcfs = mcp->
mb[12];
2355 "Entered %s.\n", __func__);
2360 "Memory alloc failed.\n");
2366 mcp->
mb[2] =
MSW(pmap_dma);
2367 mcp->
mb[3] =
LSW(pmap_dma);
2375 rval = qla2x00_mailbox_command(vha, mcp);
2379 "mb0/mb1=%x/%X FC/AL position map size (%x).\n",
2380 mcp->
mb[0], mcp->
mb[1], (
unsigned)pmap[0]);
2393 "Done %s.\n", __func__);
2423 "Entered %s.\n", __func__);
2426 mcp->
mb[2] =
MSW(stats_dma);
2427 mcp->
mb[3] =
LSW(stats_dma);
2433 mcp->
mb[1] = loop_id;
2439 mcp->
mb[1] = loop_id;
2443 mcp->
mb[1] = loop_id << 8;
2448 rval = qla2x00_mailbox_command(vha, mcp);
2453 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
2458 "Done %s.\n", __func__);
2482 "Entered %s.\n", __func__);
2485 mcp->
mb[2] =
MSW(stats_dma);
2486 mcp->
mb[3] =
LSW(stats_dma);
2496 rval = qla2x00_mailbox_command(vha, mcp);
2501 "Failed mb[0]=%x.\n", mcp->
mb[0]);
2505 "Done %s.\n", __func__);
2524 unsigned long flags = 0;
2535 "Entered %s.\n", __func__);
2542 spin_unlock_irqrestore(&ha->hardware_lock, flags);
2543 if (handle == MAX_OUTSTANDING_COMMANDS) {
2551 "Failed to allocate abort IOCB.\n");
2571 "Failed to issue IOCB (%x).\n", rval);
2574 "Failed to complete IOCB -- error status (%x).\n",
2579 "Failed to complete IOCB -- completion status (%x).\n",
2584 "Done %s.\n", __func__);
2601 unsigned int l,
int tag)
2617 "Entered %s.\n", __func__);
2619 if (ha->
flags.cpu_affinity_enabled)
2626 "Failed to allocate task management IOCB.\n");
2632 tsk->
p.
tsk.entry_count = 1;
2637 tsk->
p.
tsk.port_id[0] = fcport->
d_id.
b.al_pa;
2638 tsk->
p.
tsk.port_id[1] = fcport->
d_id.
b.area;
2639 tsk->
p.
tsk.port_id[2] = fcport->
d_id.
b.domain;
2640 tsk->
p.
tsk.vp_index = fcport->
vha->vp_idx;
2644 sizeof(tsk->
p.
tsk.lun));
2651 "Failed to issue %s reset IOCB (%x).\n", name, rval);
2654 "Failed to complete IOCB -- error status (%x).\n",
2660 "Failed to complete IOCB -- completion status (%x).\n",
2667 "Ignoring inconsistent data length -- not enough "
2668 "response info (%d).\n",
2670 }
else if (sts->
data[3]) {
2672 "Failed to complete IOCB -- response (%x).\n",
2683 "Failed to issue marker IOCB (%x).\n", rval2);
2686 "Done %s.\n", __func__);
2713 return __qla24xx_issue_tmf(
"Lun",
TCF_LUN_RESET, fcport, l, tag);
2728 "Entered %s.\n", __func__);
2735 rval = qla2x00_mailbox_command(vha, mcp);
2741 "Done %s.\n", __func__);
2762 "Entered %s.\n", __func__);
2773 rval = qla2x00_mailbox_command(vha, mcp);
2778 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
2782 "Done %s.\n", __func__);
2799 "Entered %s.\n", __func__);
2807 rval = qla2x00_mailbox_command(vha, mcp);
2815 "Done %s.\n", __func__);
2830 "Entered %s.\n", __func__);
2835 if (
unlikely(pci_channel_offline(vha->
hw->pdev)))
2840 mcp->
mb[2] =
LSW(eft_dma);
2841 mcp->
mb[3] =
MSW(eft_dma);
2844 mcp->
mb[6] = buffers;
2850 rval = qla2x00_mailbox_command(vha, mcp);
2853 "Failed=%x mb[0]=%x mb[1]=%x.\n",
2854 rval, mcp->
mb[0], mcp->
mb[1]);
2857 "Done %s.\n", __func__);
2871 "Entered %s.\n", __func__);
2876 if (
unlikely(pci_channel_offline(vha->
hw->pdev)))
2885 rval = qla2x00_mailbox_command(vha, mcp);
2888 "Failed=%x mb[0]=%x mb[1]=%x.\n",
2889 rval, mcp->
mb[0], mcp->
mb[1]);
2892 "Done %s.\n", __func__);
2907 "Entered %s.\n", __func__);
2913 if (
unlikely(pci_channel_offline(vha->
hw->pdev)))
2918 mcp->
mb[2] =
LSW(fce_dma);
2919 mcp->
mb[3] =
MSW(fce_dma);
2922 mcp->
mb[6] = buffers;
2932 rval = qla2x00_mailbox_command(vha, mcp);
2935 "Failed=%x mb[0]=%x mb[1]=%x.\n",
2936 rval, mcp->
mb[0], mcp->
mb[1]);
2939 "Done %s.\n", __func__);
2942 memcpy(mb, mcp->
mb, 8 *
sizeof(*mb));
2958 "Entered %s.\n", __func__);
2963 if (
unlikely(pci_channel_offline(vha->
hw->pdev)))
2974 rval = qla2x00_mailbox_command(vha, mcp);
2977 "Failed=%x mb[0]=%x mb[1]=%x.\n",
2978 rval, mcp->
mb[0], mcp->
mb[1]);
2981 "Done %s.\n", __func__);
3007 "Entered %s.\n", __func__);
3013 mcp->
mb[1] = loop_id;
3014 mcp->
mb[2] = mcp->
mb[3] = 0;
3020 rval = qla2x00_mailbox_command(vha, mcp);
3033 "Done %s.\n", __func__);
3035 *port_speed = mcp->
mb[3];
3050 "Entered %s.\n", __func__);
3056 mcp->
mb[1] = loop_id;
3067 rval = qla2x00_mailbox_command(vha, mcp);
3078 "Failed=%x.\n", rval);
3081 "Done %s.\n", __func__);
3095 unsigned long flags;
3098 "Entered %s.\n", __func__);
3103 if (rptid_entry->
format == 0) {
3105 "Format 0 : Number of VPs setup %d, number of "
3106 "VPs acquired %d.\n",
3110 "Primary port id %02x%02x%02x.\n",
3113 }
else if (rptid_entry->
format == 1) {
3116 "Format 1: VP[%d] enabled - status %d - with "
3117 "port id %02x%02x%02x.\n", vp_idx,
MSB(stat),
3122 if (vp_idx == 0 && (
MSB(stat) != 1))
3125 if (
MSB(stat) != 0) {
3127 "Could not acquire ID for VP[%d].\n", vp_idx);
3133 if (vp_idx == vp->
vp_idx)
3183 "Entered %s.\n", __func__);
3188 "Failed to allocate modify VP IOCB.\n");
3209 "Failed to issue VP config IOCB (%x).\n", rval);
3212 "Failed to complete IOCB -- error status (%x).\n",
3217 "Failed to complete IOCB -- completion status (%x).\n",
3223 "Done %s.\n", __func__);
3254 int vp_index = vha->
vp_idx;
3258 "Entered %s enabling index %d.\n", __func__, vp_index);
3266 "Failed to allocate VP control IOCB.\n");
3279 map = (vp_index - 1) / 8;
3280 pos = (vp_index - 1) & 7;
3288 "Failed to issue VP control IOCB (%x).\n", rval);
3291 "Failed to complete IOCB -- error status (%x).\n",
3296 "Failed to complet IOCB -- completion status (%x).\n",
3301 "Done %s.\n", __func__);
3339 "Entered %s.\n", __func__);
3348 rval = qla2x00_mailbox_command(vha, mcp);
3369 "Entered %s.\n", __func__);
3373 mcp->
mb[8] =
MSW(addr);
3379 mcp->
mb[1] =
LSW(addr);
3380 mcp->
mb[2] =
MSW(req_dma);
3381 mcp->
mb[3] =
LSW(req_dma);
3386 mcp->
mb[4] =
MSW(size);
3387 mcp->
mb[5] =
LSW(size);
3390 mcp->
mb[4] =
LSW(size);
3397 rval = qla2x00_mailbox_command(vha, mcp);
3401 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
3404 "Done %s.\n", __func__);
3425 unsigned long flags;
3429 "Entered %s.\n", __func__);
3445 memset(mn, 0,
sizeof(*mn));
3447 mn->
p.
req.entry_count = 1;
3451 "Dump of Verify Request.\n");
3458 "Failed to issue verify IOCB (%x).\n", rval);
3463 "Dump of Verify Response.\n");
3471 "cs=%x fc=%x.\n", status[0], status[1]);
3477 "Firmware update failed. Retrying "
3478 "without update firmware.\n");
3485 "Firmware updated to %x.\n",
3490 ha->
cs84xx->op_fw_version =
3492 spin_unlock_irqrestore(&ha->
cs84xx->access_lock,
3502 "Failed=%x.\n", rval);
3505 "Done %s.\n", __func__);
3515 unsigned long flags;
3522 "Entered %s.\n", __func__);
3532 mcp->
mb[10] = req->
rsp->id;
3533 mcp->
mb[12] = req->
qos;
3535 mcp->
mb[13] = req->
rid;
3542 mcp->
mb[4] = req->
id;
3569 spin_unlock_irqrestore(&ha->hardware_lock, flags);
3571 rval = qla2x00_mailbox_command(vha, mcp);
3574 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
3577 "Done %s.\n", __func__);
3587 unsigned long flags;
3594 "Entered %s.\n", __func__);
3603 mcp->
mb[14] = rsp->
msix->entry;
3604 mcp->
mb[13] = rsp->
rid;
3611 mcp->
mb[4] = rsp->
id;
3639 spin_unlock_irqrestore(&ha->hardware_lock, flags);
3641 rval = qla2x00_mailbox_command(vha, mcp);
3644 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
3647 "Done %s.\n", __func__);
3661 "Entered %s.\n", __func__);
3669 rval = qla2x00_mailbox_command(vha, mcp);
3673 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
3676 "Done %s.\n", __func__);
3690 "Entered %s.\n", __func__);
3701 rval = qla2x00_mailbox_command(vha, mcp);
3705 "Failed=%x mb[0]=%x mb[1]=%x.\n",
3706 rval, mcp->
mb[0], mcp->
mb[1]);
3709 "Done %s.\n", __func__);
3710 *sector_size = mcp->
mb[1];
3727 "Entered %s.\n", __func__);
3736 rval = qla2x00_mailbox_command(vha, mcp);
3740 "Failed=%x mb[0]=%x mb[1]=%x.\n",
3741 rval, mcp->
mb[0], mcp->
mb[1]);
3744 "Done %s.\n", __func__);
3761 "Entered %s.\n", __func__);
3765 mcp->
mb[2] =
LSW(start);
3766 mcp->
mb[3] =
MSW(start);
3767 mcp->
mb[4] =
LSW(finish);
3768 mcp->
mb[5] =
MSW(finish);
3773 rval = qla2x00_mailbox_command(vha, mcp);
3777 "Failed=%x mb[0]=%x mb[1]=%x mb[2]=%x.\n",
3778 rval, mcp->
mb[0], mcp->
mb[1], mcp->
mb[2]);
3781 "Done %s.\n", __func__);
3795 "Entered %s.\n", __func__);
3802 rval = qla2x00_mailbox_command(vha, mcp);
3806 "Failed=%x mb[0]=%x mb[1]=%x.\n",
3807 rval, mcp->
mb[0], mcp->
mb[1]);
3810 "Done %s.\n", __func__);
3826 "Entered %s.\n", __func__);
3836 mcp->
mb[2] =
MSW(sfp_dma);
3837 mcp->
mb[3] =
LSW(sfp_dma);
3847 rval = qla2x00_mailbox_command(vha, mcp);
3854 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
3857 "Done %s.\n", __func__);
3873 "Entered %s.\n", __func__);
3886 mcp->
mb[2] =
MSW(sfp_dma);
3887 mcp->
mb[3] =
LSW(sfp_dma);
3897 rval = qla2x00_mailbox_command(vha, mcp);
3901 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
3904 "Done %s.\n", __func__);
3919 "Entered %s.\n", __func__);
3925 mcp->
mb[2] =
MSW(stats_dma);
3926 mcp->
mb[3] =
LSW(stats_dma);
3929 mcp->
mb[8] = size_in_bytes >> 2;
3934 rval = qla2x00_mailbox_command(vha, mcp);
3938 "Failed=%x mb[0]=%x mb[1]=%x mb[2]=%x.\n",
3939 rval, mcp->
mb[0], mcp->
mb[1], mcp->
mb[2]);
3942 "Done %s.\n", __func__);
3945 *actual_size = mcp->
mb[2] << 2;
3960 "Entered %s.\n", __func__);
3967 mcp->
mb[2] =
MSW(tlv_dma);
3968 mcp->
mb[3] =
LSW(tlv_dma);
3976 rval = qla2x00_mailbox_command(vha, mcp);
3980 "Failed=%x mb[0]=%x mb[1]=%x mb[2]=%x.\n",
3981 rval, mcp->
mb[0], mcp->
mb[1], mcp->
mb[2]);
3984 "Done %s.\n", __func__);
3998 "Entered %s.\n", __func__);
4004 mcp->
mb[1] =
LSW(risc_addr);
4005 mcp->
mb[8] =
MSW(risc_addr);
4010 rval = qla2x00_mailbox_command(vha, mcp);
4013 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
4016 "Done %s.\n", __func__);
4017 *data = mcp->
mb[3] << 16 | mcp->
mb[2];
4033 "Entered %s.\n", __func__);
4056 mcp->
mb[18] =
LSW(iter_cnt);
4057 mcp->
mb[19] =
MSW(iter_cnt);
4069 rval = qla2x00_mailbox_command(vha, mcp);
4073 "Failed=%x mb[0]=%x mb[1]=%x mb[2]=%x mb[3]=%x mb[18]=%x "
4074 "mb[19]=%x.\n", rval, mcp->
mb[0], mcp->
mb[1], mcp->
mb[2],
4075 mcp->
mb[3], mcp->
mb[18], mcp->
mb[19]);
4078 "Done %s.\n", __func__);
4096 "Entered %s.\n", __func__);
4133 rval = qla2x00_mailbox_command(vha, mcp);
4137 "Failed=%x mb[0]=%x mb[1]=%x.\n",
4138 rval, mcp->
mb[0], mcp->
mb[1]);
4141 "Done %s.\n", __func__);
4157 "Entered %s enable_diag=%d.\n", __func__, enable_diagnostic);
4160 mcp->
mb[1] = enable_diagnostic;
4165 rval = qla2x00_mailbox_command(vha, mcp);
4171 "Done %s.\n", __func__);
4184 "Entered %s.\n", __func__);
4190 mcp->
mb[1] =
LSW(risc_addr);
4191 mcp->
mb[2] =
LSW(data);
4192 mcp->
mb[3] =
MSW(data);
4193 mcp->
mb[8] =
MSW(risc_addr);
4198 rval = qla2x00_mailbox_command(vha, mcp);
4201 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
4204 "Done %s.\n", __func__);
4222 "Entered %s.\n", __func__);
4236 for (timer = 6000000;
timer; timer--) {
4242 if (stat == 0x1 || stat == 0x2 ||
4243 stat == 0x10 || stat == 0x11) {
4263 "Failed=%x mb[0]=%x.\n", rval, mb[0]);
4266 "Done %s.\n", __func__);
4281 "Entered %s.\n", __func__);
4294 rval = qla2x00_mailbox_command(vha, mcp);
4297 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
4300 "Done %s.\n", __func__);
4301 if (mcp->
mb[1] != 0x7)
4317 "Entered %s.\n", __func__);
4327 rval = qla2x00_mailbox_command(vha, mcp);
4331 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
4337 "Done %s.\n", __func__);
4350 "Entered %s.\n", __func__);
4359 rval = qla2x00_mailbox_command(vha, mcp);
4363 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
4366 "Done %s.\n", __func__);
4382 "Entered %s.\n", __func__);
4388 mcp->
mb[1] = loop_id;
4389 if (ha->
flags.fcp_prio_enabled)
4393 mcp->
mb[4] = priority & 0xf;
4399 rval = qla2x00_mailbox_command(vha, mcp);
4411 "Done %s.\n", __func__);
4425 "Entered %s.\n", __func__);
4432 ha->
flags.thermal_supported = 0;
4442 ha->
flags.thermal_supported = 0;
4445 *frac = (byte >> 6) * 25;
4448 "Done %s.\n", __func__);
4462 "Entered %s.\n", __func__);
4476 rval = qla2x00_mailbox_command(vha, mcp);
4479 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
4482 "Done %s.\n", __func__);
4497 "Entered %s.\n", __func__);
4511 rval = qla2x00_mailbox_command(vha, mcp);
4514 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
4517 "Done %s.\n", __func__);
4532 "Entered %s.\n", __func__);
4546 rval = qla2x00_mailbox_command(vha, mcp);
4551 "mailbox command FAILED=0x%x, subcode=%x.\n",
4552 (mcp->
mb[1] << 16) | mcp->
mb[0],
4553 (mcp->
mb[3] << 16) | mcp->
mb[2]);
4556 "Done %s.\n", __func__);
4560 "Null template size obtained.\n");
4576 "Entered %s.\n", __func__);
4582 "Unable to allocate memory for Minidump template.\n");
4603 rval = qla2x00_mailbox_command(vha, mcp);
4607 "mailbox command FAILED=0x%x, subcode=%x.\n",
4608 ((mcp->
mb[1] << 16) | mcp->
mb[0]),
4609 ((mcp->
mb[3] << 16) | mcp->
mb[2]));
4612 "Done %s.\n", __func__);
4628 "Entered %s.\n", __func__);
4632 mcp->
mb[1] = led_cfg[0];
4633 mcp->
mb[2] = led_cfg[1];
4635 mcp->
mb[3] = led_cfg[2];
4636 mcp->
mb[4] = led_cfg[3];
4637 mcp->
mb[5] = led_cfg[4];
4638 mcp->
mb[6] = led_cfg[5];
4648 rval = qla2x00_mailbox_command(vha, mcp);
4651 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
4654 "Done %s.\n", __func__);
4672 "Entered %s.\n", __func__);
4684 rval = qla2x00_mailbox_command(vha, mcp);
4687 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
4689 led_cfg[0] = mcp->
mb[1];
4690 led_cfg[1] = mcp->
mb[2];
4692 led_cfg[2] = mcp->
mb[3];
4693 led_cfg[3] = mcp->
mb[4];
4694 led_cfg[4] = mcp->
mb[5];
4695 led_cfg[5] = mcp->
mb[6];
4698 "Done %s.\n", __func__);
4716 "Entered %s.\n", __func__);
4730 rval = qla2x00_mailbox_command(vha, mcp);
4733 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
4736 "Done %s.\n", __func__);
4754 "Entered %s.\n", __func__);
4757 mcp->
mb[1] =
LSW(reg);
4758 mcp->
mb[2] =
MSW(reg);
4759 mcp->
mb[3] =
LSW(data);
4760 mcp->
mb[4] =
MSW(data);
4766 rval = qla2x00_mailbox_command(vha, mcp);
4770 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
4773 "Done %s.\n", __func__);
4789 "Implicit LOGO Unsupported.\n");
4795 "Entering %s.\n", __func__);
4805 rval = qla2x00_mailbox_command(vha, mcp);
4808 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
4811 "Done %s.\n", __func__);
4823 unsigned long retry_max_time =
jiffies + (2 *
HZ);
4832 mcp->
mb[1] =
LSW(reg);
4833 mcp->
mb[2] =
MSW(reg);
4838 rval = qla2x00_mailbox_command(vha, mcp);
4842 "Failed=%x mb[0]=%x mb[1]=%x.\n",
4843 rval, mcp->
mb[0], mcp->
mb[1]);
4845 *data = (mcp->
mb[3] | (mcp->
mb[4] << 16));
4854 "Failure to read CAMRAM register. "
4855 "data=0x%x.\n", *data);
4885 rval = qla2x00_mailbox_command(vha, mcp);
4889 "Failed=%x mb[0]=%x mb[1]=%x.\n",
4890 rval, mcp->
mb[0], mcp->
mb[1]);
4917 if (subcode &
BIT_2) {
4918 mcp->
mb[2] =
LSW(start_addr);
4919 mcp->
mb[3] =
MSW(start_addr);
4920 mcp->
mb[4] =
LSW(end_addr);
4921 mcp->
mb[5] =
MSW(end_addr);
4925 if (!(subcode & (BIT_2 |
BIT_5)))
4929 rval = qla2x00_mailbox_command(vha, mcp);
4933 "Failed=%x mb[0]=%x mb[1]=%x mb[2]=%x mb[3]=%x mb[4]=%x.\n",
4934 rval, mcp->
mb[0], mcp->
mb[1], mcp->
mb[2], mcp->
mb[3],
4938 if (subcode &
BIT_5)
4939 *sector_size = mcp->
mb[1];
4942 "Driver-lock id=%x%x", mcp->
mb[4], mcp->
mb[3]);
4945 "Flash-lock id=%x%x", mcp->
mb[4], mcp->
mb[3]);
4965 "Entered %s.\n", __func__);
4968 mcp->
mb[1] =
LSW(addr);
4969 mcp->
mb[2] =
MSW(req_dma);
4970 mcp->
mb[3] =
LSW(req_dma);
4971 mcp->
mb[4] =
MSW(size);
4972 mcp->
mb[5] =
LSW(size);
4975 mcp->
mb[8] =
MSW(addr);
4979 mcp->
mb[10] |= 0x40;
4987 rval = qla2x00_mailbox_command(vha, mcp);
4991 "Failed=%x mb[0]=%x.\n", rval, mcp->
mb[0]);
4994 "Done %s.\n", __func__);