PCI hotplug: acpiphp: assume device is in state D0 after powering on a slot.
Ian Campbell [Wed, 11 May 2011 16:00:32 +0000 (17:00 +0100)]
Devices which do not support PCI configuration space based power
management may not otherwise be enabled.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>

drivers/pci/hotplug/acpiphp_glue.c

index 2f67e9b..a70fa89 100644 (file)
@@ -827,6 +827,13 @@ static int __ref enable_device(struct acpiphp_slot *slot)
        acpiphp_set_hpp_values(bus);
        acpiphp_set_acpi_region(slot);
        pci_enable_bridges(bus);
+
+       list_for_each_entry(dev, &bus->devices, bus_list) {
+               /* Assume that newly added devices are powered on already. */
+               if (!dev->is_added)
+                       dev->current_state = PCI_D0;
+       }
+
        pci_bus_add_devices(bus);
 
        list_for_each_entry(func, &slot->funcs, sibling) {