|
@@ -6357,9 +6357,14 @@ static int e1000e_pm_runtime_idle(struct device *dev)
|
|
struct pci_dev *pdev = to_pci_dev(dev);
|
|
struct pci_dev *pdev = to_pci_dev(dev);
|
|
struct net_device *netdev = pci_get_drvdata(pdev);
|
|
struct net_device *netdev = pci_get_drvdata(pdev);
|
|
struct e1000_adapter *adapter = netdev_priv(netdev);
|
|
struct e1000_adapter *adapter = netdev_priv(netdev);
|
|
|
|
+ u16 eee_lp;
|
|
|
|
|
|
- if (!e1000e_has_link(adapter))
|
|
|
|
|
|
+ eee_lp = adapter->hw.dev_spec.ich8lan.eee_lp_ability;
|
|
|
|
+
|
|
|
|
+ if (!e1000e_has_link(adapter)) {
|
|
|
|
+ adapter->hw.dev_spec.ich8lan.eee_lp_ability = eee_lp;
|
|
pm_schedule_suspend(dev, 5 * MSEC_PER_SEC);
|
|
pm_schedule_suspend(dev, 5 * MSEC_PER_SEC);
|
|
|
|
+ }
|
|
|
|
|
|
return -EBUSY;
|
|
return -EBUSY;
|
|
}
|
|
}
|