Skip to content

Commit

Permalink
PCI: pciehp: Always implement resume, regardless of pciehp_force param
Browse files Browse the repository at this point in the history
Previously, the driver ignored resume unless the pciehp_force module_param
was specified.  On some laptops that means that interrupts are not
delivered after S3, so card removals and insertions are not handled.
This patch makes the driver handle resume regardless of pciehp_force.

[bhelgaas: changelog]
Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Rafael J. Wysocki <rjw@sisk.pl>
  • Loading branch information
Oliver Neukum authored and Bjorn Helgaas committed Sep 7, 2012
1 parent 0d7614f commit 87683e2
Showing 1 changed file with 14 additions and 14 deletions.
28 changes: 14 additions & 14 deletions drivers/pci/hotplug/pciehp_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -300,24 +300,24 @@ static int pciehp_suspend (struct pcie_device *dev)

static int pciehp_resume (struct pcie_device *dev)
{
struct controller *ctrl;
struct slot *slot;
u8 status;

dev_info(&dev->device, "%s ENTRY\n", __func__);
if (pciehp_force) {
struct controller *ctrl = get_service_data(dev);
struct slot *slot;
u8 status;
ctrl = get_service_data(dev);

/* reinitialize the chipset's event detection logic */
pcie_enable_notification(ctrl);
/* reinitialize the chipset's event detection logic */
pcie_enable_notification(ctrl);

slot = ctrl->slot;
slot = ctrl->slot;

/* Check if slot is occupied */
pciehp_get_adapter_status(slot, &status);
if (status)
pciehp_enable_slot(slot);
else
pciehp_disable_slot(slot);
}
/* Check if slot is occupied */
pciehp_get_adapter_status(slot, &status);
if (status)
pciehp_enable_slot(slot);
else
pciehp_disable_slot(slot);
return 0;
}
#endif /* PM */
Expand Down

0 comments on commit 87683e2

Please sign in to comment.