diff options
author | tmm <tmm@FreeBSD.org> | 2003-06-11 20:30:52 +0000 |
---|---|---|
committer | tmm <tmm@FreeBSD.org> | 2003-06-11 20:30:52 +0000 |
commit | 682044b335894ad828ffbceb6b47aebcae62d667 (patch) | |
tree | 7df3fefaf1586f28b46347a654168e0afa6e4a75 /sys/sparc64/sbus | |
parent | 87b6b51235f73d1a422fbc9521b668670ff171c1 (diff) | |
download | FreeBSD-src-682044b335894ad828ffbceb6b47aebcae62d667.zip FreeBSD-src-682044b335894ad828ffbceb6b47aebcae62d667.tar.gz |
Remove the psycho and sbus iommu function stubs, and put the pointer
to the iommu_state structure directly into dt_cookie. The stubs have
not been needed for a long time now.
Diffstat (limited to 'sys/sparc64/sbus')
-rw-r--r-- | sys/sparc64/sbus/sbus.c | 144 |
1 files changed, 19 insertions, 125 deletions
diff --git a/sys/sparc64/sbus/sbus.c b/sys/sparc64/sbus/sbus.c index dfd8708..a941e2f 100644 --- a/sys/sparc64/sbus/sbus.c +++ b/sys/sparc64/sbus/sbus.c @@ -229,26 +229,6 @@ static bus_space_tag_t sbus_alloc_bustag(struct sbus_softc *); static void sbus_overtemp(void *); static void sbus_pwrfail(void *); -/* - * DVMA routines - */ -static int sbus_dmamap_create(bus_dma_tag_t, bus_dma_tag_t, int, - bus_dmamap_t *); -static int sbus_dmamap_destroy(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t); -static int sbus_dmamap_load(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, void *, - bus_size_t, bus_dmamap_callback_t *, void *, int); -static int sbus_dmamap_load_mbuf(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, - struct mbuf *, bus_dmamap_callback2_t *, void *, int); -static int sbus_dmamap_load_uio(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, - struct uio *, bus_dmamap_callback2_t *, void *, int); -static void sbus_dmamap_unload(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t); -static void sbus_dmamap_sync(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, - bus_dmasync_op_t); -static int sbus_dmamem_alloc(bus_dma_tag_t, bus_dma_tag_t, void **, int, - bus_dmamap_t *); -static void sbus_dmamem_free(bus_dma_tag_t, bus_dma_tag_t, void *, - bus_dmamap_t); - static device_method_t sbus_methods[] = { /* Device interface */ DEVMETHOD(device_probe, sbus_probe), @@ -336,24 +316,6 @@ sbus_probe(device_t dev) clock /= 1000; device_printf(dev, "clock %d.%03d MHz\n", clock / 1000, clock % 1000); - sc->sc_dmatag = nexus_get_dmatag(dev); - if (bus_dma_tag_create(sc->sc_dmatag, 8, 1, 0, 0x3ffffffff, NULL, NULL, - 0x3ffffffff, 0xff, 0xffffffff, 0, &sc->sc_cdmatag) != 0) - panic("bus_dma_tag_create failed"); - /* Customize the tag */ - sc->sc_cdmatag->dt_cookie = sc; - sc->sc_cdmatag->dt_dmamap_create = sbus_dmamap_create; - sc->sc_cdmatag->dt_dmamap_destroy = sbus_dmamap_destroy; - sc->sc_cdmatag->dt_dmamap_load = sbus_dmamap_load; - sc->sc_cdmatag->dt_dmamap_load_mbuf = sbus_dmamap_load_mbuf; - sc->sc_cdmatag->dt_dmamap_load_uio = sbus_dmamap_load_uio; - sc->sc_cdmatag->dt_dmamap_unload = sbus_dmamap_unload; - sc->sc_cdmatag->dt_dmamap_sync = sbus_dmamap_sync; - sc->sc_cdmatag->dt_dmamem_alloc = sbus_dmamem_alloc; - sc->sc_cdmatag->dt_dmamem_free = sbus_dmamem_free; - /* XXX: register as root dma tag (kluge). */ - sparc64_root_dma_tag = sc->sc_cdmatag; - /* * Collect address translations from the OBP. */ @@ -427,6 +389,25 @@ sbus_probe(device_t dev) */ iommu_init(name, &sc->sc_is, 3, -1, 1); + /* Create the DMA tag. */ + sc->sc_dmatag = nexus_get_dmatag(dev); + if (bus_dma_tag_create(sc->sc_dmatag, 8, 1, 0, 0x3ffffffff, NULL, NULL, + 0x3ffffffff, 0xff, 0xffffffff, 0, &sc->sc_cdmatag) != 0) + panic("bus_dma_tag_create failed"); + /* Customize the tag. */ + sc->sc_cdmatag->dt_cookie = &sc->sc_is; + sc->sc_cdmatag->dt_dmamap_create = iommu_dvmamap_create; + sc->sc_cdmatag->dt_dmamap_destroy = iommu_dvmamap_destroy; + sc->sc_cdmatag->dt_dmamap_load = iommu_dvmamap_load; + sc->sc_cdmatag->dt_dmamap_load_mbuf = iommu_dvmamap_load_mbuf; + sc->sc_cdmatag->dt_dmamap_load_uio = iommu_dvmamap_load_uio; + sc->sc_cdmatag->dt_dmamap_unload = iommu_dvmamap_unload; + sc->sc_cdmatag->dt_dmamap_sync = iommu_dvmamap_sync; + sc->sc_cdmatag->dt_dmamem_alloc = iommu_dvmamem_alloc; + sc->sc_cdmatag->dt_dmamem_free = iommu_dvmamem_free; + /* XXX: register as root dma tag (kludge). */ + sparc64_root_dma_tag = sc->sc_cdmatag; + /* Enable the over-temperature and power-fail intrrupts. */ rid = 0; mr = SYSIO_READ8(sc, SBR_THERM_INT_MAP); @@ -918,90 +899,3 @@ sbus_alloc_bustag(struct sbus_softc *sc) sbt->bst_type = SBUS_BUS_SPACE; return (sbt); } - -static int -sbus_dmamap_create(bus_dma_tag_t pdmat, bus_dma_tag_t ddmat, int flags, - bus_dmamap_t *mapp) -{ - struct sbus_softc *sc = (struct sbus_softc *)pdmat->dt_cookie; - - return (iommu_dvmamap_create(pdmat, ddmat, &sc->sc_is, flags, mapp)); - -} - -static int -sbus_dmamap_destroy(bus_dma_tag_t pdmat, bus_dma_tag_t ddmat, bus_dmamap_t map) -{ - struct sbus_softc *sc = (struct sbus_softc *)pdmat->dt_cookie; - - return (iommu_dvmamap_destroy(pdmat, ddmat, &sc->sc_is, map)); -} - -static int -sbus_dmamap_load(bus_dma_tag_t pdmat, bus_dma_tag_t ddmat, bus_dmamap_t map, - void *buf, bus_size_t buflen, bus_dmamap_callback_t *callback, - void *callback_arg, int flags) -{ - struct sbus_softc *sc = (struct sbus_softc *)pdmat->dt_cookie; - - return (iommu_dvmamap_load(pdmat, ddmat, &sc->sc_is, map, buf, buflen, - callback, callback_arg, flags)); -} - -static int -sbus_dmamap_load_mbuf(bus_dma_tag_t pdmat, bus_dma_tag_t ddmat, - bus_dmamap_t map, struct mbuf *m, bus_dmamap_callback2_t *callback, - void *callback_arg, int flags) -{ - struct sbus_softc *sc = (struct sbus_softc *)pdmat->dt_cookie; - - return (iommu_dvmamap_load_mbuf(pdmat, ddmat, &sc->sc_is, map, m, - callback, callback_arg, flags)); -} - -static int -sbus_dmamap_load_uio(bus_dma_tag_t pdmat, bus_dma_tag_t ddmat, - bus_dmamap_t map, struct uio *uio, bus_dmamap_callback2_t *callback, - void *callback_arg, int flags) -{ - struct sbus_softc *sc = (struct sbus_softc *)pdmat->dt_cookie; - - return (iommu_dvmamap_load_uio(pdmat, ddmat, &sc->sc_is, map, uio, - callback, callback_arg, flags)); -} - -static void -sbus_dmamap_unload(bus_dma_tag_t pdmat, bus_dma_tag_t ddmat, bus_dmamap_t map) -{ - struct sbus_softc *sc = (struct sbus_softc *)pdmat->dt_cookie; - - iommu_dvmamap_unload(pdmat, ddmat, &sc->sc_is, map); -} - -static void -sbus_dmamap_sync(bus_dma_tag_t pdmat, bus_dma_tag_t ddmat, bus_dmamap_t map, - bus_dmasync_op_t op) -{ - struct sbus_softc *sc = (struct sbus_softc *)pdmat->dt_cookie; - - iommu_dvmamap_sync(pdmat, ddmat, &sc->sc_is, map, op); -} - -static int -sbus_dmamem_alloc(bus_dma_tag_t pdmat, bus_dma_tag_t ddmat, void **vaddr, - int flags, bus_dmamap_t *mapp) -{ - struct sbus_softc *sc = (struct sbus_softc *)pdmat->dt_cookie; - - return (iommu_dvmamem_alloc(pdmat, ddmat, &sc->sc_is, vaddr, flags, - mapp)); -} - -static void -sbus_dmamem_free(bus_dma_tag_t pdmat, bus_dma_tag_t ddmat, void *vaddr, - bus_dmamap_t map) -{ - struct sbus_softc *sc = (struct sbus_softc *)pdmat->dt_cookie; - - iommu_dvmamem_free(pdmat, ddmat, &sc->sc_is, vaddr, map); -} |