[PATCH] pciehp: request control of each hotplug controller individually
[linux-2.6.git] / drivers / pci / hotplug / pciehprm_acpi.c
index 5d18458..5acdae3 100644 (file)
@@ -143,12 +143,13 @@ static acpi_status acpi_run_oshp(acpi_handle handle)
 int get_hp_hw_control_from_firmware(struct pci_dev *dev)
 {
        acpi_status status;
+       acpi_handle handle = DEVICE_ACPI_HANDLE(&(dev->dev));
        /*
         * Per PCI firmware specification, we should run the ACPI _OSC
         * method to get control of hotplug hardware before using it
         */
-       /* Fixme: run _OSC for a specific host bridge, not all of them */
-       status = pci_osc_control_set(OSC_PCI_EXPRESS_NATIVE_HP_CONTROL);
+       status = pci_osc_control_set(handle,
+                       OSC_PCI_EXPRESS_NATIVE_HP_CONTROL);
 
        /* Fixme: fail native hotplug if _OSC does not exist for root ports */
        if (status == AE_NOT_FOUND) {
@@ -156,9 +157,7 @@ int get_hp_hw_control_from_firmware(struct pci_dev *dev)
                 * Some older BIOS's don't support _OSC but support
                 * OSHP to do the same thing
                 */
-               acpi_handle handle = DEVICE_ACPI_HANDLE(&(dev->dev));
-               if (handle)
-                       status = acpi_run_oshp(handle);
+               status = acpi_run_oshp(handle);
        }
        if (ACPI_FAILURE(status)) {
                err("Cannot get control of hotplug hardware\n");