From ca11419237a6458a92855e838724ef8c71225f0f Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Thu, 18 Apr 2013 12:43:06 +0000 Subject: [PATCH] Make siis(4) and mvs(4) send bus_get_dma_tag() requests to parent buses passing real bus' child pointers instead of grandchilds. Requested by: kib --- sys/dev/mvs/mvs_pci.c | 8 ++++++++ sys/dev/mvs/mvs_soc.c | 10 +++++++++- sys/dev/siis/siis.c | 8 ++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/sys/dev/mvs/mvs_pci.c b/sys/dev/mvs/mvs_pci.c index 737952253d22..b2b9944adfe8 100644 --- a/sys/dev/mvs/mvs_pci.c +++ b/sys/dev/mvs/mvs_pci.c @@ -488,6 +488,13 @@ mvs_child_location_str(device_t dev, device_t child, char *buf, return (0); } +static bus_dma_tag_t +mvs_get_dma_tag(device_t bus, device_t child) +{ + + return (bus_get_dma_tag(bus)); +} + static device_method_t mvs_methods[] = { DEVMETHOD(device_probe, mvs_probe), DEVMETHOD(device_attach, mvs_attach), @@ -500,6 +507,7 @@ static device_method_t mvs_methods[] = { DEVMETHOD(bus_setup_intr, mvs_setup_intr), DEVMETHOD(bus_teardown_intr,mvs_teardown_intr), DEVMETHOD(bus_child_location_str, mvs_child_location_str), + DEVMETHOD(bus_get_dma_tag, mvs_get_dma_tag), DEVMETHOD(mvs_edma, mvs_edma), { 0, 0 } }; diff --git a/sys/dev/mvs/mvs_soc.c b/sys/dev/mvs/mvs_soc.c index 9f48fddaaa7a..2edeef0cac65 100644 --- a/sys/dev/mvs/mvs_soc.c +++ b/sys/dev/mvs/mvs_soc.c @@ -430,6 +430,13 @@ mvs_child_location_str(device_t dev, device_t child, char *buf, return (0); } +static bus_dma_tag_t +mvs_get_dma_tag(device_t bus, device_t child) +{ + + return (bus_get_dma_tag(bus)); +} + static device_method_t mvs_methods[] = { DEVMETHOD(device_probe, mvs_probe), DEVMETHOD(device_attach, mvs_attach), @@ -441,8 +448,9 @@ static device_method_t mvs_methods[] = { DEVMETHOD(bus_release_resource, mvs_release_resource), DEVMETHOD(bus_setup_intr, mvs_setup_intr), DEVMETHOD(bus_teardown_intr,mvs_teardown_intr), - DEVMETHOD(mvs_edma, mvs_edma), DEVMETHOD(bus_child_location_str, mvs_child_location_str), + DEVMETHOD(bus_get_dma_tag, mvs_get_dma_tag), + DEVMETHOD(mvs_edma, mvs_edma), { 0, 0 } }; static driver_t mvs_driver = { diff --git a/sys/dev/siis/siis.c b/sys/dev/siis/siis.c index f892cc215ee2..b08ee625ecf2 100644 --- a/sys/dev/siis/siis.c +++ b/sys/dev/siis/siis.c @@ -414,6 +414,13 @@ siis_child_location_str(device_t dev, device_t child, char *buf, return (0); } +static bus_dma_tag_t +siis_get_dma_tag(device_t bus, device_t child) +{ + + return (bus_get_dma_tag(bus)); +} + devclass_t siis_devclass; static device_method_t siis_methods[] = { DEVMETHOD(device_probe, siis_probe), @@ -427,6 +434,7 @@ static device_method_t siis_methods[] = { DEVMETHOD(bus_setup_intr, siis_setup_intr), DEVMETHOD(bus_teardown_intr,siis_teardown_intr), DEVMETHOD(bus_child_location_str, siis_child_location_str), + DEVMETHOD(bus_get_dma_tag, siis_get_dma_tag), { 0, 0 } }; static driver_t siis_driver = {