diff options
author | Mika Westerberg <mika.westerberg@linux.intel.com> | 2018-05-23 17:14:39 -0500 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2018-05-23 17:42:53 -0500 |
commit | 13c65840feab8109194f9490c9870587173cb29d (patch) | |
tree | 10b5720ecb527552f321aca243d39f36a859ee66 /drivers/pci/hotplug/pciehp.h | |
parent | 5d9c6b8ae987c7207ee665be81c4ad04949ad15a (diff) | |
download | linux-13c65840feab8109194f9490c9870587173cb29d.tar.gz linux-13c65840feab8109194f9490c9870587173cb29d.tar.bz2 linux-13c65840feab8109194f9490c9870587173cb29d.zip |
PCI: pciehp: Clear Presence Detect and Data Link Layer Status Changed on resume
After a suspend/resume cycle the Presence Detect or Data Link Layer Status
Changed bits might be set. If we don't clear them those events will not
fire anymore and nothing happens for instance when a device is now
hot-unplugged.
Fix this by clearing those bits in a newly introduced function
pcie_reenable_notification(). This should be fine because immediately
after, we check if the adapter is still present by reading directly from
the status register.
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: stable@vger.kernel.org
Diffstat (limited to 'drivers/pci/hotplug/pciehp.h')
-rw-r--r-- | drivers/pci/hotplug/pciehp.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h index 88e917c9120f..5f892065585e 100644 --- a/drivers/pci/hotplug/pciehp.h +++ b/drivers/pci/hotplug/pciehp.h @@ -121,7 +121,7 @@ struct controller *pcie_init(struct pcie_device *dev); int pcie_init_notification(struct controller *ctrl); int pciehp_enable_slot(struct slot *p_slot); int pciehp_disable_slot(struct slot *p_slot); -void pcie_enable_notification(struct controller *ctrl); +void pcie_reenable_notification(struct controller *ctrl); int pciehp_power_on_slot(struct slot *slot); void pciehp_power_off_slot(struct slot *slot); void pciehp_get_power_status(struct slot *slot, u8 *status); |