diff options
author | Bruce Allan <bruce.w.allan@intel.com> | 2011-01-06 14:29:52 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-01-09 23:44:09 -0800 |
commit | 31dbe5b4ac6fca72dec946e4d0fa7f0913f1d9b1 (patch) | |
tree | 8774e4836c881a7a2c18ddb02f253b66c82aec6c /drivers/net/e1000e/e1000.h | |
parent | fe46f58fa61f025564a3c1e80b789885cb4b0f30 (diff) | |
download | op-kernel-dev-31dbe5b4ac6fca72dec946e4d0fa7f0913f1d9b1.zip op-kernel-dev-31dbe5b4ac6fca72dec946e4d0fa7f0913f1d9b1.tar.gz |
e1000e: power off PHY after reset when interface is down
Some Phys supported by the driver do not remain powered off across a reset
of the device when the interface is down, e.g. on 82571, but not on 82574.
This patch powers down (only when WoL is disabled) the PHY after a reset if
the interface is down and the ethtool diagnostics are not currently running.
The ethtool diagnostic function required a minor re-factor as a result, and
the e1000_[get|put]_hw_control() functions are renamed since they are no
longer static to netdev.c as they are needed by the ethtool diagnostics.
A couple minor whitespace issues were cleaned up, too.
Reported-by: Arthur Jones <ajones@riverbed.com>
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/e1000e/e1000.h')
-rw-r--r-- | drivers/net/e1000e/e1000.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/e1000e/e1000.h b/drivers/net/e1000e/e1000.h index 4b3802a..5255be7 100644 --- a/drivers/net/e1000e/e1000.h +++ b/drivers/net/e1000e/e1000.h @@ -497,6 +497,8 @@ extern void e1000e_free_tx_resources(struct e1000_adapter *adapter); extern void e1000e_update_stats(struct e1000_adapter *adapter); extern void e1000e_set_interrupt_capability(struct e1000_adapter *adapter); extern void e1000e_reset_interrupt_capability(struct e1000_adapter *adapter); +extern void e1000e_get_hw_control(struct e1000_adapter *adapter); +extern void e1000e_release_hw_control(struct e1000_adapter *adapter); extern void e1000e_disable_aspm(struct pci_dev *pdev, u16 state); extern unsigned int copybreak; |