aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/pci-driver.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pci/pci-driver.c')
-rw-r--r--drivers/pci/pci-driver.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
index a5f11ad975b2..8395206d1aee 100644
--- a/drivers/pci/pci-driver.c
+++ b/drivers/pci/pci-driver.c
@@ -423,6 +423,23 @@ static int pci_legacy_resume(struct device *dev)
423 423
424/* Auxiliary functions used by the new power management framework */ 424/* Auxiliary functions used by the new power management framework */
425 425
426/**
427 * pci_restore_standard_config - restore standard config registers of PCI device
428 * @pci_dev: PCI device to handle
429 */
430static int pci_restore_standard_config(struct pci_dev *pci_dev)
431{
432 pci_update_current_state(pci_dev, PCI_UNKNOWN);
433
434 if (pci_dev->current_state != PCI_D0) {
435 int error = pci_set_power_state(pci_dev, PCI_D0);
436 if (error)
437 return error;
438 }
439
440 return pci_dev->state_saved ? pci_restore_state(pci_dev) : 0;
441}
442
426static void pci_pm_default_resume_noirq(struct pci_dev *pci_dev) 443static void pci_pm_default_resume_noirq(struct pci_dev *pci_dev)
427{ 444{
428 pci_restore_standard_config(pci_dev); 445 pci_restore_standard_config(pci_dev);