aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/pci-driver.c
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-06-13 20:29:04 -0400
committerJeff Garzik <jeff@garzik.org>2006-06-13 20:29:04 -0400
commitb5ed7639c9f502898af4109e778f5613dacbfd9c (patch)
treeabe908c60ce1ea8f201028c9fc830cacd25c724b /drivers/pci/pci-driver.c
parent[PATCH] net: au1000_eth: PHY framework conversion (diff)
parent[PATCH] sky2: stop/start hardware idle timer on suspend/resume (diff)
downloadlinux-dev-b5ed7639c9f502898af4109e778f5613dacbfd9c.tar.xz
linux-dev-b5ed7639c9f502898af4109e778f5613dacbfd9c.zip
Merge branch 'master' into upstream
Diffstat (limited to 'drivers/pci/pci-driver.c')
-rw-r--r--drivers/pci/pci-driver.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
index 1456759936c5..10e1a905c144 100644
--- a/drivers/pci/pci-driver.c
+++ b/drivers/pci/pci-driver.c
@@ -285,9 +285,9 @@ static int pci_device_suspend(struct device * dev, pm_message_t state)
* Default resume method for devices that have no driver provided resume,
* or not even a driver at all.
*/
-static void pci_default_resume(struct pci_dev *pci_dev)
+static int pci_default_resume(struct pci_dev *pci_dev)
{
- int retval;
+ int retval = 0;
/* restore the PCI config space */
pci_restore_state(pci_dev);
@@ -297,18 +297,21 @@ static void pci_default_resume(struct pci_dev *pci_dev)
/* if the device was busmaster before the suspend, make it busmaster again */
if (pci_dev->is_busmaster)
pci_set_master(pci_dev);
+
+ return retval;
}
static int pci_device_resume(struct device * dev)
{
+ int error;
struct pci_dev * pci_dev = to_pci_dev(dev);
struct pci_driver * drv = pci_dev->driver;
if (drv && drv->resume)
- drv->resume(pci_dev);
+ error = drv->resume(pci_dev);
else
- pci_default_resume(pci_dev);
- return 0;
+ error = pci_default_resume(pci_dev);
+ return error;
}
static void pci_device_shutdown(struct device *dev)