Deleted Added
full compact
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 ---