diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2014-09-15 13:18:36 -0600 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2014-09-15 13:18:36 -0600 |
commit | 6de8eee17a324a4fd8d1a4588a18e976b68f330c (patch) | |
tree | 153ab542d89e5905badb062d106b7739de5852d2 /drivers/pci/hotplug/acpiphp_glue.c | |
parent | fd7155fc9fca6464a5aa668965a3741b963f805f (diff) | |
parent | f91ce35e471ae17552ce7bfe355cfd997e3ad781 (diff) |
Merge branch 'pci/hotplug-vga' into for-linus
* pci/hotplug-vga:
ACPIPHP / radeon / nouveau: Remove acpi_bus_no_hotplug()
PCI: Add pci_ignore_hotplug() to ignore hotplug events for a device
Diffstat (limited to 'drivers/pci/hotplug/acpiphp_glue.c')
-rw-r--r-- | drivers/pci/hotplug/acpiphp_glue.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c index 70741c8c46a..6cd5160fc05 100644 --- a/drivers/pci/hotplug/acpiphp_glue.c +++ b/drivers/pci/hotplug/acpiphp_glue.c @@ -560,19 +560,15 @@ static void disable_slot(struct acpiphp_slot *slot) slot->flags &= (~SLOT_ENABLED); } -static bool acpiphp_no_hotplug(struct acpi_device *adev) -{ - return adev && adev->flags.no_hotplug; -} - static bool slot_no_hotplug(struct acpiphp_slot *slot) { - struct acpiphp_func *func; + struct pci_bus *bus = slot->bus; + struct pci_dev *dev; - list_for_each_entry(func, &slot->funcs, sibling) - if (acpiphp_no_hotplug(func_to_acpi_device(func))) + list_for_each_entry(dev, &bus->devices, bus_list) { + if (PCI_SLOT(dev->devfn) == slot->device && dev->ignore_hotplug) return true; - + } return false; } @@ -645,7 +641,7 @@ static void trim_stale_devices(struct pci_dev *dev) status = acpi_evaluate_integer(adev->handle, "_STA", NULL, &sta); alive = (ACPI_SUCCESS(status) && device_status_valid(sta)) - || acpiphp_no_hotplug(adev); + || dev->ignore_hotplug; } if (!alive) alive = pci_device_is_present(dev); |