From owner-p4-projects@FreeBSD.ORG Mon Aug 16 19:53:07 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1D2CD1065679; Mon, 16 Aug 2010 19:53:07 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D3E571065670 for ; Mon, 16 Aug 2010 19:53:06 +0000 (UTC) (envelope-from jceel@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id A6D2E8FC21 for ; Mon, 16 Aug 2010 19:53:06 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7GJr63x018893 for ; Mon, 16 Aug 2010 19:53:06 GMT (envelope-from jceel@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7GJr6vQ018890 for perforce@freebsd.org; Mon, 16 Aug 2010 19:53:06 GMT (envelope-from jceel@freebsd.org) Date: Mon, 16 Aug 2010 19:53:06 GMT Message-Id: <201008161953.o7GJr6vQ018890@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to jceel@freebsd.org using -f From: Jakub Wojciech Klama To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182477 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Aug 2010 19:53:07 -0000 http://p4web.freebsd.org/@@182477?ac=10 Change 182477 by jceel@jceel on 2010/08/16 19:52:28 Add checking channel capabilities in gpdma_utils Affected files ... .. //depot/projects/soc2010/jceel_dma/sys/dev/gpdma/gpdma_utils.c#2 edit Differences ... ==== //depot/projects/soc2010/jceel_dma/sys/dev/gpdma/gpdma_utils.c#2 (text+ko) ==== @@ -82,7 +82,16 @@ void gpdma_memutils_init(struct resource **res, int nch, void *arg) { + const struct gpdma_capabilities *caps; + + caps = gpdma_get_caps(res[0]); + + if ((caps->dc_ops & GPDMA_COPY) == 0) + return; + if ((caps->dc_buffers & GPDMABUF_BLOCK) == 0) + return; + dma_memutils_channel = res[0]; mtx_init(&dma_memutils_mtx, "dma_memutils", "dma", MTX_DEF); @@ -102,14 +111,12 @@ int err = 0, status; pmap_t pmap; - printf("dma_memcpy(dst=%p, src=%p, len=%d, flags=%d)\n", to, from, len, flags); + if (flags & IS_PHYSICAL) + return (ENOTSUP); if (dma_memutils_channel == NULL) return (ENOTSUP); - if (flags & IS_PHYSICAL) - return (ENOTSUP); - mtx_lock_spin(&dma_memutils_mtx); if (dma_memutils_busy == 1) { mtx_unlock_spin(&dma_memutils_mtx); @@ -138,8 +145,8 @@ gpdma_set_buffer_layout(xfer, GPDMA_BUF_SRC, GPDMABUF_BLOCK); if (flags & IS_PHYSICAL) { - gpdma_load_buffer_raw(xfer, GPDMA_BUF_DST, (bus_addr_t)to, len); - gpdma_load_buffer_raw(xfer, GPDMA_BUF_SRC, (bus_addr_t)from, len); + /* Currently not supported */ + return (ENOTSUP); } else { if (flags & DST_IS_USER) { iovdst.iov_base = to; @@ -190,13 +197,7 @@ status = gpdma_get_transfer_status(cookie); - printf("src: %16D\n", from, " "); - printf("dst: %16D\n", to, " "); - out: - if (err) - printf("error: %d\n", err); - mtx_lock_spin(&dma_memutils_mtx); dma_memutils_busy = 0; mtx_unlock_spin(&dma_memutils_mtx); @@ -206,14 +207,6 @@ int dma_bzero(void *addr, int len, int flags) { -#if 0 - gpdma_transfer_t xfer; - void *cookie; - int err, status; - - if (dma_memutils_channel == NULL) - return (-1); -#endif - - return (0); + /* Currently not supported */ + return (ENOTSUP); }