summaryrefslogtreecommitdiffstats
path: root/sys/dev/acpica/acpi_pcib_acpi.c
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2009-09-11 22:49:34 +0000
committerjkim <jkim@FreeBSD.org>2009-09-11 22:49:34 +0000
commit90f12dc1bbbf12997d0f29e9c7b545e88b5d02a7 (patch)
treebcc1bcaf1b69df0bde742f7df920d31577d014aa /sys/dev/acpica/acpi_pcib_acpi.c
parent1d3fa3e25bb3cb6b5c8fbbe069086f14d8af5fe5 (diff)
downloadFreeBSD-src-90f12dc1bbbf12997d0f29e9c7b545e88b5d02a7.zip
FreeBSD-src-90f12dc1bbbf12997d0f29e9c7b545e88b5d02a7.tar.gz
Catch up with ACPICA 20090903.
Diffstat (limited to 'sys/dev/acpica/acpi_pcib_acpi.c')
-rw-r--r--sys/dev/acpica/acpi_pcib_acpi.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/sys/dev/acpica/acpi_pcib_acpi.c b/sys/dev/acpica/acpi_pcib_acpi.c
index 4714125..b20fc74 100644
--- a/sys/dev/acpica/acpi_pcib_acpi.c
+++ b/sys/dev/acpica/acpi_pcib_acpi.c
@@ -131,14 +131,18 @@ MODULE_DEPEND(acpi_pcib, acpi, 1, 1, 1);
static int
acpi_pcib_acpi_probe(device_t dev)
{
- static char *pcib_ids[] = { "PNP0A03", "PNP0A08", NULL };
+ ACPI_DEVICE_INFO *devinfo;
+ ACPI_HANDLE h;
+ int root;
- if (acpi_disabled("pcib") ||
- ACPI_ID_PROBE(device_get_parent(dev), dev, pcib_ids) == NULL)
+ if (acpi_disabled("pcib") || (h = acpi_get_handle(dev)) == NULL ||
+ ACPI_FAILURE(AcpiGetObjectInfo(h, &devinfo)))
return (ENXIO);
-
- if (pci_cfgregopen() == 0)
+ root = (devinfo->Flags & ACPI_PCI_ROOT_BRIDGE) != 0;
+ AcpiOsFree(devinfo);
+ if (!root || pci_cfgregopen() == 0)
return (ENXIO);
+
device_set_desc(dev, "ACPI Host-PCI bridge");
return (0);
}
OpenPOWER on IntegriCloud