diff --git a/sys/arch/alpha/common/sgmap_common.c b/sys/arch/alpha/common/sgmap_common.c index 57e79d09b436..8962b86e12a8 100644 --- a/sys/arch/alpha/common/sgmap_common.c +++ b/sys/arch/alpha/common/sgmap_common.c @@ -1,4 +1,4 @@ -/* $NetBSD: sgmap_common.c,v 1.13 2000/06/29 09:02:57 mrg Exp $ */ +/* $NetBSD: sgmap_common.c,v 1.14 2001/01/03 19:15:59 thorpej Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -39,7 +39,7 @@ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: sgmap_common.c,v 1.13 2000/06/29 09:02:57 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sgmap_common.c,v 1.14 2001/01/03 19:15:59 thorpej Exp $"); #include #include @@ -49,6 +49,7 @@ __KERNEL_RCSID(0, "$NetBSD: sgmap_common.c,v 1.13 2000/06/29 09:02:57 mrg Exp $" #include +#define _ALPHA_BUS_DMA_PRIVATE #include #include @@ -225,3 +226,46 @@ alpha_sgmap_free(map, sgmap) map->_dm_flags &= ~DMAMAP_HAS_SGMAP; } + +int +alpha_sgmap_dmamap_create(t, size, nsegments, maxsegsz, boundary, + flags, dmamp) + bus_dma_tag_t t; + bus_size_t size; + int nsegments; + bus_size_t maxsegsz; + bus_size_t boundary; + int flags; + bus_dmamap_t *dmamp; +{ + bus_dmamap_t map; + int error; + + error = _bus_dmamap_create(t, size, nsegments, maxsegsz, + boundary, flags, dmamp); + if (error) + return (error); + + map = *dmamp; + + if (flags & BUS_DMA_ALLOCNOW) { + error = alpha_sgmap_alloc(map, round_page(size), + t->_sgmap, flags); + if (error) + alpha_sgmap_dmamap_destroy(t, map); + } + + return (error); +} + +void +alpha_sgmap_dmamap_destroy(t, map) + bus_dma_tag_t t; + bus_dmamap_t map; +{ + + if (map->_dm_flags & DMAMAP_HAS_SGMAP) + alpha_sgmap_free(map, t->_sgmap); + + _bus_dmamap_destroy(t, map); +} diff --git a/sys/arch/alpha/common/sgmapvar.h b/sys/arch/alpha/common/sgmapvar.h index e4abefd5a751..3a97637eb6da 100644 --- a/sys/arch/alpha/common/sgmapvar.h +++ b/sys/arch/alpha/common/sgmapvar.h @@ -1,4 +1,4 @@ -/* $NetBSD: sgmapvar.h,v 1.10 1998/08/14 16:50:02 thorpej Exp $ */ +/* $NetBSD: sgmapvar.h,v 1.11 2001/01/03 19:15:59 thorpej Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -92,4 +92,8 @@ int alpha_sgmap_alloc __P((bus_dmamap_t, bus_size_t, struct alpha_sgmap *, int)); void alpha_sgmap_free __P((bus_dmamap_t, struct alpha_sgmap *)); +int alpha_sgmap_dmamap_create __P((bus_dma_tag_t, bus_size_t, int, + bus_size_t, bus_size_t, int, bus_dmamap_t *)); +void alpha_sgmap_dmamap_destroy __P((bus_dma_tag_t, bus_dmamap_t)); + #endif /* _ALPHA_COMMON_SGMAPVAR_H */ diff --git a/sys/arch/alpha/pci/apecs_dma.c b/sys/arch/alpha/pci/apecs_dma.c index fa04557ac1e1..81ff2fa04f1b 100644 --- a/sys/arch/alpha/pci/apecs_dma.c +++ b/sys/arch/alpha/pci/apecs_dma.c @@ -1,4 +1,4 @@ -/* $NetBSD: apecs_dma.c,v 1.13 2000/06/29 08:58:45 mrg Exp $ */ +/* $NetBSD: apecs_dma.c,v 1.14 2001/01/03 19:16:00 thorpej Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -39,7 +39,7 @@ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: apecs_dma.c,v 1.13 2000/06/29 08:58:45 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: apecs_dma.c,v 1.14 2001/01/03 19:16:00 thorpej Exp $"); #include #include @@ -59,11 +59,6 @@ __KERNEL_RCSID(0, "$NetBSD: apecs_dma.c,v 1.13 2000/06/29 08:58:45 mrg Exp $"); bus_dma_tag_t apecs_dma_get_tag __P((bus_dma_tag_t, alpha_bus_t)); -int apecs_bus_dmamap_create_sgmap __P((bus_dma_tag_t, bus_size_t, int, - bus_size_t, bus_size_t, int, bus_dmamap_t *)); - -void apecs_bus_dmamap_destroy_sgmap __P((bus_dma_tag_t, bus_dmamap_t)); - int apecs_bus_dmamap_load_sgmap __P((bus_dma_tag_t, bus_dmamap_t, void *, bus_size_t, struct proc *, int)); @@ -144,8 +139,8 @@ apecs_dma_init(acp) t->_boundary = 0; t->_sgmap = &acp->ac_sgmap; t->_get_tag = apecs_dma_get_tag; - t->_dmamap_create = apecs_bus_dmamap_create_sgmap; - t->_dmamap_destroy = apecs_bus_dmamap_destroy_sgmap; + t->_dmamap_create = alpha_sgmap_dmamap_create; + t->_dmamap_destroy = alpha_sgmap_dmamap_destroy; t->_dmamap_load = apecs_bus_dmamap_load_sgmap; t->_dmamap_load_mbuf = apecs_bus_dmamap_load_mbuf_sgmap; t->_dmamap_load_uio = apecs_bus_dmamap_load_uio_sgmap; @@ -235,55 +230,6 @@ apecs_dma_get_tag(t, bustype) } } -/* - * Create an APECS SGMAP-mapped DMA map. - */ -int -apecs_bus_dmamap_create_sgmap(t, size, nsegments, maxsegsz, boundary, - flags, dmamp) - bus_dma_tag_t t; - bus_size_t size; - int nsegments; - bus_size_t maxsegsz; - bus_size_t boundary; - int flags; - bus_dmamap_t *dmamp; -{ - bus_dmamap_t map; - int error; - - error = _bus_dmamap_create(t, size, nsegments, maxsegsz, - boundary, flags, dmamp); - if (error) - return (error); - - map = *dmamp; - - if (flags & BUS_DMA_ALLOCNOW) { - error = alpha_sgmap_alloc(map, round_page(size), - t->_sgmap, flags); - if (error) - apecs_bus_dmamap_destroy_sgmap(t, map); - } - - return (error); -} - -/* - * Destroy an APECS SGMAP-mapped DMA map. - */ -void -apecs_bus_dmamap_destroy_sgmap(t, map) - bus_dma_tag_t t; - bus_dmamap_t map; -{ - - if (map->_dm_flags & DMAMAP_HAS_SGMAP) - alpha_sgmap_free(map, t->_sgmap); - - _bus_dmamap_destroy(t, map); -} - /* * Load an APECS SGMAP-mapped DMA map with a linear buffer. */ diff --git a/sys/arch/alpha/pci/cia_dma.c b/sys/arch/alpha/pci/cia_dma.c index f4f8783164a3..031e8e87088e 100644 --- a/sys/arch/alpha/pci/cia_dma.c +++ b/sys/arch/alpha/pci/cia_dma.c @@ -1,4 +1,4 @@ -/* $NetBSD: cia_dma.c,v 1.16 2000/06/29 08:58:46 mrg Exp $ */ +/* $NetBSD: cia_dma.c,v 1.17 2001/01/03 19:16:00 thorpej Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -39,7 +39,7 @@ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: cia_dma.c,v 1.16 2000/06/29 08:58:46 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cia_dma.c,v 1.17 2001/01/03 19:16:00 thorpej Exp $"); #include #include @@ -62,11 +62,6 @@ bus_dma_tag_t cia_dma_get_tag __P((bus_dma_tag_t, alpha_bus_t)); int cia_bus_dmamap_create_direct __P((bus_dma_tag_t, bus_size_t, int, bus_size_t, bus_size_t, int, bus_dmamap_t *)); -int cia_bus_dmamap_create_sgmap __P((bus_dma_tag_t, bus_size_t, int, - bus_size_t, bus_size_t, int, bus_dmamap_t *)); - -void cia_bus_dmamap_destroy_sgmap __P((bus_dma_tag_t, bus_dmamap_t)); - int cia_bus_dmamap_load_sgmap __P((bus_dma_tag_t, bus_dmamap_t, void *, bus_size_t, struct proc *, int)); @@ -148,8 +143,8 @@ cia_dma_init(ccp) t->_boundary = 0; t->_sgmap = &ccp->cc_sgmap; t->_get_tag = cia_dma_get_tag; - t->_dmamap_create = cia_bus_dmamap_create_sgmap; - t->_dmamap_destroy = cia_bus_dmamap_destroy_sgmap; + t->_dmamap_create = alpha_sgmap_dmamap_create; + t->_dmamap_destroy = alpha_sgmap_dmamap_destroy; t->_dmamap_load = cia_bus_dmamap_load_sgmap; t->_dmamap_load_mbuf = cia_bus_dmamap_load_mbuf_sgmap; t->_dmamap_load_uio = cia_bus_dmamap_load_uio_sgmap; @@ -332,55 +327,6 @@ cia_bus_dmamap_create_direct(t, size, nsegments, maxsegsz, boundary, return (0); } -/* - * Create a CIA SGMAP-mapped DMA map. - */ -int -cia_bus_dmamap_create_sgmap(t, size, nsegments, maxsegsz, boundary, - flags, dmamp) - bus_dma_tag_t t; - bus_size_t size; - int nsegments; - bus_size_t maxsegsz; - bus_size_t boundary; - int flags; - bus_dmamap_t *dmamp; -{ - bus_dmamap_t map; - int error; - - error = _bus_dmamap_create(t, size, nsegments, maxsegsz, - boundary, flags, dmamp); - if (error) - return (error); - - map = *dmamp; - - if (flags & BUS_DMA_ALLOCNOW) { - error = alpha_sgmap_alloc(map, round_page(size), - t->_sgmap, flags); - if (error) - cia_bus_dmamap_destroy_sgmap(t, map); - } - - return (error); -} - -/* - * Destroy a CIA SGMAP-mapped DMA map. - */ -void -cia_bus_dmamap_destroy_sgmap(t, map) - bus_dma_tag_t t; - bus_dmamap_t map; -{ - - if (map->_dm_flags & DMAMAP_HAS_SGMAP) - alpha_sgmap_free(map, t->_sgmap); - - _bus_dmamap_destroy(t, map); -} - /* * Load a CIA SGMAP-mapped DMA map with a linear buffer. */ diff --git a/sys/arch/alpha/pci/dwlpx_dma.c b/sys/arch/alpha/pci/dwlpx_dma.c index 58703a8c6ee5..7503c3ed62a3 100644 --- a/sys/arch/alpha/pci/dwlpx_dma.c +++ b/sys/arch/alpha/pci/dwlpx_dma.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwlpx_dma.c,v 1.14 2000/06/29 08:58:46 mrg Exp $ */ +/* $NetBSD: dwlpx_dma.c,v 1.15 2001/01/03 19:16:00 thorpej Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -39,7 +39,7 @@ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: dwlpx_dma.c,v 1.14 2000/06/29 08:58:46 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dwlpx_dma.c,v 1.15 2001/01/03 19:16:00 thorpej Exp $"); #include #include @@ -63,11 +63,6 @@ __KERNEL_RCSID(0, "$NetBSD: dwlpx_dma.c,v 1.14 2000/06/29 08:58:46 mrg Exp $"); bus_dma_tag_t dwlpx_dma_get_tag __P((bus_dma_tag_t, alpha_bus_t)); -int dwlpx_bus_dmamap_create_sgmap __P((bus_dma_tag_t, bus_size_t, int, - bus_size_t, bus_size_t, int, bus_dmamap_t *)); - -void dwlpx_bus_dmamap_destroy_sgmap __P((bus_dma_tag_t, bus_dmamap_t)); - int dwlpx_bus_dmamap_load_sgmap __P((bus_dma_tag_t, bus_dmamap_t, void *, bus_size_t, struct proc *, int)); @@ -163,8 +158,8 @@ dwlpx_dma_init(ccp) t->_boundary = 0; t->_sgmap = &ccp->cc_sgmap; t->_get_tag = dwlpx_dma_get_tag; - t->_dmamap_create = dwlpx_bus_dmamap_create_sgmap; - t->_dmamap_destroy = dwlpx_bus_dmamap_destroy_sgmap; + t->_dmamap_create = alpha_sgmap_dmamap_create; + t->_dmamap_destroy = alpha_sgmap_dmamap_destroy; t->_dmamap_load = dwlpx_bus_dmamap_load_sgmap; t->_dmamap_load_mbuf = dwlpx_bus_dmamap_load_mbuf_sgmap; t->_dmamap_load_uio = dwlpx_bus_dmamap_load_uio_sgmap; @@ -300,55 +295,6 @@ dwlpx_dma_get_tag(t, bustype) } } -/* - * Create a DWLPx SGMAP-mapped DMA map. - */ -int -dwlpx_bus_dmamap_create_sgmap(t, size, nsegments, maxsegsz, boundary, - flags, dmamp) - bus_dma_tag_t t; - bus_size_t size; - int nsegments; - bus_size_t maxsegsz; - bus_size_t boundary; - int flags; - bus_dmamap_t *dmamp; -{ - bus_dmamap_t map; - int error; - - error = _bus_dmamap_create(t, size, nsegments, maxsegsz, - boundary, flags, dmamp); - if (error) - return (error); - - map = *dmamp; - - if (flags & BUS_DMA_ALLOCNOW) { - error = alpha_sgmap_alloc(map, round_page(size), - t->_sgmap, flags); - if (error) - dwlpx_bus_dmamap_destroy_sgmap(t, map); - } - - return (error); -} - -/* - * Destroy a DWLPx SGMAP-mapped DMA map. - */ -void -dwlpx_bus_dmamap_destroy_sgmap(t, map) - bus_dma_tag_t t; - bus_dmamap_t map; -{ - - if (map->_dm_flags & DMAMAP_HAS_SGMAP) - alpha_sgmap_free(map, t->_sgmap); - - _bus_dmamap_destroy(t, map); -} - /* * Load a DWLPx SGMAP-mapped DMA map with a linear buffer. */ diff --git a/sys/arch/alpha/pci/lca_dma.c b/sys/arch/alpha/pci/lca_dma.c index a20d0da01b07..abd9123fc8f6 100644 --- a/sys/arch/alpha/pci/lca_dma.c +++ b/sys/arch/alpha/pci/lca_dma.c @@ -1,4 +1,4 @@ -/* $NetBSD: lca_dma.c,v 1.13 2000/06/29 08:58:47 mrg Exp $ */ +/* $NetBSD: lca_dma.c,v 1.14 2001/01/03 19:16:00 thorpej Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -39,7 +39,7 @@ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: lca_dma.c,v 1.13 2000/06/29 08:58:47 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lca_dma.c,v 1.14 2001/01/03 19:16:00 thorpej Exp $"); #include #include @@ -59,11 +59,6 @@ __KERNEL_RCSID(0, "$NetBSD: lca_dma.c,v 1.13 2000/06/29 08:58:47 mrg Exp $"); bus_dma_tag_t lca_dma_get_tag __P((bus_dma_tag_t, alpha_bus_t)); -int lca_bus_dmamap_create_sgmap __P((bus_dma_tag_t, bus_size_t, int, - bus_size_t, bus_size_t, int, bus_dmamap_t *)); - -void lca_bus_dmamap_destroy_sgmap __P((bus_dma_tag_t, bus_dmamap_t)); - int lca_bus_dmamap_load_sgmap __P((bus_dma_tag_t, bus_dmamap_t, void *, bus_size_t, struct proc *, int)); @@ -143,8 +138,8 @@ lca_dma_init(lcp) t->_boundary = 0; t->_sgmap = &lcp->lc_sgmap; t->_get_tag = lca_dma_get_tag; - t->_dmamap_create = lca_bus_dmamap_create_sgmap; - t->_dmamap_destroy = lca_bus_dmamap_destroy_sgmap; + t->_dmamap_create = alpha_sgmap_dmamap_create; + t->_dmamap_destroy = alpha_sgmap_dmamap_destroy; t->_dmamap_load = lca_bus_dmamap_load_sgmap; t->_dmamap_load_mbuf = lca_bus_dmamap_load_mbuf_sgmap; t->_dmamap_load_uio = lca_bus_dmamap_load_uio_sgmap; @@ -238,55 +233,6 @@ lca_dma_get_tag(t, bustype) } } -/* - * Create an LCA SGMAP-mapped DMA map. - */ -int -lca_bus_dmamap_create_sgmap(t, size, nsegments, maxsegsz, boundary, - flags, dmamp) - bus_dma_tag_t t; - bus_size_t size; - int nsegments; - bus_size_t maxsegsz; - bus_size_t boundary; - int flags; - bus_dmamap_t *dmamp; -{ - bus_dmamap_t map; - int error; - - error = _bus_dmamap_create(t, size, nsegments, maxsegsz, - boundary, flags, dmamp); - if (error) - return (error); - - map = *dmamp; - - if (flags & BUS_DMA_ALLOCNOW) { - error = alpha_sgmap_alloc(map, round_page(size), - t->_sgmap, flags); - if (error) - lca_bus_dmamap_destroy_sgmap(t, map); - } - - return (error); -} - -/* - * Destroy an LCA SGMAP-mapped DMA map. - */ -void -lca_bus_dmamap_destroy_sgmap(t, map) - bus_dma_tag_t t; - bus_dmamap_t map; -{ - - if (map->_dm_flags & DMAMAP_HAS_SGMAP) - alpha_sgmap_free(map, t->_sgmap); - - _bus_dmamap_destroy(t, map); -} - /* * Load an LCA SGMAP-mapped DMA map with a linear buffer. */ diff --git a/sys/arch/alpha/pci/mcpcia_dma.c b/sys/arch/alpha/pci/mcpcia_dma.c index ca415b6fd734..ebef93e54f5e 100644 --- a/sys/arch/alpha/pci/mcpcia_dma.c +++ b/sys/arch/alpha/pci/mcpcia_dma.c @@ -1,4 +1,4 @@ -/* $NetBSD: mcpcia_dma.c,v 1.13 2000/06/29 08:58:47 mrg Exp $ */ +/* $NetBSD: mcpcia_dma.c,v 1.14 2001/01/03 19:16:00 thorpej Exp $ */ /*- * Copyright (c) 1997, 1998, 1999 The NetBSD Foundation, Inc. @@ -39,7 +39,7 @@ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: mcpcia_dma.c,v 1.13 2000/06/29 08:58:47 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: mcpcia_dma.c,v 1.14 2001/01/03 19:16:00 thorpej Exp $"); #include #include @@ -60,11 +60,6 @@ __KERNEL_RCSID(0, "$NetBSD: mcpcia_dma.c,v 1.13 2000/06/29 08:58:47 mrg Exp $"); bus_dma_tag_t mcpcia_dma_get_tag __P((bus_dma_tag_t, alpha_bus_t)); -int mcpcia_bus_dmamap_create_sgmap __P((bus_dma_tag_t, bus_size_t, int, - bus_size_t, bus_size_t, int, bus_dmamap_t *)); - -void mcpcia_bus_dmamap_destroy_sgmap __P((bus_dma_tag_t, bus_dmamap_t)); - int mcpcia_bus_dmamap_load_sgmap __P((bus_dma_tag_t, bus_dmamap_t, void *, bus_size_t, struct proc *, int)); @@ -147,8 +142,8 @@ mcpcia_dma_init(ccp) t->_boundary = 0; t->_sgmap = &ccp->cc_pci_sgmap; t->_get_tag = mcpcia_dma_get_tag; - t->_dmamap_create = mcpcia_bus_dmamap_create_sgmap; - t->_dmamap_destroy = mcpcia_bus_dmamap_destroy_sgmap; + t->_dmamap_create = alpha_sgmap_dmamap_create; + t->_dmamap_destroy = alpha_sgmap_dmamap_destroy; t->_dmamap_load = mcpcia_bus_dmamap_load_sgmap; t->_dmamap_load_mbuf = mcpcia_bus_dmamap_load_mbuf_sgmap; t->_dmamap_load_uio = mcpcia_bus_dmamap_load_uio_sgmap; @@ -173,8 +168,8 @@ mcpcia_dma_init(ccp) t->_boundary = 0; t->_sgmap = &ccp->cc_isa_sgmap; t->_get_tag = mcpcia_dma_get_tag; - t->_dmamap_create = mcpcia_bus_dmamap_create_sgmap; - t->_dmamap_destroy = mcpcia_bus_dmamap_destroy_sgmap; + t->_dmamap_create = alpha_sgmap_dmamap_create; + t->_dmamap_destroy = alpha_sgmap_dmamap_destroy; t->_dmamap_load = mcpcia_bus_dmamap_load_sgmap; t->_dmamap_load_mbuf = mcpcia_bus_dmamap_load_mbuf_sgmap; t->_dmamap_load_uio = mcpcia_bus_dmamap_load_uio_sgmap; @@ -293,55 +288,6 @@ mcpcia_dma_get_tag(t, bustype) } } -/* - * Create a MCPCIA SGMAP-mapped DMA map. - */ -int -mcpcia_bus_dmamap_create_sgmap(t, size, nsegments, maxsegsz, boundary, - flags, dmamp) - bus_dma_tag_t t; - bus_size_t size; - int nsegments; - bus_size_t maxsegsz; - bus_size_t boundary; - int flags; - bus_dmamap_t *dmamp; -{ - bus_dmamap_t map; - int error; - - error = _bus_dmamap_create(t, size, nsegments, maxsegsz, - boundary, flags, dmamp); - if (error) - return (error); - - map = *dmamp; - - if (flags & BUS_DMA_ALLOCNOW) { - error = alpha_sgmap_alloc(map, round_page(size), - t->_sgmap, flags); - if (error) - mcpcia_bus_dmamap_destroy_sgmap(t, map); - } - - return (error); -} - -/* - * Destroy a MCPCIA SGMAP-mapped DMA map. - */ -void -mcpcia_bus_dmamap_destroy_sgmap(t, map) - bus_dma_tag_t t; - bus_dmamap_t map; -{ - - if (map->_dm_flags & DMAMAP_HAS_SGMAP) - alpha_sgmap_free(map, t->_sgmap); - - _bus_dmamap_destroy(t, map); -} - /* * Load a MCPCIA SGMAP-mapped DMA map with a linear buffer. */ diff --git a/sys/arch/alpha/pci/tsp_dma.c b/sys/arch/alpha/pci/tsp_dma.c index 7946f64c4a66..dc13e287ad93 100644 --- a/sys/arch/alpha/pci/tsp_dma.c +++ b/sys/arch/alpha/pci/tsp_dma.c @@ -1,4 +1,4 @@ -/* $NetBSD: tsp_dma.c,v 1.2 2000/06/29 08:58:50 mrg Exp $ */ +/* $NetBSD: tsp_dma.c,v 1.3 2001/01/03 19:16:00 thorpej Exp $ */ /*- * Copyright (c) 1999 by Ross Harvey. All rights reserved. @@ -92,11 +92,6 @@ bus_dma_tag_t tsp_dma_get_tag __P((bus_dma_tag_t, alpha_bus_t)); -int tsp_bus_dmamap_create_sgmap __P((bus_dma_tag_t, bus_size_t, int, - bus_size_t, bus_size_t, int, bus_dmamap_t *)); - -void tsp_bus_dmamap_destroy_sgmap __P((bus_dma_tag_t, bus_dmamap_t)); - int tsp_bus_dmamap_load_sgmap __P((bus_dma_tag_t, bus_dmamap_t, void *, bus_size_t, struct proc *, int)); @@ -182,8 +177,8 @@ tsp_dma_init(pcp) t->_boundary = 0; t->_sgmap = &pcp->pc_sgmap; t->_get_tag = tsp_dma_get_tag; - t->_dmamap_create = tsp_bus_dmamap_create_sgmap; - t->_dmamap_destroy = tsp_bus_dmamap_destroy_sgmap; + t->_dmamap_create = alpha_sgmap_dmamap_create; + t->_dmamap_destroy = alpha_sgmap_dmamap_destroy; t->_dmamap_load = tsp_bus_dmamap_load_sgmap; t->_dmamap_load_mbuf = tsp_bus_dmamap_load_mbuf_sgmap; t->_dmamap_load_uio = tsp_bus_dmamap_load_uio_sgmap; @@ -271,55 +266,6 @@ tsp_dma_get_tag(t, bustype) } } -/* - * Create a TSP SGMAP-mapped DMA map. - */ -int -tsp_bus_dmamap_create_sgmap(t, size, nsegments, maxsegsz, boundary, - flags, dmamp) - bus_dma_tag_t t; - bus_size_t size; - int nsegments; - bus_size_t maxsegsz; - bus_size_t boundary; - int flags; - bus_dmamap_t *dmamp; -{ - bus_dmamap_t map; - int error; - - error = _bus_dmamap_create(t, size, nsegments, maxsegsz, - boundary, flags, dmamp); - if (error) - return (error); - - map = *dmamp; - - if (flags & BUS_DMA_ALLOCNOW) { - error = alpha_sgmap_alloc(map, round_page(size), - t->_sgmap, flags); - if (error) - tsp_bus_dmamap_destroy_sgmap(t, map); - } - - return (error); -} - -/* - * Destroy a TSP SGMAP-mapped DMA map. - */ -void -tsp_bus_dmamap_destroy_sgmap(t, map) - bus_dma_tag_t t; - bus_dmamap_t map; -{ - - if (map->_dm_flags & DMAMAP_HAS_SGMAP) - alpha_sgmap_free(map, t->_sgmap); - - _bus_dmamap_destroy(t, map); -} - /* * Load a TSP SGMAP-mapped DMA map with a linear buffer. */ diff --git a/sys/arch/alpha/pci/ttwoga_dma.c b/sys/arch/alpha/pci/ttwoga_dma.c index c40005637273..49f0c1908fd5 100644 --- a/sys/arch/alpha/pci/ttwoga_dma.c +++ b/sys/arch/alpha/pci/ttwoga_dma.c @@ -1,4 +1,4 @@ -/* $NetBSD: ttwoga_dma.c,v 1.1 2000/12/21 20:51:55 thorpej Exp $ */ +/* $NetBSD: ttwoga_dma.c,v 1.2 2001/01/03 19:16:00 thorpej Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -38,7 +38,7 @@ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: ttwoga_dma.c,v 1.1 2000/12/21 20:51:55 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ttwoga_dma.c,v 1.2 2001/01/03 19:16:00 thorpej Exp $"); #include #include @@ -58,11 +58,6 @@ __KERNEL_RCSID(0, "$NetBSD: ttwoga_dma.c,v 1.1 2000/12/21 20:51:55 thorpej Exp $ bus_dma_tag_t ttwoga_dma_get_tag(bus_dma_tag_t, alpha_bus_t); -int ttwoga_bus_dmamap_create_sgmap(bus_dma_tag_t, bus_size_t, int, - bus_size_t, bus_size_t, int, bus_dmamap_t *); - -void ttwoga_bus_dmamap_destroy_sgmap(bus_dma_tag_t, bus_dmamap_t); - int ttwoga_bus_dmamap_load_sgmap(bus_dma_tag_t, bus_dmamap_t, void *, bus_size_t, struct proc *, int); @@ -148,8 +143,8 @@ ttwoga_dma_init(struct ttwoga_config *tcp) t->_boundary = 0; t->_sgmap = &tcp->tc_sgmap; t->_get_tag = ttwoga_dma_get_tag; - t->_dmamap_create = ttwoga_bus_dmamap_create_sgmap; - t->_dmamap_destroy = ttwoga_bus_dmamap_destroy_sgmap; + t->_dmamap_create = alpha_sgmap_dmamap_create; + t->_dmamap_destroy = alpha_sgmap_dmamap_destroy; t->_dmamap_load = ttwoga_bus_dmamap_load_sgmap; t->_dmamap_load_mbuf = ttwoga_bus_dmamap_load_mbuf_sgmap; t->_dmamap_load_uio = ttwoga_bus_dmamap_load_uio_sgmap; @@ -283,46 +278,6 @@ ttwoga_dma_get_tag(bus_dma_tag_t t, alpha_bus_t bustype) } } -/* - * Create a T2 SGMAP-mapped DMA map. - */ -int -ttwoga_bus_dmamap_create_sgmap(bus_dma_tag_t t, bus_size_t size, int nsegments, - bus_size_t maxsegsz, bus_size_t boundary, int flags, bus_dmamap_t *dmamp) -{ - bus_dmamap_t map; - int error; - - error = _bus_dmamap_create(t, size, nsegments, maxsegsz, - boundary, flags, dmamp); - if (error) - return (error); - - map = *dmamp; - - if (flags & BUS_DMA_ALLOCNOW) { - error = alpha_sgmap_alloc(map, round_page(size), - t->_sgmap, flags); - if (error) - ttwoga_bus_dmamap_destroy_sgmap(t, map); - } - - return (error); -} - -/* - * Destroy a T2 SGMAP-mapped DMA map. - */ -void -ttwoga_bus_dmamap_destroy_sgmap(bus_dma_tag_t t, bus_dmamap_t map) -{ - - if (map->_dm_flags & DMAMAP_HAS_SGMAP) - alpha_sgmap_free(map, t->_sgmap); - - _bus_dmamap_destroy(t, map); -} - /* * Load a T2 SGMAP-mapped DMA map with a liner buffer. */