]> rtime.felk.cvut.cz Git - can-eth-gw-linux.git/blobdiff - drivers/acpi/pci_bind.c
Merge tag 'for-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
[can-eth-gw-linux.git] / drivers / acpi / pci_bind.c
index 2ef04098cc1d5f4d01942d3e4de79014c4911efe..a1dee29beed328430491bdbff3cfe386692b06ba 100644 (file)
@@ -45,11 +45,12 @@ static int acpi_pci_unbind(struct acpi_device *device)
 
        device_set_run_wake(&dev->dev, false);
        pci_acpi_remove_pm_notifier(device);
+       acpi_power_resource_unregister_device(&dev->dev, device->handle);
 
        if (!dev->subordinate)
                goto out;
 
-       acpi_pci_irq_del_prt(dev->subordinate);
+       acpi_pci_irq_del_prt(pci_domain_nr(dev->bus), dev->subordinate->number);
 
        device->ops.bind = NULL;
        device->ops.unbind = NULL;
@@ -63,7 +64,7 @@ static int acpi_pci_bind(struct acpi_device *device)
 {
        acpi_status status;
        acpi_handle handle;
-       struct pci_bus *bus;
+       unsigned char bus;
        struct pci_dev *dev;
 
        dev = acpi_get_pci_dev(device->handle);
@@ -71,6 +72,7 @@ static int acpi_pci_bind(struct acpi_device *device)
                return 0;
 
        pci_acpi_add_pm_notifier(device, dev);
+       acpi_power_resource_register_device(&dev->dev, device->handle);
        if (device->wakeup.flags.run_wake)
                device_set_run_wake(&dev->dev, true);
 
@@ -100,11 +102,11 @@ static int acpi_pci_bind(struct acpi_device *device)
                goto out;
 
        if (dev->subordinate)
-               bus = dev->subordinate;
+               bus = dev->subordinate->number;
        else
-               bus = dev->bus;
+               bus = dev->bus->number;
 
-       acpi_pci_irq_add_prt(device->handle, bus);
+       acpi_pci_irq_add_prt(device->handle, pci_domain_nr(dev->bus), bus);
 
 out:
        pci_dev_put(dev);