Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 127389
b: refs/heads/master
c: a79d682
h: refs/heads/master
i:
  127387: 024fb57
v: v3
  • Loading branch information
Rafael J. Wysocki authored and Jesse Barnes committed Jan 7, 2009
1 parent cf1a084 commit 5e94098
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f06fc0b6f8a6846e0ad48aee7b0f282b4fb5dcdc
refs/heads/master: a79d682f789730dfabaebbb507c87a90c0671a62
23 changes: 17 additions & 6 deletions trunk/drivers/pci/pcie/portdrv_pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ static int pcie_portdrv_restore_config(struct pci_dev *dev)
{
int retval;

pci_restore_state(dev);
retval = pci_enable_device(dev);
if (retval)
return retval;
Expand All @@ -50,23 +49,32 @@ static int pcie_portdrv_restore_config(struct pci_dev *dev)
}

#ifdef CONFIG_PM
static int pcie_portdrv_suspend_late(struct pci_dev *dev, pm_message_t state)
static int pcie_portdrv_suspend(struct pci_dev *dev, pm_message_t state)
{
int ret = pcie_port_device_suspend(dev, state);
return pcie_port_device_suspend(dev, state);

if (!ret)
ret = pcie_portdrv_save_config(dev);
return ret;
}

static int pcie_portdrv_suspend_late(struct pci_dev *dev, pm_message_t state)
{
return pci_save_state(dev);
}

static int pcie_portdrv_resume_early(struct pci_dev *dev)
{
return pci_restore_state(dev);
}

static int pcie_portdrv_resume(struct pci_dev *dev)
{
pcie_portdrv_restore_config(dev);
return pcie_port_device_resume(dev);
}
#else
#define pcie_portdrv_suspend NULL
#define pcie_portdrv_suspend_late NULL
#define pcie_portdrv_resume_early NULL
#define pcie_portdrv_resume NULL
#endif

/*
Expand Down Expand Up @@ -221,6 +229,7 @@ static pci_ers_result_t pcie_portdrv_slot_reset(struct pci_dev *dev)

/* If fatal, restore cfg space for possible link reset at upstream */
if (dev->error_state == pci_channel_io_frozen) {
pci_restore_state(dev);
pcie_portdrv_restore_config(dev);
pci_enable_pcie_error_reporting(dev);
}
Expand Down Expand Up @@ -282,8 +291,10 @@ static struct pci_driver pcie_portdriver = {
.probe = pcie_portdrv_probe,
.remove = pcie_portdrv_remove,

.suspend = pcie_portdrv_suspend,
.suspend_late = pcie_portdrv_suspend_late,
.resume_early = pcie_portdrv_resume_early,
.resume = pcie_portdrv_resume,

.err_handler = &pcie_portdrv_err_handler,
};
Expand Down

0 comments on commit 5e94098

Please sign in to comment.