Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys Add bus_dma overrides. From dyoung



details:   https://anonhg.NetBSD.org/src/rev/857578d3477a
branches:  trunk
changeset: 769158:857578d3477a
user:      christos <christos%NetBSD.org@localhost>
date:      Thu Sep 01 15:10:31 2011 +0000

description:
Add bus_dma overrides. From dyoung

diffstat:

 sys/arch/i386/eisa/eisa_machdep.c  |   24 +-
 sys/arch/i386/mca/mca_machdep.c    |   24 +--
 sys/arch/x86/include/bus_private.h |   72 +-------
 sys/arch/x86/isa/isa_machdep.c     |   22 +-
 sys/arch/x86/pci/pci_machdep.c     |   40 +---
 sys/arch/x86/x86/bus_dma.c         |  371 ++++++++++++++++++++++++++++++++----
 sys/arch/xen/xen/isa_machdep.c     |   22 +-
 sys/arch/xen/xen/xpci_xenbus.c     |   40 +---
 sys/sys/bus.h                      |   22 +-
 9 files changed, 357 insertions(+), 280 deletions(-)

diffs (truncated from 1078 to 300 lines):

diff -r 6464c91670b9 -r 857578d3477a sys/arch/i386/eisa/eisa_machdep.c
--- a/sys/arch/i386/eisa/eisa_machdep.c Thu Sep 01 15:03:41 2011 +0000
+++ b/sys/arch/i386/eisa/eisa_machdep.c Thu Sep 01 15:10:31 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: eisa_machdep.c,v 1.36 2011/08/27 09:32:12 christos Exp $       */
+/*     $NetBSD: eisa_machdep.c,v 1.37 2011/09/01 15:10:31 christos Exp $       */
 
 /*-
  * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
@@ -65,7 +65,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: eisa_machdep.c,v 1.36 2011/08/27 09:32:12 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: eisa_machdep.c,v 1.37 2011/09/01 15:10:31 christos Exp $");
 
 #include "ioapic.h"
 
@@ -91,6 +91,8 @@
 /*
  * EISA doesn't have any special needs; just use the generic versions
  * of these funcions.
+ *
+ * XXX really doesn't use bounce buffers? --dyoung
  */
 struct x86_bus_dma_tag eisa_bus_dma_tag = {
        ._tag_needs_free        = 0,
@@ -98,24 +100,6 @@
        ._bounce_alloc_lo       = 0,
        ._bounce_alloc_hi       = 0,
        ._may_bounce            = NULL,
-
-       ._dmamap_create         = _bus_dmamap_create,
-       ._dmamap_destroy        = _bus_dmamap_destroy,
-       ._dmamap_load           = _bus_dmamap_load,
-       ._dmamap_load_mbuf      = _bus_dmamap_load_mbuf,
-       ._dmamap_load_uio       = _bus_dmamap_load_uio,
-       ._dmamap_load_raw       = _bus_dmamap_load_raw,
-       ._dmamap_unload         = _bus_dmamap_unload,
-       ._dmamap_sync           = NULL,
-
-       ._dmamem_alloc          = _bus_dmamem_alloc,
-       ._dmamem_free           = _bus_dmamem_free,
-       ._dmamem_map            = _bus_dmamem_map,
-       ._dmamem_unmap          = _bus_dmamem_unmap,
-       ._dmamem_mmap           = _bus_dmamem_mmap,
-
-       ._dmatag_subregion      = _bus_dmatag_subregion,
-       ._dmatag_destroy        = _bus_dmatag_destroy,
 };
 
 void
diff -r 6464c91670b9 -r 857578d3477a sys/arch/i386/mca/mca_machdep.c
--- a/sys/arch/i386/mca/mca_machdep.c   Thu Sep 01 15:03:41 2011 +0000
+++ b/sys/arch/i386/mca/mca_machdep.c   Thu Sep 01 15:10:31 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: mca_machdep.c,v 1.42 2011/08/27 09:32:12 christos Exp $        */
+/*     $NetBSD: mca_machdep.c,v 1.43 2011/09/01 15:10:31 christos Exp $        */
 
 /*-
  * Copyright (c) 2000, 2001 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mca_machdep.c,v 1.42 2011/08/27 09:32:12 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mca_machdep.c,v 1.43 2011/09/01 15:10:31 christos Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -106,24 +106,6 @@
        ._bounce_alloc_lo       = 0,
        ._bounce_alloc_hi       = MCA_DMA_BOUNCE_THRESHOLD,
        ._may_bounce            = NULL,
-
-       ._dmamap_create         = _bus_dmamap_create,
-       ._dmamap_destroy        = _bus_dmamap_destroy,
-       ._dmamap_load           = _bus_dmamap_load,
-       ._dmamap_load_mbuf      = _bus_dmamap_load_mbuf,
-       ._dmamap_load_uio       = _bus_dmamap_load_uio,
-       ._dmamap_load_raw       = _bus_dmamap_load_raw,
-       ._dmamap_unload         = _bus_dmamap_unload,
-       ._dmamap_sync           = _bus_dmamap_sync,
-
-       ._dmamem_alloc          = _bus_dmamem_alloc,
-       ._dmamem_free           = _bus_dmamem_free,
-       ._dmamem_map            = _bus_dmamem_map,
-       ._dmamem_unmap          = _bus_dmamem_unmap,
-       ._dmamem_mmap           = _bus_dmamem_mmap,
-
-       ._dmatag_subregion      = _bus_dmatag_subregion,
-       ._dmatag_destroy        = _bus_dmatag_destroy,
 };
 
 /* Updated in mca_busprobe() if appropriate. */
@@ -477,7 +459,7 @@
         * MCA DMA transfer can be maximum 65536 bytes long and must
         * be in one chunk. No specific boundary constraints are present.
         */
-       if ((error = _bus_dmamap_create(t, size, 1, 65536, 0, flags, dmamp)))
+       if ((error = bus_dmamap_create(t, size, 1, 65536, 0, flags, dmamp)))
                return (error);
 
        cookie = (struct x86_isa_dma_cookie *) (*dmamp)->_dm_cookie;
diff -r 6464c91670b9 -r 857578d3477a sys/arch/x86/include/bus_private.h
--- a/sys/arch/x86/include/bus_private.h        Thu Sep 01 15:03:41 2011 +0000
+++ b/sys/arch/x86/include/bus_private.h        Thu Sep 01 15:10:31 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: bus_private.h,v 1.13 2011/08/31 20:21:06 dyoung Exp $  */
+/*     $NetBSD: bus_private.h,v 1.14 2011/09/01 15:10:31 christos Exp $        */
 /*     NetBSD: bus.h,v 1.8 2005/03/09 19:04:46 matt Exp        */
 
 /*-
@@ -65,43 +65,6 @@
 #if !defined(_X86_BUS_PRIVATE_H_)
 #define        _X86_BUS_PRIVATE_H_
 
-int    _bus_dmamap_create(bus_dma_tag_t, bus_size_t, int, bus_size_t,
-           bus_size_t, int, bus_dmamap_t *);
-void   _bus_dmamap_destroy(bus_dma_tag_t, bus_dmamap_t);
-int    _bus_dmamap_load(bus_dma_tag_t, bus_dmamap_t, void *,
-           bus_size_t, struct proc *, int);
-int    _bus_dmamap_load_mbuf(bus_dma_tag_t, bus_dmamap_t,
-           struct mbuf *, int);
-int    _bus_dmamap_load_uio(bus_dma_tag_t, bus_dmamap_t,
-           struct uio *, int);
-int    _bus_dmamap_load_raw(bus_dma_tag_t, bus_dmamap_t,
-           bus_dma_segment_t *, int, bus_size_t, int);
-void   _bus_dmamap_unload(bus_dma_tag_t, bus_dmamap_t);
-void   _bus_dmamap_sync(bus_dma_tag_t, bus_dmamap_t, bus_addr_t,
-           bus_size_t, int);
-
-int    _bus_dmamem_alloc(bus_dma_tag_t tag, bus_size_t size,
-           bus_size_t alignment, bus_size_t boundary,
-           bus_dma_segment_t *segs, int nsegs, int *rsegs, int flags);
-void   _bus_dmamem_free(bus_dma_tag_t tag, bus_dma_segment_t *segs,
-           int nsegs);
-int    _bus_dmamem_map(bus_dma_tag_t tag, bus_dma_segment_t *segs,
-           int nsegs, size_t size, void **kvap, int flags);
-void   _bus_dmamem_unmap(bus_dma_tag_t tag, void *kva, size_t size);
-paddr_t        _bus_dmamem_mmap(bus_dma_tag_t tag, bus_dma_segment_t *segs,
-           int nsegs, off_t off, int prot, int flags);
-
-int    _bus_dmatag_subregion(bus_dma_tag_t tag, bus_addr_t min_addr,
-           bus_addr_t max_addr, bus_dma_tag_t *newtag, int flags);
-void   _bus_dmatag_destroy(bus_dma_tag_t tag);
-
-#ifndef _BUS_DMAMEM_ALLOC_RANGE
-int    _bus_dmamem_alloc_range(bus_dma_tag_t tag, bus_size_t size,
-           bus_size_t alignment, bus_size_t boundary,
-           bus_dma_segment_t *segs, int nsegs, int *rsegs, int flags,
-           bus_addr_t low, bus_addr_t high);
-#endif
-
 /*
  * Cookie used for bounce buffers. A pointer to one of these it stashed in
  * the DMA map.
@@ -214,39 +177,6 @@
        bus_addr_t _bounce_alloc_lo;
        bus_addr_t _bounce_alloc_hi;
        int     (*_may_bounce)(bus_dma_tag_t, bus_dmamap_t, int, int *);
-
-       /*
-        * DMA mapping methods.
-        */
-       int     (*_dmamap_create)(bus_dma_tag_t, bus_size_t, int,
-                   bus_size_t, bus_size_t, int, bus_dmamap_t *);
-       void    (*_dmamap_destroy)(bus_dma_tag_t, bus_dmamap_t);
-       int     (*_dmamap_load)(bus_dma_tag_t, bus_dmamap_t, void *,
-                   bus_size_t, struct proc *, int);
-       int     (*_dmamap_load_mbuf)(bus_dma_tag_t, bus_dmamap_t,
-                   struct mbuf *, int);
-       int     (*_dmamap_load_uio)(bus_dma_tag_t, bus_dmamap_t,
-                   struct uio *, int);
-       int     (*_dmamap_load_raw)(bus_dma_tag_t, bus_dmamap_t,
-                   bus_dma_segment_t *, int, bus_size_t, int);
-       void    (*_dmamap_unload)(bus_dma_tag_t, bus_dmamap_t);
-       void    (*_dmamap_sync)(bus_dma_tag_t, bus_dmamap_t,
-                   bus_addr_t, bus_size_t, int);
-
-       /*
-        * DMA memory utility functions.
-        */
-       int     (*_dmamem_alloc)(bus_dma_tag_t, bus_size_t, bus_size_t,
-                   bus_size_t, bus_dma_segment_t *, int, int *, int);
-       void    (*_dmamem_free)(bus_dma_tag_t, bus_dma_segment_t *, int);
-       int     (*_dmamem_map)(bus_dma_tag_t, bus_dma_segment_t *,
-                   int, size_t, void **, int);
-       void    (*_dmamem_unmap)(bus_dma_tag_t, void *, size_t);
-       paddr_t (*_dmamem_mmap)(bus_dma_tag_t, bus_dma_segment_t *,
-                   int, off_t, int, int);
-       int     (*_dmatag_subregion)(bus_dma_tag_t, bus_addr_t, bus_addr_t,
-                   bus_dma_tag_t *, int);
-       void    (*_dmatag_destroy)(bus_dma_tag_t);
 };
 
 #endif /* !defined(_X86_BUS_PRIVATE_H_) */
diff -r 6464c91670b9 -r 857578d3477a sys/arch/x86/isa/isa_machdep.c
--- a/sys/arch/x86/isa/isa_machdep.c    Thu Sep 01 15:03:41 2011 +0000
+++ b/sys/arch/x86/isa/isa_machdep.c    Thu Sep 01 15:10:31 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: isa_machdep.c,v 1.29 2011/08/27 09:32:11 christos Exp $        */
+/*     $NetBSD: isa_machdep.c,v 1.30 2011/09/01 15:10:31 christos Exp $        */
 
 /*-
  * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -65,7 +65,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: isa_machdep.c,v 1.29 2011/08/27 09:32:11 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: isa_machdep.c,v 1.30 2011/09/01 15:10:31 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -101,24 +101,6 @@
        ._bounce_alloc_lo       = 0,
        ._bounce_alloc_hi       = ISA_DMA_BOUNCE_THRESHOLD,
        ._may_bounce            = _isa_dma_may_bounce,
-
-       ._dmamap_create         = _bus_dmamap_create,
-       ._dmamap_destroy        = _bus_dmamap_destroy,
-       ._dmamap_load           = _bus_dmamap_load,
-       ._dmamap_load_mbuf      = _bus_dmamap_load_mbuf,
-       ._dmamap_load_uio       = _bus_dmamap_load_uio,
-       ._dmamap_load_raw       = _bus_dmamap_load_raw,
-       ._dmamap_unload         = _bus_dmamap_unload,
-       ._dmamap_sync           = _bus_dmamap_sync,
-
-       ._dmamem_alloc          = _bus_dmamem_alloc,
-       ._dmamem_free           = _bus_dmamem_free,
-       ._dmamem_map            = _bus_dmamem_map,
-       ._dmamem_unmap          = _bus_dmamem_unmap,
-       ._dmamem_mmap           = _bus_dmamem_mmap,
-
-       ._dmatag_subregion      = _bus_dmatag_subregion,
-       ._dmatag_destroy        = _bus_dmatag_destroy,
 };
 
 #define        IDTVEC(name)    __CONCAT(X,name)
diff -r 6464c91670b9 -r 857578d3477a sys/arch/x86/pci/pci_machdep.c
--- a/sys/arch/x86/pci/pci_machdep.c    Thu Sep 01 15:03:41 2011 +0000
+++ b/sys/arch/x86/pci/pci_machdep.c    Thu Sep 01 15:10:31 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pci_machdep.c,v 1.49 2011/08/29 22:46:04 dyoung Exp $  */
+/*     $NetBSD: pci_machdep.c,v 1.50 2011/09/01 15:10:31 christos Exp $        */
 
 /*-
  * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
@@ -73,7 +73,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.49 2011/08/29 22:46:04 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.50 2011/09/01 15:10:31 christos Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -202,24 +202,6 @@
        ._bounce_alloc_hi       = 0,
 #endif
        ._may_bounce            = NULL,
-
-       ._dmamap_create         = _bus_dmamap_create,
-       ._dmamap_destroy        = _bus_dmamap_destroy,
-       ._dmamap_load           = _bus_dmamap_load,
-       ._dmamap_load_mbuf      = _bus_dmamap_load_mbuf,
-       ._dmamap_load_uio       = _bus_dmamap_load_uio,
-       ._dmamap_load_raw       = _bus_dmamap_load_raw,
-       ._dmamap_unload         = _bus_dmamap_unload,
-       ._dmamap_sync           = _bus_dmamap_sync,
-
-       ._dmamem_alloc          = _bus_dmamem_alloc,
-       ._dmamem_free           = _bus_dmamem_free,
-       ._dmamem_map            = _bus_dmamem_map,
-       ._dmamem_unmap          = _bus_dmamem_unmap,
-       ._dmamem_mmap           = _bus_dmamem_mmap,
-
-       ._dmatag_subregion      = _bus_dmatag_subregion,
-       ._dmatag_destroy        = _bus_dmatag_destroy,
 };
 
 #ifdef _LP64
@@ -229,24 +211,6 @@
        ._bounce_alloc_lo       = 0,
        ._bounce_alloc_hi       = 0,
        ._may_bounce            = NULL,
-
-       ._dmamap_create         = _bus_dmamap_create,
-       ._dmamap_destroy        = _bus_dmamap_destroy,
-       ._dmamap_load           = _bus_dmamap_load,
-       ._dmamap_load_mbuf      = _bus_dmamap_load_mbuf,
-       ._dmamap_load_uio       = _bus_dmamap_load_uio,
-       ._dmamap_load_raw       = _bus_dmamap_load_raw,
-       ._dmamap_unload         = _bus_dmamap_unload,
-       ._dmamap_sync           = NULL,
-
-       ._dmamem_alloc          = _bus_dmamem_alloc,
-       ._dmamem_free           = _bus_dmamem_free,
-       ._dmamem_map            = _bus_dmamem_map,



Home | Main Index | Thread Index | Old Index