diff options
Diffstat (limited to 'sys/sparc64/sbus/dma_sbus.c')
-rw-r--r-- | sys/sparc64/sbus/dma_sbus.c | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/sys/sparc64/sbus/dma_sbus.c b/sys/sparc64/sbus/dma_sbus.c index 924fa27..4623995 100644 --- a/sys/sparc64/sbus/dma_sbus.c +++ b/sys/sparc64/sbus/dma_sbus.c @@ -70,7 +70,6 @@ __FBSDID("$FreeBSD$"); #include <sys/bus.h> #include <sys/kernel.h> #include <sys/module.h> -#include <sys/resource.h> #include <sys/rman.h> #include <dev/ofw/ofw_bus.h> @@ -178,7 +177,7 @@ dma_attach(device_t dev) char *cabletype; uint32_t csr; phandle_t child, node; - int error, burst, children; + int error, i; dsc = device_get_softc(dev); lsc = &dsc->sc_lsi64854; @@ -188,15 +187,13 @@ dma_attach(device_t dev) dsc->sc_ign = sbus_get_ign(dev); dsc->sc_slot = sbus_get_slot(dev); - lsc->sc_rid = 0; - lsc->sc_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &lsc->sc_rid, + i = 0; + lsc->sc_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &i, RF_ACTIVE); if (lsc->sc_res == NULL) { device_printf(dev, "cannot allocate resources\n"); return (ENXIO); } - lsc->sc_regt = rman_get_bustag(lsc->sc_res); - lsc->sc_regh = rman_get_bushandle(lsc->sc_res); if (strcmp(name, "espdma") == 0 || strcmp(name, "dma") == 0) lsc->sc_channel = L64854_CHANNEL_SCSI; @@ -246,23 +243,17 @@ dma_attach(device_t dev) goto fail_lres; } - burst = sbus_get_burstsz(dev); - lsc->sc_burst = (burst & SBUS_BURST_32) ? 32 : - (burst & SBUS_BURST_16) ? 16 : 0; + i = sbus_get_burstsz(dev); + lsc->sc_burst = (i & SBUS_BURST_32) ? 32 : + (i & SBUS_BURST_16) ? 16 : 0; lsc->sc_dev = dev; - error = lsi64854_attach(lsc); - if (error != 0) { - device_printf(dev, "lsi64854_attach failed\n"); - goto fail_lpdma; - } - /* Attach children. */ - children = 0; + i = 0; for (child = OF_child(node); child != 0; child = OF_peer(child)) { if ((ddi = dma_setup_dinfo(dev, dsc, child)) == NULL) continue; - if (children != 0) { + if (i != 0) { device_printf(dev, "<%s>: only one child per DMA channel supported\n", ddi->ddi_obdinfo.obd_name); @@ -276,14 +267,13 @@ dma_attach(device_t dev) continue; } device_set_ivars(cdev, ddi); - children++; + i++; } return (bus_generic_attach(dev)); - fail_lpdma: - bus_dma_tag_destroy(lsc->sc_parent_dmat); fail_lres: - bus_release_resource(dev, SYS_RES_MEMORY, lsc->sc_rid, lsc->sc_res); + bus_release_resource(dev, SYS_RES_MEMORY, rman_get_rid(lsc->sc_res), + lsc->sc_res); return (error); } |