summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-08-20 16:42:41 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2012-08-20 16:42:41 -0700
commit9160338de92c0305329be5163a76f849806e83de (patch)
treea71f6574679a1abd994b62673d04beee2b1c3414
parent3b31fe92948439161bc44c11e22e0e474543b5a2 (diff)
parent0b68c8e2c3afaf9807eb1ebe0ccfb3b809570aa4 (diff)
downloadlinux-9160338de92c0305329be5163a76f849806e83de.tar.bz2
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
Pull PCI fixes from Bjorn Helgaas: "Here are two patches from Rafael Wysocki. One fixes an EHCI-related hibernation crash on ASUS boxes. We fixed a similar suspend issue in v3.6-rc1, and this applies the same fix to the hibernate path. The other fixes D3/D3cold/D4 messages related to the D3cold support we merged in v3.6-rc1." (Removed redundant top non-fast-forward merge commit from pulled branch) * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: PCI: EHCI: Fix crash during hibernation on ASUS computers PCI / PM: Fix D3/D3cold/D4 messages printed by acpi_pci_set_power_state()
-rw-r--r--drivers/pci/pci-acpi.c4
-rw-r--r--drivers/pci/pci-driver.c7
2 files changed, 9 insertions, 2 deletions
diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
index fbf7b26c7c8a..c5792d622dc4 100644
--- a/drivers/pci/pci-acpi.c
+++ b/drivers/pci/pci-acpi.c
@@ -266,8 +266,8 @@ static int acpi_pci_set_power_state(struct pci_dev *dev, pci_power_t state)
}
if (!error)
- dev_printk(KERN_INFO, &dev->dev,
- "power state changed by ACPI to D%d\n", state);
+ dev_info(&dev->dev, "power state changed by ACPI to %s\n",
+ pci_power_name(state));
return error;
}
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
index 185be3703343..5270f1a99328 100644
--- a/drivers/pci/pci-driver.c
+++ b/drivers/pci/pci-driver.c
@@ -959,6 +959,13 @@ static int pci_pm_poweroff_noirq(struct device *dev)
if (!pci_dev->state_saved && !pci_is_bridge(pci_dev))
pci_prepare_to_sleep(pci_dev);
+ /*
+ * The reason for doing this here is the same as for the analogous code
+ * in pci_pm_suspend_noirq().
+ */
+ if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI)
+ pci_write_config_word(pci_dev, PCI_COMMAND, 0);
+
return 0;
}