diff options
author | Alex Chiang <achiang@hp.com> | 2009-07-23 19:03:00 -0400 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-09-09 16:29:22 -0400 |
commit | 76d56de57ae60c6be383e48e7068fd973d5fb08a (patch) | |
tree | 732bcbbd91f7d85d658c1fc08d3ea982fcf100bb | |
parent | 2547089ca2db132e307ef68848ba029a8ec2f341 (diff) |
ACPI: export acpi_pci_root and friends
We can simplify ACPI drivers if we can tell whether a handle is an
ACPI PCI root or not.
Reviewed-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Alex Chiang <achiang@hp.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
-rw-r--r-- | drivers/acpi/pci_root.c | 17 | ||||
-rw-r--r-- | include/acpi/acpi_bus.h | 16 |
2 files changed, 18 insertions, 15 deletions
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c index 55b5b90c2a44..31b961c2f22f 100644 --- a/drivers/acpi/pci_root.c +++ b/drivers/acpi/pci_root.c | |||
@@ -61,20 +61,6 @@ static struct acpi_driver acpi_pci_root_driver = { | |||
61 | }, | 61 | }, |
62 | }; | 62 | }; |
63 | 63 | ||
64 | struct acpi_pci_root { | ||
65 | struct list_head node; | ||
66 | struct acpi_device *device; | ||
67 | struct pci_bus *bus; | ||
68 | u16 segment; | ||
69 | u8 bus_nr; | ||
70 | |||
71 | u32 osc_support_set; /* _OSC state of support bits */ | ||
72 | u32 osc_control_set; /* _OSC state of control bits */ | ||
73 | u32 osc_control_qry; /* the latest _OSC query result */ | ||
74 | |||
75 | u32 osc_queried:1; /* has _OSC control been queried? */ | ||
76 | }; | ||
77 | |||
78 | static LIST_HEAD(acpi_pci_roots); | 64 | static LIST_HEAD(acpi_pci_roots); |
79 | 65 | ||
80 | static struct acpi_pci_driver *sub_driver; | 66 | static struct acpi_pci_driver *sub_driver; |
@@ -317,7 +303,7 @@ static acpi_status acpi_pci_osc_support(struct acpi_pci_root *root, u32 flags) | |||
317 | return status; | 303 | return status; |
318 | } | 304 | } |
319 | 305 | ||
320 | static struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle) | 306 | struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle) |
321 | { | 307 | { |
322 | struct acpi_pci_root *root; | 308 | struct acpi_pci_root *root; |
323 | 309 | ||
@@ -327,6 +313,7 @@ static struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle) | |||
327 | } | 313 | } |
328 | return NULL; | 314 | return NULL; |
329 | } | 315 | } |
316 | EXPORT_SYMBOL_GPL(acpi_pci_find_root); | ||
330 | 317 | ||
331 | struct acpi_handle_node { | 318 | struct acpi_handle_node { |
332 | struct list_head node; | 319 | struct list_head node; |
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h index c65e4ce6c3af..c3ace75d57b4 100644 --- a/include/acpi/acpi_bus.h +++ b/include/acpi/acpi_bus.h | |||
@@ -369,10 +369,26 @@ int register_acpi_bus_type(struct acpi_bus_type *); | |||
369 | int unregister_acpi_bus_type(struct acpi_bus_type *); | 369 | int unregister_acpi_bus_type(struct acpi_bus_type *); |
370 | struct device *acpi_get_physical_device(acpi_handle); | 370 | struct device *acpi_get_physical_device(acpi_handle); |
371 | 371 | ||
372 | struct acpi_pci_root { | ||
373 | struct list_head node; | ||
374 | struct acpi_device * device; | ||
375 | struct acpi_pci_id id; | ||
376 | struct pci_bus *bus; | ||
377 | u16 segment; | ||
378 | u8 bus_nr; | ||
379 | |||
380 | u32 osc_support_set; /* _OSC state of support bits */ | ||
381 | u32 osc_control_set; /* _OSC state of control bits */ | ||
382 | u32 osc_control_qry; /* the latest _OSC query result */ | ||
383 | |||
384 | u32 osc_queried:1; /* has _OSC control been queried? */ | ||
385 | }; | ||
386 | |||
372 | /* helper */ | 387 | /* helper */ |
373 | acpi_handle acpi_get_child(acpi_handle, acpi_integer); | 388 | acpi_handle acpi_get_child(acpi_handle, acpi_integer); |
374 | int acpi_is_root_bridge(acpi_handle); | 389 | int acpi_is_root_bridge(acpi_handle); |
375 | acpi_handle acpi_get_pci_rootbridge_handle(unsigned int, unsigned int); | 390 | acpi_handle acpi_get_pci_rootbridge_handle(unsigned int, unsigned int); |
391 | struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle); | ||
376 | #define DEVICE_ACPI_HANDLE(dev) ((acpi_handle)((dev)->archdata.acpi_handle)) | 392 | #define DEVICE_ACPI_HANDLE(dev) ((acpi_handle)((dev)->archdata.acpi_handle)) |
377 | 393 | ||
378 | #ifdef CONFIG_PM_SLEEP | 394 | #ifdef CONFIG_PM_SLEEP |