Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 121976
b: refs/heads/master
c: 005cbdf
h: refs/heads/master
v: v3
  • Loading branch information
Alexander Duyck authored and David S. Miller committed Nov 22, 2008
1 parent 688492f commit e0bcfdf
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 2 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: 7e3aab4a9cd7d37f80eee75bebb6a71347f82476
refs/heads/master: 005cbdfc29cfc23b8faadd3619eed43e6550bfc1
22 changes: 21 additions & 1 deletion trunk/drivers/net/e1000e/netdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -4462,7 +4462,27 @@ static int e1000_suspend(struct pci_dev *pdev, pm_message_t state)

pci_disable_device(pdev);

pci_set_power_state(pdev, pci_choose_state(pdev, state));
/*
* The pci-e switch on some quad port adapters will report a
* correctable error when the MAC transitions from D0 to D3. To
* prevent this we need to mask off the correctable errors on the
* downstream port of the pci-e switch.
*/
if (adapter->flags & FLAG_IS_QUAD_PORT) {
struct pci_dev *us_dev = pdev->bus->self;
int pos = pci_find_capability(us_dev, PCI_CAP_ID_EXP);
u16 devctl;

pci_read_config_word(us_dev, pos + PCI_EXP_DEVCTL, &devctl);
pci_write_config_word(us_dev, pos + PCI_EXP_DEVCTL,
(devctl & ~PCI_EXP_DEVCTL_CERE));

pci_set_power_state(pdev, pci_choose_state(pdev, state));

pci_write_config_word(us_dev, pos + PCI_EXP_DEVCTL, devctl);
} else {
pci_set_power_state(pdev, pci_choose_state(pdev, state));
}

return 0;
}
Expand Down

0 comments on commit e0bcfdf

Please sign in to comment.