summaryrefslogtreecommitdiffstats
path: root/sys/sparc64/sbus
diff options
context:
space:
mode:
authortmm <tmm@FreeBSD.org>2003-06-11 20:30:52 +0000
committertmm <tmm@FreeBSD.org>2003-06-11 20:30:52 +0000
commit682044b335894ad828ffbceb6b47aebcae62d667 (patch)
tree7df3fefaf1586f28b46347a654168e0afa6e4a75 /sys/sparc64/sbus
parent87b6b51235f73d1a422fbc9521b668670ff171c1 (diff)
downloadFreeBSD-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.c144
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);
-}
OpenPOWER on IntegriCloud