Deleted Added
full compact
isp.c (291163) isp.c (291188)
1/*-
2 * Copyright (c) 1997-2009 by Matthew Jacob
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *

--- 33 unchanged lines hidden (view full) ---

42 */
43#ifdef __NetBSD__
44#include <sys/cdefs.h>
45__KERNEL_RCSID(0, "$NetBSD$");
46#include <dev/ic/isp_netbsd.h>
47#endif
48#ifdef __FreeBSD__
49#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 1997-2009 by Matthew Jacob
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *

--- 33 unchanged lines hidden (view full) ---

42 */
43#ifdef __NetBSD__
44#include <sys/cdefs.h>
45__KERNEL_RCSID(0, "$NetBSD$");
46#include <dev/ic/isp_netbsd.h>
47#endif
48#ifdef __FreeBSD__
49#include <sys/cdefs.h>
50__FBSDID("$FreeBSD: head/sys/dev/isp/isp.c 291163 2015-11-22 17:03:38Z mav $");
50__FBSDID("$FreeBSD: head/sys/dev/isp/isp.c 291188 2015-11-23 10:06:19Z mav $");
51#include <dev/isp/isp_freebsd.h>
52#endif
53#ifdef __OpenBSD__
54#include <dev/ic/isp_openbsd.h>
55#endif
56#ifdef __linux__
57#include "isp_linux.h"
58#endif

--- 1025 unchanged lines hidden (view full) ---

1084 if (IS_24XX(isp)) {
1085 isp->isp_fwattr |= ((uint64_t) mbs.param[15]) << 16;
1086 if (isp->isp_fwattr & ISP2400_FW_ATTR_EXTNDED) {
1087 isp->isp_fwattr |=
1088 (((uint64_t) mbs.param[16]) << 32) |
1089 (((uint64_t) mbs.param[17]) << 48);
1090 }
1091 }
51#include <dev/isp/isp_freebsd.h>
52#endif
53#ifdef __OpenBSD__
54#include <dev/ic/isp_openbsd.h>
55#endif
56#ifdef __linux__
57#include "isp_linux.h"
58#endif

--- 1025 unchanged lines hidden (view full) ---

1084 if (IS_24XX(isp)) {
1085 isp->isp_fwattr |= ((uint64_t) mbs.param[15]) << 16;
1086 if (isp->isp_fwattr & ISP2400_FW_ATTR_EXTNDED) {
1087 isp->isp_fwattr |=
1088 (((uint64_t) mbs.param[16]) << 32) |
1089 (((uint64_t) mbs.param[17]) << 48);
1090 }
1091 }
1092 } else if (IS_SCSI(isp)) {
1093#ifndef ISP_TARGET_MODE
1094 isp->isp_fwattr = ISP_FW_ATTR_TMODE;
1095#else
1092 } else {
1096 isp->isp_fwattr = 0;
1093 isp->isp_fwattr = 0;
1097#endif
1098 }
1099
1100 isp_prt(isp, ISP_LOGCONFIG, "Board Type %s, Chip Revision 0x%x, %s F/W Revision %d.%d.%d",
1101 btype, isp->isp_revision, dodnld? "loaded" : "resident", isp->isp_fwrev[0], isp->isp_fwrev[1], isp->isp_fwrev[2]);
1102
1103 fwt = isp->isp_fwattr;
1104 if (IS_24XX(isp)) {
1105 buf = FCPARAM(isp, 0)->isp_scratch;

--- 796 unchanged lines hidden (view full) ---

1902 isp_mboxcmd(isp, &mbs);
1903 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1904 return;
1905 }
1906 }
1907 icbp->icb_logintime = ICB_LOGIN_TOV;
1908
1909#ifdef ISP_TARGET_MODE
1094 }
1095
1096 isp_prt(isp, ISP_LOGCONFIG, "Board Type %s, Chip Revision 0x%x, %s F/W Revision %d.%d.%d",
1097 btype, isp->isp_revision, dodnld? "loaded" : "resident", isp->isp_fwrev[0], isp->isp_fwrev[1], isp->isp_fwrev[2]);
1098
1099 fwt = isp->isp_fwattr;
1100 if (IS_24XX(isp)) {
1101 buf = FCPARAM(isp, 0)->isp_scratch;

--- 796 unchanged lines hidden (view full) ---

1898 isp_mboxcmd(isp, &mbs);
1899 if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
1900 return;
1901 }
1902 }
1903 icbp->icb_logintime = ICB_LOGIN_TOV;
1904
1905#ifdef ISP_TARGET_MODE
1910 if (IS_23XX(isp) && (icbp->icb_fwoptions & ICBOPT_TGT_ENABLE)) {
1906 if (icbp->icb_fwoptions & ICBOPT_TGT_ENABLE) {
1911 icbp->icb_lunenables = 0xffff;
1907 icbp->icb_lunenables = 0xffff;
1912 icbp->icb_ccnt = DFLT_CMND_CNT;
1913 icbp->icb_icnt = DFLT_INOT_CNT;
1908 icbp->icb_ccnt = 0xff;
1909 icbp->icb_icnt = 0xff;
1914 icbp->icb_lunetimeout = ICB_LUN_ENABLE_TOV;
1915 }
1916#endif
1917 if (fcp->isp_wwnn && fcp->isp_wwpn) {
1918 icbp->icb_fwoptions |= ICBOPT_BOTH_WWNS;
1919 MAKE_NODE_NAME_FROM_WWN(icbp->icb_nodename, fcp->isp_wwnn);
1920 MAKE_NODE_NAME_FROM_WWN(icbp->icb_portname, fcp->isp_wwpn);
1921 isp_prt(isp, ISP_LOGDEBUG1,

--- 2217 unchanged lines hidden (view full) ---

4139 isp_prt(isp, ISP_LOGDEBUG1,
4140 "%d.%d.%jx bad db port state 0x%x",
4141 XS_CHANNEL(xs), target, (uintmax_t)XS_LUN(xs), lp->state);
4142 XS_SETERR(xs, HBA_SELTIMEOUT);
4143 return (CMD_COMPLETE);
4144 }
4145 } else {
4146 sdparam *sdp = SDPARAM(isp, XS_CHANNEL(xs));
1910 icbp->icb_lunetimeout = ICB_LUN_ENABLE_TOV;
1911 }
1912#endif
1913 if (fcp->isp_wwnn && fcp->isp_wwpn) {
1914 icbp->icb_fwoptions |= ICBOPT_BOTH_WWNS;
1915 MAKE_NODE_NAME_FROM_WWN(icbp->icb_nodename, fcp->isp_wwnn);
1916 MAKE_NODE_NAME_FROM_WWN(icbp->icb_portname, fcp->isp_wwpn);
1917 isp_prt(isp, ISP_LOGDEBUG1,

--- 2217 unchanged lines hidden (view full) ---

4135 isp_prt(isp, ISP_LOGDEBUG1,
4136 "%d.%d.%jx bad db port state 0x%x",
4137 XS_CHANNEL(xs), target, (uintmax_t)XS_LUN(xs), lp->state);
4138 XS_SETERR(xs, HBA_SELTIMEOUT);
4139 return (CMD_COMPLETE);
4140 }
4141 } else {
4142 sdparam *sdp = SDPARAM(isp, XS_CHANNEL(xs));
4147 if ((sdp->role & ISP_ROLE_INITIATOR) == 0) {
4148 isp_prt(isp, ISP_LOGDEBUG1,
4149 "%d.%d.%jx I am not an initiator",
4150 XS_CHANNEL(xs), target, (uintmax_t)XS_LUN(xs));
4151 XS_SETERR(xs, HBA_SELTIMEOUT);
4152 return (CMD_COMPLETE);
4153 }
4154
4155 if (isp->isp_state != ISP_RUNSTATE) {
4156 isp_prt(isp, ISP_LOGERR, "Adapter not at RUNSTATE");
4157 XS_SETERR(xs, HBA_BOTCH);
4158 return (CMD_COMPLETE);
4159 }
4160
4161 if (sdp->update) {
4162 isp_spi_update(isp, XS_CHANNEL(xs));

--- 591 unchanged lines hidden (view full) ---

4754 p->handle = r >> 16;
4755 r = 0;
4756 break;
4757 }
4758 } while ((r & 0xffff) == MBOX_LOOP_ID_USED);
4759 return (r);
4760 }
4761 case ISPCTL_CHANGE_ROLE:
4143 if (isp->isp_state != ISP_RUNSTATE) {
4144 isp_prt(isp, ISP_LOGERR, "Adapter not at RUNSTATE");
4145 XS_SETERR(xs, HBA_BOTCH);
4146 return (CMD_COMPLETE);
4147 }
4148
4149 if (sdp->update) {
4150 isp_spi_update(isp, XS_CHANNEL(xs));

--- 591 unchanged lines hidden (view full) ---

4742 p->handle = r >> 16;
4743 r = 0;
4744 break;
4745 }
4746 } while ((r & 0xffff) == MBOX_LOOP_ID_USED);
4747 return (r);
4748 }
4749 case ISPCTL_CHANGE_ROLE:
4762 {
4763 int role, r;
4764
4765 va_start(ap, ctl);
4766 chan = va_arg(ap, int);
4767 role = va_arg(ap, int);
4768 va_end(ap);
4769 if (IS_FC(isp)) {
4750 if (IS_FC(isp)) {
4751 int role, r;
4752
4753 va_start(ap, ctl);
4754 chan = va_arg(ap, int);
4755 role = va_arg(ap, int);
4756 va_end(ap);
4770 r = isp_fc_change_role(isp, chan, role);
4757 r = isp_fc_change_role(isp, chan, role);
4771 } else {
4772 SDPARAM(isp, chan)->role = role;
4773 r = 0;
4758 return (r);
4774 }
4759 }
4775 return (r);
4776 }
4760 break;
4777 default:
4778 isp_prt(isp, ISP_LOGERR, "Unknown Control Opcode 0x%x", ctl);
4779 break;
4780
4781 }
4782 return (-1);
4783}
4784

--- 2656 unchanged lines hidden (view full) ---

7441
7442static void
7443isp_setdfltsdparm(ispsoftc_t *isp)
7444{
7445 int tgt;
7446 sdparam *sdp, *sdp1;
7447
7448 sdp = SDPARAM(isp, 0);
4761 default:
4762 isp_prt(isp, ISP_LOGERR, "Unknown Control Opcode 0x%x", ctl);
4763 break;
4764
4765 }
4766 return (-1);
4767}
4768

--- 2656 unchanged lines hidden (view full) ---

7425
7426static void
7427isp_setdfltsdparm(ispsoftc_t *isp)
7428{
7429 int tgt;
7430 sdparam *sdp, *sdp1;
7431
7432 sdp = SDPARAM(isp, 0);
7449 sdp->role = GET_DEFAULT_ROLE(isp, 0);
7450 if (IS_DUALBUS(isp)) {
7433 if (IS_DUALBUS(isp))
7451 sdp1 = sdp + 1;
7434 sdp1 = sdp + 1;
7452 sdp1->role = GET_DEFAULT_ROLE(isp, 1);
7453 } else {
7435 else
7454 sdp1 = NULL;
7436 sdp1 = NULL;
7455 }
7456
7457 /*
7458 * Establish some default parameters.
7459 */
7460 sdp->isp_cmd_dma_burst_enable = 0;
7461 sdp->isp_data_dma_burst_enabl = 1;
7462 sdp->isp_fifo_threshold = 0;
7463 sdp->isp_initiator_id = DEFAULT_IID(isp, 0);

--- 117 unchanged lines hidden (view full) ---

7581static void
7582isp_setdfltfcparm(ispsoftc_t *isp, int chan)
7583{
7584 fcparam *fcp = FCPARAM(isp, chan);
7585
7586 /*
7587 * Establish some default parameters.
7588 */
7437
7438 /*
7439 * Establish some default parameters.
7440 */
7441 sdp->isp_cmd_dma_burst_enable = 0;
7442 sdp->isp_data_dma_burst_enabl = 1;
7443 sdp->isp_fifo_threshold = 0;
7444 sdp->isp_initiator_id = DEFAULT_IID(isp, 0);

--- 117 unchanged lines hidden (view full) ---

7562static void
7563isp_setdfltfcparm(ispsoftc_t *isp, int chan)
7564{
7565 fcparam *fcp = FCPARAM(isp, chan);
7566
7567 /*
7568 * Establish some default parameters.
7569 */
7589 fcp->role = GET_DEFAULT_ROLE(isp, chan);
7570 fcp->role = DEFAULT_ROLE(isp, chan);
7590 fcp->isp_maxalloc = ICB_DFLT_ALLOC;
7591 fcp->isp_retry_delay = ICB_DFLT_RDELAY;
7592 fcp->isp_retry_count = ICB_DFLT_RCOUNT;
7593 fcp->isp_loopid = DEFAULT_LOOPID(isp, chan);
7594 fcp->isp_wwnn_nvram = DEFAULT_NODEWWN(isp, chan);
7595 fcp->isp_wwpn_nvram = DEFAULT_PORTWWN(isp, chan);
7596 fcp->isp_fwoptions = 0;
7597 fcp->isp_lasthdl = NIL_HANDLE;

--- 710 unchanged lines hidden ---
7571 fcp->isp_maxalloc = ICB_DFLT_ALLOC;
7572 fcp->isp_retry_delay = ICB_DFLT_RDELAY;
7573 fcp->isp_retry_count = ICB_DFLT_RCOUNT;
7574 fcp->isp_loopid = DEFAULT_LOOPID(isp, chan);
7575 fcp->isp_wwnn_nvram = DEFAULT_NODEWWN(isp, chan);
7576 fcp->isp_wwpn_nvram = DEFAULT_PORTWWN(isp, chan);
7577 fcp->isp_fwoptions = 0;
7578 fcp->isp_lasthdl = NIL_HANDLE;

--- 710 unchanged lines hidden ---