psycho.c (114484) | psycho.c (115316) |
---|---|
1/* 2 * Copyright (c) 1999, 2000 Matthew R. Green 3 * All rights reserved. 4 * Copyright 2001 by Thomas Moestl <tmm@FreeBSD.org>. All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 14 unchanged lines hidden (view full) --- 23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 24 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 25 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 * SUCH DAMAGE. 28 * 29 * from: NetBSD: psycho.c,v 1.39 2001/10/07 20:30:41 eeh Exp 30 * | 1/* 2 * Copyright (c) 1999, 2000 Matthew R. Green 3 * All rights reserved. 4 * Copyright 2001 by Thomas Moestl <tmm@FreeBSD.org>. All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 14 unchanged lines hidden (view full) --- 23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 24 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 25 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 * SUCH DAMAGE. 28 * 29 * from: NetBSD: psycho.c,v 1.39 2001/10/07 20:30:41 eeh Exp 30 * |
31 * $FreeBSD: head/sys/sparc64/pci/psycho.c 114484 2003-05-02 01:21:37Z tmm $ | 31 * $FreeBSD: head/sys/sparc64/pci/psycho.c 115316 2003-05-26 04:00:52Z scottl $ |
32 */ 33 34/* 35 * Support for `psycho' and `psycho+' UPA to PCI bridge and 36 * UltraSPARC IIi and IIe `sabre' PCI controllers. 37 */ 38 39#include "opt_psycho.h" --- 67 unchanged lines hidden (view full) --- 107static int psycho_dmamap_load(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, 108 void *, bus_size_t, bus_dmamap_callback_t *, void *, int); 109static int psycho_dmamap_load_mbuf(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, 110 struct mbuf *, bus_dmamap_callback2_t *, void *, int); 111static int psycho_dmamap_load_uio(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, 112 struct uio *, bus_dmamap_callback2_t *, void *, int); 113static void psycho_dmamap_unload(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t); 114static void psycho_dmamap_sync(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, int); | 32 */ 33 34/* 35 * Support for `psycho' and `psycho+' UPA to PCI bridge and 36 * UltraSPARC IIi and IIe `sabre' PCI controllers. 37 */ 38 39#include "opt_psycho.h" --- 67 unchanged lines hidden (view full) --- 107static int psycho_dmamap_load(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, 108 void *, bus_size_t, bus_dmamap_callback_t *, void *, int); 109static int psycho_dmamap_load_mbuf(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, 110 struct mbuf *, bus_dmamap_callback2_t *, void *, int); 111static int psycho_dmamap_load_uio(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, 112 struct uio *, bus_dmamap_callback2_t *, void *, int); 113static void psycho_dmamap_unload(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t); 114static void psycho_dmamap_sync(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, int); |
115static int psycho_dmamem_alloc_size(bus_dma_tag_t, bus_dma_tag_t, void **, int, 116 bus_dmamap_t *, bus_size_t size); | |
117static int psycho_dmamem_alloc(bus_dma_tag_t, bus_dma_tag_t, void **, int, 118 bus_dmamap_t *); | 115static int psycho_dmamem_alloc(bus_dma_tag_t, bus_dma_tag_t, void **, int, 116 bus_dmamap_t *); |
119static void psycho_dmamem_free_size(bus_dma_tag_t, bus_dma_tag_t, void *, 120 bus_dmamap_t, bus_size_t size); | |
121static void psycho_dmamem_free(bus_dma_tag_t, bus_dma_tag_t, void *, 122 bus_dmamap_t); 123 124/* 125 * autoconfiguration 126 */ 127static int psycho_probe(device_t); 128static int psycho_attach(device_t); --- 367 unchanged lines hidden (view full) --- 496 sc->sc_dmat->dt_cookie = sc; 497 sc->sc_dmat->dt_dmamap_create = psycho_dmamap_create; 498 sc->sc_dmat->dt_dmamap_destroy = psycho_dmamap_destroy; 499 sc->sc_dmat->dt_dmamap_load = psycho_dmamap_load; 500 sc->sc_dmat->dt_dmamap_load_mbuf = psycho_dmamap_load_mbuf; 501 sc->sc_dmat->dt_dmamap_load_uio = psycho_dmamap_load_uio; 502 sc->sc_dmat->dt_dmamap_unload = psycho_dmamap_unload; 503 sc->sc_dmat->dt_dmamap_sync = psycho_dmamap_sync; | 117static void psycho_dmamem_free(bus_dma_tag_t, bus_dma_tag_t, void *, 118 bus_dmamap_t); 119 120/* 121 * autoconfiguration 122 */ 123static int psycho_probe(device_t); 124static int psycho_attach(device_t); --- 367 unchanged lines hidden (view full) --- 492 sc->sc_dmat->dt_cookie = sc; 493 sc->sc_dmat->dt_dmamap_create = psycho_dmamap_create; 494 sc->sc_dmat->dt_dmamap_destroy = psycho_dmamap_destroy; 495 sc->sc_dmat->dt_dmamap_load = psycho_dmamap_load; 496 sc->sc_dmat->dt_dmamap_load_mbuf = psycho_dmamap_load_mbuf; 497 sc->sc_dmat->dt_dmamap_load_uio = psycho_dmamap_load_uio; 498 sc->sc_dmat->dt_dmamap_unload = psycho_dmamap_unload; 499 sc->sc_dmat->dt_dmamap_sync = psycho_dmamap_sync; |
504 sc->sc_dmat->dt_dmamem_alloc_size = psycho_dmamem_alloc_size; | |
505 sc->sc_dmat->dt_dmamem_alloc = psycho_dmamem_alloc; | 500 sc->sc_dmat->dt_dmamem_alloc = psycho_dmamem_alloc; |
506 sc->sc_dmat->dt_dmamem_free_size = psycho_dmamem_free_size; | |
507 sc->sc_dmat->dt_dmamem_free = psycho_dmamem_free; 508 /* XXX: register as root dma tag (kluge). */ 509 sparc64_root_dma_tag = sc->sc_dmat; 510 511 /* Register the softc, this is needed for paired psychos. */ 512 SLIST_INSERT_HEAD(&psycho_softcs, sc, sc_link); 513 514 /* --- 800 unchanged lines hidden (view full) --- 1315 bt->bst_type = type; 1316 return (bt); 1317} 1318 1319/* 1320 * hooks into the iommu dvma calls. 1321 */ 1322static int | 501 sc->sc_dmat->dt_dmamem_free = psycho_dmamem_free; 502 /* XXX: register as root dma tag (kluge). */ 503 sparc64_root_dma_tag = sc->sc_dmat; 504 505 /* Register the softc, this is needed for paired psychos. */ 506 SLIST_INSERT_HEAD(&psycho_softcs, sc, sc_link); 507 508 /* --- 800 unchanged lines hidden (view full) --- 1309 bt->bst_type = type; 1310 return (bt); 1311} 1312 1313/* 1314 * hooks into the iommu dvma calls. 1315 */ 1316static int |
1323psycho_dmamem_alloc_size(bus_dma_tag_t pdmat, bus_dma_tag_t ddmat, void **vaddr, 1324 int flags, bus_dmamap_t *mapp, bus_size_t size) 1325{ 1326 struct psycho_softc *sc; 1327 1328 sc = (struct psycho_softc *)pdmat->dt_cookie; 1329 return (iommu_dvmamem_alloc_size(pdmat, ddmat, sc->sc_is, vaddr, flags, 1330 mapp, size)); 1331} 1332 1333static int | |
1334psycho_dmamem_alloc(bus_dma_tag_t pdmat, bus_dma_tag_t ddmat, void **vaddr, 1335 int flags, bus_dmamap_t *mapp) 1336{ 1337 struct psycho_softc *sc; 1338 1339 sc = (struct psycho_softc *)pdmat->dt_cookie; 1340 return (iommu_dvmamem_alloc(pdmat, ddmat, sc->sc_is, vaddr, flags, 1341 mapp)); 1342} 1343 1344static void | 1317psycho_dmamem_alloc(bus_dma_tag_t pdmat, bus_dma_tag_t ddmat, void **vaddr, 1318 int flags, bus_dmamap_t *mapp) 1319{ 1320 struct psycho_softc *sc; 1321 1322 sc = (struct psycho_softc *)pdmat->dt_cookie; 1323 return (iommu_dvmamem_alloc(pdmat, ddmat, sc->sc_is, vaddr, flags, 1324 mapp)); 1325} 1326 1327static void |
1345psycho_dmamem_free_size(bus_dma_tag_t pdmat, bus_dma_tag_t ddmat, void *vaddr, 1346 bus_dmamap_t map, bus_size_t size) 1347{ 1348 struct psycho_softc *sc; 1349 1350 sc = (struct psycho_softc *)pdmat->dt_cookie; 1351 iommu_dvmamem_free_size(pdmat, ddmat, sc->sc_is, vaddr, map, size); 1352} 1353 1354static void | |
1355psycho_dmamem_free(bus_dma_tag_t pdmat, bus_dma_tag_t ddmat, void *vaddr, 1356 bus_dmamap_t map) 1357{ 1358 struct psycho_softc *sc; 1359 1360 sc = (struct psycho_softc *)pdmat->dt_cookie; 1361 iommu_dvmamem_free(pdmat, ddmat, sc->sc_is, vaddr, map); 1362} --- 76 unchanged lines hidden --- | 1328psycho_dmamem_free(bus_dma_tag_t pdmat, bus_dma_tag_t ddmat, void *vaddr, 1329 bus_dmamap_t map) 1330{ 1331 struct psycho_softc *sc; 1332 1333 sc = (struct psycho_softc *)pdmat->dt_cookie; 1334 iommu_dvmamem_free(pdmat, ddmat, sc->sc_is, vaddr, map); 1335} --- 76 unchanged lines hidden --- |