From owner-svn-src-projects@FreeBSD.ORG Sun May 6 22:36:11 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 74792106566C; Sun, 6 May 2012 22:36:11 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5F2E78FC15; Sun, 6 May 2012 22:36:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q46MaBdn034812; Sun, 6 May 2012 22:36:11 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q46MaBMb034808; Sun, 6 May 2012 22:36:11 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201205062236.q46MaBMb034808@svn.freebsd.org> From: Marcel Moolenaar Date: Sun, 6 May 2012 22:36:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r235111 - projects/altix2/sys/dev/isp X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2012 22:36:11 -0000 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 + +#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)) {