summaryrefslogtreecommitdiffstats
path: root/sys/dev/isp/isp_pci.c
diff options
context:
space:
mode:
authormjacob <mjacob@FreeBSD.org>2006-02-02 21:31:34 +0000
committermjacob <mjacob@FreeBSD.org>2006-02-02 21:31:34 +0000
commite92441a62f29aaeab7aea6b98a836237046cf0c6 (patch)
tree52e570d14870a49bb56aecb56e5d225ddcdfac8e /sys/dev/isp/isp_pci.c
parent78068dc67b21c89bf1d135f9f6ce32745a14d5e7 (diff)
downloadFreeBSD-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.c24
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,
OpenPOWER on IntegriCloud