1/* $OpenBSD: dma_sbus.c,v 1.12 2005/03/03 01:41:45 miod Exp $ */ 2/* $NetBSD: dma_sbus.c,v 1.5 2000/07/09 20:57:42 pk Exp $ */ 3 4/*- 5 * Copyright (c) 1998 The NetBSD Foundation, Inc. 6 * All rights reserved. 7 * 8 * This code is derived from software contributed to The NetBSD Foundation --- 49 unchanged lines hidden (view full) --- 58 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 59 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 60 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 61 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 62 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 63 */ 64 65#include <sys/cdefs.h> |
66__FBSDID("$FreeBSD: head/sys/sparc64/sbus/dma_sbus.c 154870 2006-01-26 21:14:32Z marius $"); |
67 68#include <sys/param.h> 69#include <sys/systm.h> 70#include <sys/bus.h> 71#include <sys/kernel.h> 72#include <sys/module.h> 73#include <sys/resource.h> 74#include <sys/rman.h> --- 25 unchanged lines hidden (view full) --- 100 101static devclass_t dma_devclass; 102 103static device_probe_t dma_probe; 104static device_attach_t dma_attach; 105static bus_print_child_t dma_print_child; 106static bus_probe_nomatch_t dma_probe_nomatch; 107static bus_get_resource_list_t dma_get_resource_list; |
108static bus_setup_intr_t dma_setup_intr; |
109static ofw_bus_get_devinfo_t dma_get_devinfo; 110 111static struct dma_devinfo *dma_setup_dinfo(device_t, struct dma_softc *, 112 phandle_t); 113static void dma_destroy_dinfo(struct dma_devinfo *); 114static int dma_print_res(struct dma_devinfo *); 115 116static device_method_t dma_methods[] = { 117 /* Device interface */ 118 DEVMETHOD(device_probe, dma_probe), 119 DEVMETHOD(device_attach, dma_attach), |
120 DEVMETHOD(device_shutdown, bus_generic_shutdown), 121 DEVMETHOD(device_suspend, bus_generic_suspend), 122 DEVMETHOD(device_resume, bus_generic_resume), |
123 124 /* Bus interface */ 125 DEVMETHOD(bus_print_child, dma_print_child), 126 DEVMETHOD(bus_probe_nomatch, dma_probe_nomatch), |
127 DEVMETHOD(bus_setup_intr, dma_setup_intr), |
128 DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr), 129 DEVMETHOD(bus_alloc_resource, bus_generic_rl_alloc_resource), 130 DEVMETHOD(bus_release_resource, bus_generic_rl_release_resource), 131 DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), 132 DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), 133 DEVMETHOD(bus_get_resource_list, dma_get_resource_list), 134 DEVMETHOD(bus_get_resource, bus_generic_rl_get_resource), 135 --- 260 unchanged lines hidden (view full) --- 396dma_get_resource_list(device_t dev, device_t child) 397{ 398 struct dma_devinfo *ddi; 399 400 ddi = device_get_ivars(child); 401 return (&ddi->ddi_rl); 402} 403 |
404static int 405dma_setup_intr(device_t dev, device_t child, struct resource *ires, int flags, 406 driver_intr_t *intr, void *arg, void **cookiep) 407{ 408 struct lsi64854_softc *sc; 409 410 sc = (struct lsi64854_softc *)device_get_softc(dev); 411 /* XXX - for now only le; do ESP later */ 412 if (sc->sc_channel == L64854_CHANNEL_ENET) { 413 sc->sc_intrchain = intr; 414 sc->sc_intrchainarg = arg; 415 intr = (driver_intr_t *)lsi64854_enet_intr; 416 arg = sc; 417 } 418 419 return (BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags, 420 intr, arg, cookiep)); 421} |
422 423static const struct ofw_bus_devinfo * 424dma_get_devinfo(device_t bus, device_t child) 425{ 426 struct dma_devinfo *ddi; 427 428 ddi = device_get_ivars(child); 429 return (&ddi->ddi_obdinfo); --- 13 unchanged lines hidden --- |