diff options
author | mjacob <mjacob@FreeBSD.org> | 2006-02-02 21:31:34 +0000 |
---|---|---|
committer | mjacob <mjacob@FreeBSD.org> | 2006-02-02 21:31:34 +0000 |
commit | e92441a62f29aaeab7aea6b98a836237046cf0c6 (patch) | |
tree | 52e570d14870a49bb56aecb56e5d225ddcdfac8e /sys/dev/isp/isp_pci.c | |
parent | 78068dc67b21c89bf1d135f9f6ce32745a14d5e7 (diff) | |
download | FreeBSD-src-e92441a62f29aaeab7aea6b98a836237046cf0c6.zip FreeBSD-src-e92441a62f29aaeab7aea6b98a836237046cf0c6.tar.gz |
Remove use of inlines and use the functions as a library.
Larger code space, possibly performance hit, but more portable.
Certainly less questionable use of inlining.
Suggested by: des
Diffstat (limited to 'sys/dev/isp/isp_pci.c')
-rw-r--r-- | sys/dev/isp/isp_pci.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/sys/dev/isp/isp_pci.c b/sys/dev/isp/isp_pci.c index 4be6c41..f62e415 100644 --- a/sys/dev/isp/isp_pci.c +++ b/sys/dev/isp/isp_pci.c @@ -877,7 +877,7 @@ isp_pci_intr(void *arg) bus_space_write_2(pcs->pci_st, pcs->pci_sh, off, v) -static INLINE int +static __inline int isp_pci_rd_debounced(struct ispsoftc *isp, int off, u_int16_t *rp) { struct isp_pcisoftc *pcs = (struct isp_pcisoftc *) isp; @@ -1128,7 +1128,9 @@ isp_pci_mbxdma(struct ispsoftc *isp) caddr_t base; u_int32_t len; int i, error, ns; - bus_size_t alim, slim, xlim; + bus_size_t slim; /* segment size */ + bus_size_t llim; /* low limit of unavailable dma */ + bus_size_t hlim; /* low limit of unavailable dma */ struct imush im; /* @@ -1139,19 +1141,19 @@ isp_pci_mbxdma(struct ispsoftc *isp) } #ifdef ISP_DAC_SUPPORTED - alim = BUS_SPACE_UNRESTRICTED; - xlim = BUS_SPACE_MAXADDR_32BIT; + llim = hlim = BUS_SPACE_MAXADDR; #else - xlim = alim = BUS_SPACE_MAXADDR_32BIT; + llim = BUS_SPACE_MAXADDR_32BIT; + hlim = BUS_SPACE_MAXADDR; #endif if (IS_ULTRA2(isp) || IS_FC(isp) || IS_1240(isp)) { - slim = BUS_SPACE_MAXADDR_32BIT; + slim = (bus_size_t) (1ULL << 32); } else { - slim = BUS_SPACE_MAXADDR_24BIT; + slim = (1 << 24); } ISP_UNLOCK(isp); - if (bus_dma_tag_create(NULL, 1, slim+1, alim, alim, + if (bus_dma_tag_create(NULL, 1, slim, llim, hlim, NULL, NULL, BUS_SPACE_MAXSIZE, ISP_NSEGS, slim, 0, busdma_lock_mutex, &Giant, &pcs->dmat)) { isp_prt(isp, ISP_LOGERR, "could not create master dma tag"); @@ -1198,7 +1200,11 @@ isp_pci_mbxdma(struct ispsoftc *isp) } ns = (len / PAGE_SIZE) + 1; - if (bus_dma_tag_create(pcs->dmat, QENTRY_LEN, slim+1, xlim, xlim, + /* + * Create a tag for the control spaces- force it to within 32 bits. + */ + if (bus_dma_tag_create(pcs->dmat, QENTRY_LEN, slim, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, len, ns, slim, 0, busdma_lock_mutex, &Giant, &isp->isp_cdmat)) { isp_prt(isp, ISP_LOGERR, |