aboutsummaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorMitsuru IWASAKI <iwasaki@FreeBSD.org>2002-10-05 02:01:05 +0000
committerMitsuru IWASAKI <iwasaki@FreeBSD.org>2002-10-05 02:01:05 +0000
commitba835e3fe69d33eab49adb653a146e8d2a480c3d (patch)
tree3d27e27383645f53353354346d52ffe95f624f97 /sys/dev
parent085f8416a2fb9584722984e2a2afd9450d559df4 (diff)
Notes
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/acpica/acpi_pcib.c8
-rw-r--r--sys/dev/acpica/acpi_pcib_acpi.c11
-rw-r--r--sys/dev/acpica/acpi_pcib_pci.c11
-rw-r--r--sys/dev/acpica/acpi_pcibvar.h4
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