瀏覽代碼

Merge branch 'pm-pci'

* pm-pci:
  PCI / PM: Force devices to D0 in pci_pm_thaw_noirq()
Rafael J. Wysocki 7 年之前
父節點
當前提交
63d15e8c2a
共有 1 個文件被更改,包括 6 次插入1 次删除
  1. 6 1
      drivers/pci/pci-driver.c

+ 6 - 1
drivers/pci/pci-driver.c

@@ -1012,7 +1012,12 @@ static int pci_pm_thaw_noirq(struct device *dev)
 	if (pci_has_legacy_pm_support(pci_dev))
 		return pci_legacy_resume_early(dev);
 
-	pci_update_current_state(pci_dev, PCI_D0);
+	/*
+	 * pci_restore_state() requires the device to be in D0 (because of MSI
+	 * restoration among other things), so force it into D0 in case the
+	 * driver's "freeze" callbacks put it into a low-power state directly.
+	 */
+	pci_set_power_state(pci_dev, PCI_D0);
 	pci_restore_state(pci_dev);
 
 	if (drv && drv->pm && drv->pm->thaw_noirq)