diff options
| author | Mitsuru IWASAKI <iwasaki@FreeBSD.org> | 2002-10-05 02:01:05 +0000 |
|---|---|---|
| committer | Mitsuru IWASAKI <iwasaki@FreeBSD.org> | 2002-10-05 02:01:05 +0000 |
| commit | ba835e3fe69d33eab49adb653a146e8d2a480c3d (patch) | |
| tree | 3d27e27383645f53353354346d52ffe95f624f97 /sys/dev | |
| parent | 085f8416a2fb9584722984e2a2afd9450d559df4 (diff) | |
Notes
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/acpica/acpi_pcib.c | 8 | ||||
| -rw-r--r-- | sys/dev/acpica/acpi_pcib_acpi.c | 11 | ||||
| -rw-r--r-- | sys/dev/acpica/acpi_pcib_pci.c | 11 | ||||
| -rw-r--r-- | sys/dev/acpica/acpi_pcibvar.h | 4 |
4 files changed, 32 insertions, 2 deletions
diff --git a/sys/dev/acpica/acpi_pcib.c b/sys/dev/acpica/acpi_pcib.c index 10a1a2fd693f..5bdf50a488d2 100644 --- a/sys/dev/acpica/acpi_pcib.c +++ b/sys/dev/acpica/acpi_pcib.c @@ -87,9 +87,17 @@ acpi_pcib_attach(device_t dev, ACPI_BUFFER *prt, int busno) /* * Now go scan the bus. */ + acpi_pci_link_config(dev, prt, busno); return_VALUE(bus_generic_attach(dev)); } +int +acpi_pcib_resume(device_t dev, ACPI_BUFFER *prt, int busno) +{ + acpi_pci_link_resume(dev, prt, busno); + return (bus_generic_resume(dev)); +} + /* * Route an interrupt for a child of the bridge. * diff --git a/sys/dev/acpica/acpi_pcib_acpi.c b/sys/dev/acpica/acpi_pcib_acpi.c index 5857fdf4818e..d809723da97e 100644 --- a/sys/dev/acpica/acpi_pcib_acpi.c +++ b/sys/dev/acpica/acpi_pcib_acpi.c @@ -62,6 +62,7 @@ struct acpi_hpcib_softc { static int acpi_pcib_acpi_probe(device_t bus); static int acpi_pcib_acpi_attach(device_t bus); +static int acpi_pcib_acpi_resume(device_t bus); static int acpi_pcib_read_ivar(device_t dev, device_t child, int which, uintptr_t *result); static int acpi_pcib_write_ivar(device_t dev, device_t child, int which, uintptr_t value); static u_int32_t acpi_pcib_read_config(device_t dev, int bus, int slot, int func, int reg, int bytes); @@ -76,7 +77,7 @@ static device_method_t acpi_pcib_acpi_methods[] = { DEVMETHOD(device_attach, acpi_pcib_acpi_attach), DEVMETHOD(device_shutdown, bus_generic_shutdown), DEVMETHOD(device_suspend, bus_generic_suspend), - DEVMETHOD(device_resume, bus_generic_resume), + DEVMETHOD(device_resume, acpi_pcib_acpi_resume), /* Bus interface */ DEVMETHOD(bus_print_child, bus_generic_print_child), @@ -180,6 +181,14 @@ acpi_pcib_acpi_attach(device_t dev) return (acpi_pcib_attach(dev, &sc->ap_prt, sc->ap_bus)); } +static int +acpi_pcib_acpi_resume(device_t dev) +{ + struct acpi_hpcib_softc *sc = device_get_softc(dev); + + return (acpi_pcib_resume(dev, &sc->ap_prt, sc->ap_bus)); +} + /* * Support for standard PCI bridge ivars. */ diff --git a/sys/dev/acpica/acpi_pcib_pci.c b/sys/dev/acpica/acpi_pcib_pci.c index 2312faa85023..ae565bb69b6a 100644 --- a/sys/dev/acpica/acpi_pcib_pci.c +++ b/sys/dev/acpica/acpi_pcib_pci.c @@ -64,6 +64,7 @@ struct acpi_pcib_lookup_info { static int acpi_pcib_pci_probe(device_t bus); static int acpi_pcib_pci_attach(device_t bus); +static int acpi_pcib_pci_resume(device_t bus); static int acpi_pcib_read_ivar(device_t dev, device_t child, int which, uintptr_t *result); static int acpi_pcib_pci_route_interrupt(device_t pcib, device_t dev, int pin); @@ -74,7 +75,7 @@ static device_method_t acpi_pcib_pci_methods[] = { DEVMETHOD(device_attach, acpi_pcib_pci_attach), DEVMETHOD(device_shutdown, bus_generic_shutdown), DEVMETHOD(device_suspend, bus_generic_suspend), - DEVMETHOD(device_resume, bus_generic_resume), + DEVMETHOD(device_resume, acpi_pcib_pci_resume), /* Bus interface */ DEVMETHOD(bus_print_child, bus_generic_print_child), @@ -132,6 +133,14 @@ acpi_pcib_pci_attach(device_t dev) } static int +acpi_pcib_pci_resume(device_t dev) +{ + struct acpi_pcib_softc *sc = device_get_softc(dev); + + return (acpi_pcib_resume(dev, &sc->ap_prt, sc->ap_pcibsc.secbus)); +} + +static int acpi_pcib_read_ivar(device_t dev, device_t child, int which, uintptr_t *result) { struct acpi_pcib_softc *sc = device_get_softc(dev); diff --git a/sys/dev/acpica/acpi_pcibvar.h b/sys/dev/acpica/acpi_pcibvar.h index 40813bb946f8..a7a5f206d7b0 100644 --- a/sys/dev/acpica/acpi_pcibvar.h +++ b/sys/dev/acpica/acpi_pcibvar.h @@ -33,5 +33,9 @@ int acpi_pcib_attach(device_t bus, ACPI_BUFFER *prt, int busno); int acpi_pcib_route_interrupt(device_t pcib, device_t dev, int pin, ACPI_BUFFER *ptrbuf); +int acpi_pcib_resume(device_t bus, ACPI_BUFFER *prt, int busno); + +int acpi_pci_link_config(device_t pcib, ACPI_BUFFER *prt, int busno); +int acpi_pci_link_resume(device_t pcib, ACPI_BUFFER *prt, int busno); #endif |
