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>
This commit is contained in:
committed by
Jesse Barnes
parent
2547089ca2
commit
76d56de57a
@@ -61,20 +61,6 @@ static struct acpi_driver acpi_pci_root_driver = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
struct acpi_pci_root {
|
|
||||||
struct list_head node;
|
|
||||||
struct acpi_device *device;
|
|
||||||
struct pci_bus *bus;
|
|
||||||
u16 segment;
|
|
||||||
u8 bus_nr;
|
|
||||||
|
|
||||||
u32 osc_support_set; /* _OSC state of support bits */
|
|
||||||
u32 osc_control_set; /* _OSC state of control bits */
|
|
||||||
u32 osc_control_qry; /* the latest _OSC query result */
|
|
||||||
|
|
||||||
u32 osc_queried:1; /* has _OSC control been queried? */
|
|
||||||
};
|
|
||||||
|
|
||||||
static LIST_HEAD(acpi_pci_roots);
|
static LIST_HEAD(acpi_pci_roots);
|
||||||
|
|
||||||
static struct acpi_pci_driver *sub_driver;
|
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)
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle)
|
struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle)
|
||||||
{
|
{
|
||||||
struct acpi_pci_root *root;
|
struct acpi_pci_root *root;
|
||||||
|
|
||||||
@@ -327,6 +313,7 @@ static struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle)
|
|||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(acpi_pci_find_root);
|
||||||
|
|
||||||
struct acpi_handle_node {
|
struct acpi_handle_node {
|
||||||
struct list_head node;
|
struct list_head node;
|
||||||
|
@@ -369,10 +369,26 @@ int register_acpi_bus_type(struct acpi_bus_type *);
|
|||||||
int unregister_acpi_bus_type(struct acpi_bus_type *);
|
int unregister_acpi_bus_type(struct acpi_bus_type *);
|
||||||
struct device *acpi_get_physical_device(acpi_handle);
|
struct device *acpi_get_physical_device(acpi_handle);
|
||||||
|
|
||||||
|
struct acpi_pci_root {
|
||||||
|
struct list_head node;
|
||||||
|
struct acpi_device * device;
|
||||||
|
struct acpi_pci_id id;
|
||||||
|
struct pci_bus *bus;
|
||||||
|
u16 segment;
|
||||||
|
u8 bus_nr;
|
||||||
|
|
||||||
|
u32 osc_support_set; /* _OSC state of support bits */
|
||||||
|
u32 osc_control_set; /* _OSC state of control bits */
|
||||||
|
u32 osc_control_qry; /* the latest _OSC query result */
|
||||||
|
|
||||||
|
u32 osc_queried:1; /* has _OSC control been queried? */
|
||||||
|
};
|
||||||
|
|
||||||
/* helper */
|
/* helper */
|
||||||
acpi_handle acpi_get_child(acpi_handle, acpi_integer);
|
acpi_handle acpi_get_child(acpi_handle, acpi_integer);
|
||||||
int acpi_is_root_bridge(acpi_handle);
|
int acpi_is_root_bridge(acpi_handle);
|
||||||
acpi_handle acpi_get_pci_rootbridge_handle(unsigned int, unsigned int);
|
acpi_handle acpi_get_pci_rootbridge_handle(unsigned int, unsigned int);
|
||||||
|
struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle);
|
||||||
#define DEVICE_ACPI_HANDLE(dev) ((acpi_handle)((dev)->archdata.acpi_handle))
|
#define DEVICE_ACPI_HANDLE(dev) ((acpi_handle)((dev)->archdata.acpi_handle))
|
||||||
|
|
||||||
#ifdef CONFIG_PM_SLEEP
|
#ifdef CONFIG_PM_SLEEP
|
||||||
|
Reference in New Issue
Block a user