1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-30 16:51:41 +00:00

Remove dependence on MAXPHYS.

MFC after:	1 month
This commit is contained in:
Matt Jacob 2012-08-21 16:18:11 +00:00
parent be305c9c9f
commit 662daadde0
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=239502
3 changed files with 8 additions and 6 deletions

View File

@ -726,9 +726,6 @@ int isp_fcp_next_crn(ispsoftc_t *, uint8_t *, XS_T *);
#define isp_sim_alloc(a, b, c, d, e, f, g, h) \ #define isp_sim_alloc(a, b, c, d, e, f, g, h) \
cam_sim_alloc(a, b, c, d, e, &(d)->isp_osinfo.lock, f, g, h) cam_sim_alloc(a, b, c, d, e, &(d)->isp_osinfo.lock, f, g, h)
/* Should be BUS_SPACE_MAXSIZE, but MAXPHYS is larger than BUS_SPACE_MAXSIZE */
#define ISP_NSEGS ((MAXPHYS / PAGE_SIZE) + 1)
#define ISP_PATH_PRT(i, l, p, ...) \ #define ISP_PATH_PRT(i, l, p, ...) \
if ((l) == ISP_LOGALL || ((l)& (i)->isp_dblev) != 0) { \ if ((l) == ISP_LOGALL || ((l)& (i)->isp_dblev) != 0) { \
xpt_print(p, __VA_ARGS__); \ xpt_print(p, __VA_ARGS__); \

View File

@ -1525,7 +1525,7 @@ static int
isp_pci_mbxdma(ispsoftc_t *isp) isp_pci_mbxdma(ispsoftc_t *isp)
{ {
caddr_t base; caddr_t base;
uint32_t len; uint32_t len, nsegs;
int i, error, ns, cmap = 0; int i, error, ns, cmap = 0;
bus_size_t slim; /* segment size */ bus_size_t slim; /* segment size */
bus_addr_t llim; /* low limit of unavailable dma */ bus_addr_t llim; /* low limit of unavailable dma */
@ -1567,6 +1567,11 @@ isp_pci_mbxdma(ispsoftc_t *isp)
return (1); return (1);
} }
if (isp->isp_osinfo.sixtyfourbit) {
nsegs = ISP_NSEG64_MAX;
} else {
nsegs = ISP_NSEG_MAX;
}
#ifdef ISP_TARGET_MODE #ifdef ISP_TARGET_MODE
/* /*
* XXX: We don't really support 64 bit target mode for parallel scsi yet * XXX: We don't really support 64 bit target mode for parallel scsi yet
@ -1579,7 +1584,7 @@ isp_pci_mbxdma(ispsoftc_t *isp)
} }
#endif #endif
if (isp_dma_tag_create(BUS_DMA_ROOTARG(ISP_PCD(isp)), 1, slim, llim, hlim, NULL, NULL, BUS_SPACE_MAXSIZE, ISP_NSEGS, slim, 0, &isp->isp_osinfo.dmat)) { if (isp_dma_tag_create(BUS_DMA_ROOTARG(ISP_PCD(isp)), 1, slim, llim, hlim, NULL, NULL, BUS_SPACE_MAXSIZE, nsegs, slim, 0, &isp->isp_osinfo.dmat)) {
free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); free(isp->isp_osinfo.pcmd_pool, M_DEVBUF);
ISP_LOCK(isp); ISP_LOCK(isp);
isp_prt(isp, ISP_LOGERR, "could not create master dma tag"); isp_prt(isp, ISP_LOGERR, "could not create master dma tag");

View File

@ -497,7 +497,7 @@ isp_sbus_mbxdma(ispsoftc_t *isp)
if (isp_dma_tag_create(BUS_DMA_ROOTARG(ISP_SBD(isp)), 1, if (isp_dma_tag_create(BUS_DMA_ROOTARG(ISP_SBD(isp)), 1,
BUS_SPACE_MAXADDR_24BIT+1, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR_24BIT+1, BUS_SPACE_MAXADDR_32BIT,
BUS_SPACE_MAXADDR_32BIT, NULL, NULL, BUS_SPACE_MAXSIZE_32BIT, BUS_SPACE_MAXADDR_32BIT, NULL, NULL, BUS_SPACE_MAXSIZE_32BIT,
ISP_NSEGS, BUS_SPACE_MAXADDR_24BIT, 0, &isp->isp_osinfo.dmat)) { ISP_NSEG_MAX, BUS_SPACE_MAXADDR_24BIT, 0, &isp->isp_osinfo.dmat)) {
isp_prt(isp, ISP_LOGERR, "could not create master dma tag"); isp_prt(isp, ISP_LOGERR, "could not create master dma tag");
free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); free(isp->isp_osinfo.pcmd_pool, M_DEVBUF);
free(isp->isp_xflist, M_DEVBUF); free(isp->isp_xflist, M_DEVBUF);