|
@@ -150,15 +150,7 @@ static int pcie_portdrv_probe(struct pci_dev *dev,
|
|
|
|
|
|
pci_save_state(dev);
|
|
pci_save_state(dev);
|
|
|
|
|
|
- /*
|
|
|
|
- * Prevent runtime PM if the port is advertising support for PCIe
|
|
|
|
- * hotplug. Otherwise the BIOS hotplug SMI code might not be able
|
|
|
|
- * to enumerate devices behind this port properly (the port is
|
|
|
|
- * powered down preventing all config space accesses to the
|
|
|
|
- * subordinate devices). We can't be sure for native PCIe hotplug
|
|
|
|
- * either so prevent that as well.
|
|
|
|
- */
|
|
|
|
- if (pci_bridge_d3_possible(dev) && !dev->is_hotplug_bridge) {
|
|
|
|
|
|
+ if (pci_bridge_d3_possible(dev)) {
|
|
/*
|
|
/*
|
|
* Keep the port resumed 100ms to make sure things like
|
|
* Keep the port resumed 100ms to make sure things like
|
|
* config space accesses from userspace (lspci) will not
|
|
* config space accesses from userspace (lspci) will not
|
|
@@ -176,7 +168,7 @@ static int pcie_portdrv_probe(struct pci_dev *dev,
|
|
|
|
|
|
static void pcie_portdrv_remove(struct pci_dev *dev)
|
|
static void pcie_portdrv_remove(struct pci_dev *dev)
|
|
{
|
|
{
|
|
- if (pci_bridge_d3_possible(dev) && !dev->is_hotplug_bridge) {
|
|
|
|
|
|
+ if (pci_bridge_d3_possible(dev)) {
|
|
pm_runtime_forbid(&dev->dev);
|
|
pm_runtime_forbid(&dev->dev);
|
|
pm_runtime_get_noresume(&dev->dev);
|
|
pm_runtime_get_noresume(&dev->dev);
|
|
pm_runtime_dont_use_autosuspend(&dev->dev);
|
|
pm_runtime_dont_use_autosuspend(&dev->dev);
|