summaryrefslogtreecommitdiffstats
path: root/sys/dev/isp/isp_pci.c
diff options
context:
space:
mode:
authormjacob <mjacob@FreeBSD.org>1999-03-25 22:53:56 +0000
committermjacob <mjacob@FreeBSD.org>1999-03-25 22:53:56 +0000
commit1a6850fac8938af65c077a2130f24ad3f00ceee2 (patch)
tree6f58006374a54445fd6bf78f0bae3ffb0ff03d3c /sys/dev/isp/isp_pci.c
parentcf2cd94c715e5828ea87c545f3a036fbcd65a288 (diff)
downloadFreeBSD-src-1a6850fac8938af65c077a2130f24ad3f00ceee2.zip
FreeBSD-src-1a6850fac8938af65c077a2130f24ad3f00ceee2.tar.gz
enable 1080 LVD support
Diffstat (limited to 'sys/dev/isp/isp_pci.c')
-rw-r--r--sys/dev/isp/isp_pci.c40
1 files changed, 19 insertions, 21 deletions
diff --git a/sys/dev/isp/isp_pci.c b/sys/dev/isp/isp_pci.c
index 7508a0e..6e9975b 100644
--- a/sys/dev/isp/isp_pci.c
+++ b/sys/dev/isp/isp_pci.c
@@ -1,5 +1,5 @@
-/* $Id: isp_pci.c,v 1.15 1999/02/09 01:12:52 mjacob Exp $ */
-/* release_03_16_99 */
+/* $Id: isp_pci.c,v 1.16 1999/03/17 05:07:18 mjacob Exp $ */
+/* release_03_25_99 */
/*
* PCI specific probe and attach routines for Qlogic ISP SCSI adapters.
* FreeBSD Version.
@@ -101,10 +101,10 @@ static struct ispmdvec mdvec_1080 = {
NULL,
isp_pci_reset1,
isp_pci_dumpregs,
- ISP_RISC_CODE,
- ISP_CODE_LENGTH,
- ISP_CODE_ORG,
- ISP_CODE_VERSION,
+ ISP1080_RISC_CODE,
+ ISP1080_CODE_LENGTH,
+ ISP1080_CODE_ORG,
+ ISP1080_CODE_VERSION,
BIU_BURST_ENABLE|BIU_PCI_CONF1_FIFO_64,
0
};
@@ -249,10 +249,7 @@ struct isp_pcisoftc {
#endif
union {
sdparam _x;
- struct {
- fcparam _a;
- char _b[ISP2100_SCRLEN];
- } _y;
+ fcparam _y;
} _z;
};
@@ -284,10 +281,10 @@ isp_pci_probe(pcici_t tag, pcidi_t type)
case PCI_QLOGIC_ISP1080:
#if 0
case PCI_QLOGIC_ISP1240: /* 1240 not ready yet */
+#endif
x = "Qlogic ISP 1080/1240 PCI SCSI Adapter";
break;
#endif
-#endif
#ifndef ISP_DISABLE_2100_SUPPORT
case PCI_QLOGIC_ISP2100:
x = "Qlogic ISP 2100 PCI FC-AL Adapter";
@@ -404,7 +401,7 @@ isp_pci_attach(pcici_t config_id, int unit)
if (data == PCI_QLOGIC_ISP2100) {
isp->isp_mdvec = &mdvec_2100;
isp->isp_type = ISP_HA_FC_2100;
- isp->isp_param = &pcs->_z._y._a;
+ isp->isp_param = &pcs->_z._y;
pcs->pci_poff[MBOX_BLOCK >> _BLK_REG_SHFT] =
PCI_MBOX_REGS2100_OFF;
}
@@ -485,7 +482,7 @@ isp_pci_attach(pcici_t config_id, int unit)
isp_attach(isp);
if (isp->isp_state != ISP_RUNSTATE) {
/* If we're a Fibre Channel Card, we allow deferred attach */
- if (isp->isp_type & ISP_HA_SCSI) {
+ if (IS_SCSI(isp)) {
isp_uninit(isp);
free(pcs, M_DEVBUF);
}
@@ -673,14 +670,6 @@ isp_pci_mbxdma(struct ispsoftc *isp)
bus_dmamap_load(pci->cntrol_dmat, pci->cntrol_dmap, isp->isp_result,
ISP_QUEUE_SIZE(RESULT_QUEUE_LEN), isp_map_result, pci, 0);
- if (isp->isp_type & ISP_HA_FC) {
- fcparam *fcp = (fcparam *) isp->isp_param;
- fcp->isp_scratch = isp->isp_result +
- ISP_QUEUE_SIZE(RESULT_QUEUE_LEN);
- bus_dmamap_load(pci->cntrol_dmat, pci->cntrol_dmap,
- fcp->isp_scratch, ISP2100_SCRLEN, isp_map_fcscrt, pci, 0);
- }
-
/*
* Use this opportunity to initialize/create data DMA maps.
*/
@@ -692,6 +681,15 @@ isp_pci_mbxdma(struct ispsoftc *isp)
return (1);
}
}
+
+ if (isp->isp_type & ISP_HA_FC) {
+ fcparam *fcp = (fcparam *) isp->isp_param;
+ fcp->isp_scratch = base +
+ ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN) +
+ ISP_QUEUE_SIZE(RESULT_QUEUE_LEN);
+ bus_dmamap_load(pci->cntrol_dmat, pci->cntrol_dmap,
+ fcp->isp_scratch, ISP2100_SCRLEN, isp_map_fcscrt, pci, 0);
+ }
return (0);
}
OpenPOWER on IntegriCloud