summaryrefslogtreecommitdiffstats
path: root/sys/dev/isp/ispmbox.h
diff options
context:
space:
mode:
authormjacob <mjacob@FreeBSD.org>2012-06-24 17:30:54 +0000
committermjacob <mjacob@FreeBSD.org>2012-06-24 17:30:54 +0000
commit68a46062835d8cff534b97849a134394a6df542a (patch)
tree9b2d12d0e861dfab4afb3ba4106f5c26ac04c40e /sys/dev/isp/ispmbox.h
parent422f597a3781b5c11964434772a491493b9ea5a8 (diff)
downloadFreeBSD-src-68a46062835d8cff534b97849a134394a6df542a.zip
FreeBSD-src-68a46062835d8cff534b97849a134394a6df542a.tar.gz
Clean up multi-id mode so it's driven by the f/w loaded,
not by some hint setting. Do more preparations for FC-Tape. Clean up resource counting for 24XX or later chipsets so we find out after EXEC_FIRMWARE what is actually supported. Set target mode exchange count based upon whether or not we are supporting simultaneous target/initiator mode. Clean up some old (pre-24XX) xfwoption and zfwoption issues. Sponsored by: Spectralogic MFC after: 3 days
Diffstat (limited to 'sys/dev/isp/ispmbox.h')
-rw-r--r--sys/dev/isp/ispmbox.h21
1 files changed, 18 insertions, 3 deletions
diff --git a/sys/dev/isp/ispmbox.h b/sys/dev/isp/ispmbox.h
index 6ceb0f7..c86ce60 100644
--- a/sys/dev/isp/ispmbox.h
+++ b/sys/dev/isp/ispmbox.h
@@ -851,21 +851,36 @@ typedef struct {
#define ISP2400_FW_ATTR_EXPFW 0x2000
#define ISP2400_FW_ATTR_EXTNDED 0x8000
-#define ISP_CAP_FCTAPE(isp) \
- (IS_24XX(isp)? 1 : (isp->isp_fwattr & ISP_FW_ATTR_FCTAPE))
+/*
+ * These are either manifestly true or are dependent on f/w attributes
+ */
#define ISP_CAP_TMODE(isp) \
(IS_24XX(isp)? 1 : (isp->isp_fwattr & ISP_FW_ATTR_TMODE))
#define ISP_CAP_SCCFW(isp) \
(IS_24XX(isp)? 1 : (isp->isp_fwattr & ISP_FW_ATTR_SCCLUN))
#define ISP_CAP_2KLOGIN(isp) \
(IS_24XX(isp)? 1 : (isp->isp_fwattr & ISP_FW_ATTR_2KLOGINS))
+
+/*
+ * This is only true for 24XX cards with this f/w attribute
+ */
#define ISP_CAP_MULTI_ID(isp) \
(IS_24XX(isp)? (isp->isp_fwattr & ISP2400_FW_ATTR_MULTIID) : 0)
-
#define ISP_GET_VPIDX(isp, tag) \
(ISP_CAP_MULTI_ID(isp) ? tag : 0)
/*
+ * This is true manifestly or is dependent on a f/w attribute
+ * but may or may not actually be *enabled*. In any case, it
+ * is enabled on a per-channel basis.
+ */
+#define ISP_CAP_FCTAPE(isp) \
+ (IS_24XX(isp)? 1 : (isp->isp_fwattr & ISP_FW_ATTR_FCTAPE))
+
+#define ISP_FCTAPE_ENABLED(isp, chan) \
+ (IS_24XX(isp)? (FCPARAM(isp, chan)->isp_xfwoptions & ICB2400_OPT2_FCTAPE) != 0 : (FCPARAM(isp, chan)->isp_xfwoptions & ICBXOPT_FCTAPE) != 0)
+
+/*
* Reduced Interrupt Operation Response Queue Entries
*/
OpenPOWER on IntegriCloud