From 4096a8c823c1085e03b508933bdf7f272d88a538 Mon Sep 17 00:00:00 2001 From: "Kay, Allen M" Date: Thu, 26 Jan 2012 10:25:53 -0800 Subject: [PATCH] --- yaml --- r: 294717 b: refs/heads/master c: 26f41062f28de65e11d3cf353e52d0be73442be1 h: refs/heads/master i: 294715: 2d4ce4973a92b805f3b1bae5836cef3a6af87297 v: v3 --- [refs] | 2 +- trunk/drivers/pci/pci.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 7223a5d46fb3..97d51a817d2c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2debd9289997fc5d1c0043b41201a8b40d5e11d0 +refs/heads/master: 26f41062f28de65e11d3cf353e52d0be73442be1 diff --git a/trunk/drivers/pci/pci.c b/trunk/drivers/pci/pci.c index 053670e09e2b..9c89447e7b21 100644 --- a/trunk/drivers/pci/pci.c +++ b/trunk/drivers/pci/pci.c @@ -959,6 +959,7 @@ void pci_restore_state(struct pci_dev *dev) { int i; u32 val; + int tries; if (!dev->state_saved) return; @@ -973,12 +974,16 @@ void pci_restore_state(struct pci_dev *dev) */ for (i = 15; i >= 0; i--) { pci_read_config_dword(dev, i * 4, &val); - if (val != dev->saved_config_space[i]) { + tries = 10; + while (tries && val != dev->saved_config_space[i]) { dev_dbg(&dev->dev, "restoring config " "space at offset %#x (was %#x, writing %#x)\n", i, val, (int)dev->saved_config_space[i]); pci_write_config_dword(dev,i * 4, dev->saved_config_space[i]); + pci_read_config_dword(dev, i * 4, &val); + mdelay(10); + tries--; } } pci_restore_pcix_state(dev);