PCI: add acpi_find_root_bridge_handle
Consolidate finding of a root bridge and getting its handle to the one inline function. It's cut & pasted on multiple places. Use this new inline in those. Cc: kristen.c.accardi@intel.com Acked-by: Alex Chiang <achiang@hp.com> Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
This commit is contained in:
parent
e0d94beead
commit
056c58e8eb
3 changed files with 13 additions and 10 deletions
|
@ -404,10 +404,7 @@ int acpi_get_hp_hw_control_from_firmware(struct pci_dev *dev, u32 flags)
|
|||
* OSHP within the scope of the hotplug controller and its parents,
|
||||
* upto the host bridge under which this controller exists.
|
||||
*/
|
||||
while (pdev->bus->self)
|
||||
pdev = pdev->bus->self;
|
||||
handle = acpi_get_pci_rootbridge_handle(pci_domain_nr(pdev->bus),
|
||||
pdev->bus->number);
|
||||
handle = acpi_find_root_bridge_handle(pdev);
|
||||
if (handle) {
|
||||
acpi_get_name(handle, ACPI_FULL_PATHNAME, &string);
|
||||
dbg("Trying to get hotplug control for %s\n",
|
||||
|
|
|
@ -36,12 +36,7 @@ int aer_osc_setup(struct pcie_device *pciedev)
|
|||
if (acpi_pci_disabled)
|
||||
return -1;
|
||||
|
||||
/* Find root host bridge */
|
||||
while (pdev->bus->self)
|
||||
pdev = pdev->bus->self;
|
||||
handle = acpi_get_pci_rootbridge_handle(
|
||||
pci_domain_nr(pdev->bus), pdev->bus->number);
|
||||
|
||||
handle = acpi_find_root_bridge_handle(pdev);
|
||||
if (handle) {
|
||||
pcie_osc_support_set(OSC_EXT_PCI_CONFIG_SUPPORT);
|
||||
status = pci_osc_control_set(handle,
|
||||
|
|
|
@ -57,6 +57,15 @@ static inline acpi_status pcie_osc_support_set(u32 flags)
|
|||
{
|
||||
return __pci_osc_support_set(flags, PCI_EXPRESS_ROOT_HID_STRING);
|
||||
}
|
||||
static inline acpi_handle acpi_find_root_bridge_handle(struct pci_dev *pdev)
|
||||
{
|
||||
/* Find root host bridge */
|
||||
while (pdev->bus->self)
|
||||
pdev = pdev->bus->self;
|
||||
|
||||
return acpi_get_pci_rootbridge_handle(pci_domain_nr(pdev->bus),
|
||||
pdev->bus->number);
|
||||
}
|
||||
#else
|
||||
#if !defined(AE_ERROR)
|
||||
typedef u32 acpi_status;
|
||||
|
@ -66,6 +75,8 @@ static inline acpi_status pci_osc_control_set(acpi_handle handle, u32 flags)
|
|||
{return AE_ERROR;}
|
||||
static inline acpi_status pci_osc_support_set(u32 flags) {return AE_ERROR;}
|
||||
static inline acpi_status pcie_osc_support_set(u32 flags) {return AE_ERROR;}
|
||||
static inline acpi_handle acpi_find_root_bridge_handle(struct pci_dev *pdev)
|
||||
{ return NULL; }
|
||||
#endif
|
||||
|
||||
#endif /* _PCI_ACPI_H_ */
|
||||
|
|
Loading…
Reference in a new issue