Thread (4 messages) 4 messages, 2 authors, 2012-09-08

Re: [Resend][PATCH] pciehp: always implement resume

From: Bjorn Helgaas <bhelgaas@google.com>
Date: 2012-09-07 23:28:58
Also in: lkml

On Fri, Sep 7, 2012 at 2:28 PM, Rafael J. Wysocki [off-list ref] wrote:
From: Oliver Neukum <oliver@neukum.org>
Subject: pciehp: always implement resume

The driver by default ignores resume. On some laptops
that means that interrupts are not delivered after S3.
So card removals and insertions will not be handled. Requiring
a forced load isn't right.

Signed-off-by: Oliver Neukum <redacted>
Signed-off-by: Rafael J. Wysocki <redacted>
I applied this (with fixed From: email address and slightly modified
changelog) to http://git.kernel.org/?p=linux/kernel/git/helgaas/pci.git;a=shortlog;h=refs/heads/pci/oliver-pciehp-resume
and will merge it to "next" after Fengguang's build/smoke tests.

Thanks!

Bjorn
quoted hunk ↗ jump to hunk
---
drivers/pci/hotplug/pciehp_core.c |   28 ++++++++++++++--------------
 drivers/pci/hotplug/pciehp_core.c |   28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

Index: linux/drivers/pci/hotplug/pciehp_core.c
===================================================================
--- linux.orig/drivers/pci/hotplug/pciehp_core.c
+++ linux/drivers/pci/hotplug/pciehp_core.c
@@ -300,24 +300,24 @@ static int pciehp_suspend (struct pcie_d

 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 */
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help