diff options
author | mjacob <mjacob@FreeBSD.org> | 2007-01-23 00:02:29 +0000 |
---|---|---|
committer | mjacob <mjacob@FreeBSD.org> | 2007-01-23 00:02:29 +0000 |
commit | 2df6044b61d3d828971f1d8cca95a1f6a6a1d6b1 (patch) | |
tree | 697c8c64540156749766d8f2e30aa703aa0c530c /sys/dev/isp/isp_pci.c | |
parent | 3624354c54eb965482e4bb6a2769c0feb7248692 (diff) | |
download | FreeBSD-src-2df6044b61d3d828971f1d8cca95a1f6a6a1d6b1.zip FreeBSD-src-2df6044b61d3d828971f1d8cca95a1f6a6a1d6b1.tar.gz |
Clean up some of the various platform and release specific dma tag
stuff so it is centralized in isp_freebsd.h.
Take out PCI posting flushed in qla2100/2200 register reads except for
2100s.
Diffstat (limited to 'sys/dev/isp/isp_pci.c')
-rw-r--r-- | sys/dev/isp/isp_pci.c | 35 |
1 files changed, 10 insertions, 25 deletions
diff --git a/sys/dev/isp/isp_pci.c b/sys/dev/isp/isp_pci.c index 2b603e9..652e4dc 100644 --- a/sys/dev/isp/isp_pci.c +++ b/sys/dev/isp/isp_pci.c @@ -1462,13 +1462,19 @@ isp_pci_wr_reg(ispsoftc_t *isp, int regoff, uint32_t val) oldconf = BXR2(pcs, IspVirt2Off(isp, BIU_CONF1)); BXW2(pcs, IspVirt2Off(isp, BIU_CONF1), oldconf | BIU_PCI_CONF1_SXP); - junk = BXR2(pcs, IspVirt2Off(isp, BIU_CONF1)); + if (IS_2100(isp)) { + junk = BXR2(pcs, IspVirt2Off(isp, BIU_CONF1)); + } } BXW2(pcs, IspVirt2Off(isp, regoff), val); - junk = BXR2(pcs, IspVirt2Off(isp, regoff)); + if (IS_2100(isp)) { + junk = BXR2(pcs, IspVirt2Off(isp, regoff)); + } if ((regoff & _BLK_REG_MASK) == SXP_BLOCK) { BXW2(pcs, IspVirt2Off(isp, BIU_CONF1), oldconf); - junk = BXR2(pcs, IspVirt2Off(isp, BIU_CONF1)); + if (IS_2100(isp)) { + junk = BXR2(pcs, IspVirt2Off(isp, BIU_CONF1)); + } } } @@ -1685,27 +1691,6 @@ imc(void *arg, bus_dma_segment_t *segs, int nseg, int error) } } -/* - * Should be BUS_SPACE_MAXSIZE, but MAXPHYS is larger than BUS_SPACE_MAXSIZE - */ -#define ISP_NSEGS ((MAXPHYS / PAGE_SIZE) + 1) - -#if __FreeBSD_version < 500000 -#define BUS_DMA_ROOTARG NULL -#define isp_dma_tag_create(a, b, c, d, e, f, g, h, i, j, k, z) \ - bus_dma_tag_create(a, b, c, d, e, f, g, h, i, j, k, z) -#elif __FreeBSD_version < 700020 -#define BUS_DMA_ROOTARG NULL -#define isp_dma_tag_create(a, b, c, d, e, f, g, h, i, j, k, z) \ - bus_dma_tag_create(a, b, c, d, e, f, g, h, i, j, k, \ - busdma_lock_mutex, &Giant, z) -#else -#define BUS_DMA_ROOTARG bus_get_dma_tag(pcs->pci_dev) -#define isp_dma_tag_create(a, b, c, d, e, f, g, h, i, j, k, z) \ - bus_dma_tag_create(a, b, c, d, e, f, g, h, i, j, k, \ - busdma_lock_mutex, &Giant, z) -#endif - static int isp_pci_mbxdma(ispsoftc_t *isp) { @@ -1750,7 +1735,7 @@ isp_pci_mbxdma(ispsoftc_t *isp) #endif ISP_UNLOCK(isp); - if (isp_dma_tag_create(BUS_DMA_ROOTARG, 1, slim, llim, + if (isp_dma_tag_create(BUS_DMA_ROOTARG(pcs->pci_dev), 1, slim, llim, hlim, NULL, NULL, BUS_SPACE_MAXSIZE, ISP_NSEGS, slim, 0, &pcs->dmat)) { isp_prt(isp, ISP_LOGERR, "could not create master dma tag"); |