aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/probe.c
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2009-09-09 17:49:59 -0400
committerJesse Barnes <jbarnes@virtuousgeek.org>2009-09-14 16:41:46 -0400
commit4b77b0a2ba27d64f58f16d8d4d48d8319dda36ff (patch)
tree957f38dc1065e2880197e7ca5ffe1592515010b3 /drivers/pci/probe.c
parent999cce4a52d5abdda5d2cec6bac241899bc19e4c (diff)
PCI: Clear saved_state after the state has been restored
Some PCI devices fail if their standard configuration registers are restored twice in a row. Prevent this from happening by making pci_restore_state() clear the saved_state flag of the device right after the device's standard configuration registers have been populated with the previously saved values. Simplify PCI PM callbacks by removing the direct clearing of state_saved from them, as it shouldn't be necessary any more (except in pci_pm_thaw(), where it has to be cleared, so that the values saved during the "freeze" phase of hibernation are not used later by mistake). Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/pci/probe.c')
-rw-r--r--drivers/pci/probe.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 882383b61d30..8105e32117f6 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -1032,6 +1032,9 @@ void pci_device_add(struct pci_dev *dev, struct pci_bus *bus)
1032 /* Fix up broken headers */ 1032 /* Fix up broken headers */
1033 pci_fixup_device(pci_fixup_header, dev); 1033 pci_fixup_device(pci_fixup_header, dev);
1034 1034
1035 /* Clear the state_saved flag. */
1036 dev->state_saved = false;
1037
1035 /* Initialize various capabilities */ 1038 /* Initialize various capabilities */
1036 pci_init_capabilities(dev); 1039 pci_init_capabilities(dev);
1037 1040