Date: Sun, 6 May 2012 22:36:11 +0000 (UTC) From: Marcel Moolenaar <marcel@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r235111 - projects/altix2/sys/dev/isp Message-ID: <201205062236.q46MaBMb034808@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: marcel Date: Sun May 6 22:36:10 2012 New Revision: 235111 URL: http://svn.freebsd.org/changeset/base/235111 Log: Hook isp(4) up to busdma/mi is ISP_USE_BUSDMA is set. For now, only busdma_tag_create() and busdma_tag_derive() are used. Everything else fails. Modified: projects/altix2/sys/dev/isp/isp_freebsd.h projects/altix2/sys/dev/isp/isp_pci.c projects/altix2/sys/dev/isp/isp_sbus.c Modified: projects/altix2/sys/dev/isp/isp_freebsd.h ============================================================================== --- projects/altix2/sys/dev/isp/isp_freebsd.h Sun May 6 22:30:45 2012 (r235110) +++ projects/altix2/sys/dev/isp/isp_freebsd.h Sun May 6 22:36:10 2012 (r235111) @@ -658,10 +658,26 @@ void isp_common_dmateardown(ispsoftc_t * /* * Platform Version specific defines */ +#ifdef ISP_USE_BUSDMA +#include <sys/busdma.h> + +#define BUS_DMA_ROOTARG(x) x +#define isp_dma_tag_create(dev, align, bndry, lowaddr, hiaddr, filter, \ + f_arg, maxsize, nsegs, maxsegsz, flags, tag_p) \ + busdma_tag_create(dev, lowaddr, align, bndry, maxsize, nsegs, \ + maxsegsz, flags, (busdma_tag_t *)tag_p) + +#define isp_dma_tag_derive(parent, align, bndry, lowaddr, highaddr, \ + filter, f_arg, maxsize, nsegs, maxsegsz, flags, tag_p) \ + busdma_tag_derive((busdma_tag_t)parent, lowaddr, align, bndry, \ + maxsize, nsegs, maxsegsz, flags, (busdma_tag_t *)tag_p) +#else #define BUS_DMA_ROOTARG(x) bus_get_dma_tag(x) #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, &isp->isp_osinfo.lock, z) +#define isp_dma_tag_derive isp_dma_tag_create +#endif /* ISP_USE_BUSDMA */ #define isp_setup_intr bus_setup_intr Modified: projects/altix2/sys/dev/isp/isp_pci.c ============================================================================== --- projects/altix2/sys/dev/isp/isp_pci.c Sun May 6 22:30:45 2012 (r235110) +++ projects/altix2/sys/dev/isp/isp_pci.c Sun May 6 22:36:10 2012 (r235111) @@ -1604,7 +1604,7 @@ isp_pci_mbxdma(ispsoftc_t *isp) * Create a tag for the control spaces. We don't always need this * to be 32 bits, but we do this for simplicity and speed's sake. */ - if (isp_dma_tag_create(isp->isp_osinfo.dmat, QENTRY_LEN, slim, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, len, ns, slim, 0, &isp->isp_osinfo.cdmat)) { + if (isp_dma_tag_derive(isp->isp_osinfo.dmat, QENTRY_LEN, slim, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, len, ns, slim, 0, &isp->isp_osinfo.cdmat)) { isp_prt(isp, ISP_LOGERR, "cannot create a dma tag for control spaces"); free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); free(isp->isp_xflist, M_DEVBUF); @@ -1641,7 +1641,7 @@ isp_pci_mbxdma(ispsoftc_t *isp) if (IS_FC(isp)) { for (cmap = 0; cmap < isp->isp_nchan; cmap++) { struct isp_fc *fc = ISP_FC_PC(isp, cmap); - if (isp_dma_tag_create(isp->isp_osinfo.dmat, 64, slim, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, ISP_FC_SCRLEN, 1, slim, 0, &fc->tdmat)) { + if (isp_dma_tag_derive(isp->isp_osinfo.dmat, 64, slim, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, ISP_FC_SCRLEN, 1, slim, 0, &fc->tdmat)) { goto bad; } if (bus_dmamem_alloc(fc->tdmat, (void **)&base, BUS_DMA_NOWAIT | BUS_DMA_COHERENT, &fc->tdmap) != 0) { Modified: projects/altix2/sys/dev/isp/isp_sbus.c ============================================================================== --- projects/altix2/sys/dev/isp/isp_sbus.c Sun May 6 22:30:45 2012 (r235110) +++ projects/altix2/sys/dev/isp/isp_sbus.c Sun May 6 22:36:10 2012 (r235111) @@ -484,7 +484,7 @@ isp_sbus_mbxdma(ispsoftc_t *isp) len += ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(isp)); ns = (len / PAGE_SIZE) + 1; - if (isp_dma_tag_create(isp->isp_osinfo.dmat, QENTRY_LEN, + if (isp_dma_tag_derive(isp->isp_osinfo.dmat, QENTRY_LEN, BUS_SPACE_MAXADDR_24BIT+1, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR_32BIT, NULL, NULL, len, ns, BUS_SPACE_MAXADDR_24BIT, 0, &isp->isp_osinfo.cdmat)) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201205062236.q46MaBMb034808>