diff options
author | Don Skidmore <donald.c.skidmore@intel.com> | 2012-04-05 04:12:05 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2012-04-14 04:47:11 -0400 |
commit | c509e754af96882eb46130e215cc4aa8f763d4ac (patch) | |
tree | 230d8bbca66aa59f888558cd189a96fbf232462c | |
parent | 92fe173391b3e0d0a7212fa8b9d72c8d61f31c26 (diff) |
ixgbe: fix WoL issue with fiber
There are times we turn of the laser before shutdown. This is a bad thing
if we want to wake on lan to work so now we make sure the laser is on
before shutdown if we support WoL.
Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Tested-by: Stephen Ko <stephen.s.ko@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 3e26b1f9ac75..dac7c01f8332 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | |||
@@ -4893,6 +4893,16 @@ static int __ixgbe_shutdown(struct pci_dev *pdev, bool *enable_wake) | |||
4893 | if (wufc) { | 4893 | if (wufc) { |
4894 | ixgbe_set_rx_mode(netdev); | 4894 | ixgbe_set_rx_mode(netdev); |
4895 | 4895 | ||
4896 | /* | ||
4897 | * enable the optics for both mult-speed fiber and | ||
4898 | * 82599 SFP+ fiber as we can WoL. | ||
4899 | */ | ||
4900 | if (hw->mac.ops.enable_tx_laser && | ||
4901 | (hw->phy.multispeed_fiber || | ||
4902 | (hw->mac.ops.get_media_type(hw) == ixgbe_media_type_fiber && | ||
4903 | hw->mac.type == ixgbe_mac_82599EB))) | ||
4904 | hw->mac.ops.enable_tx_laser(hw); | ||
4905 | |||
4896 | /* turn on all-multi mode if wake on multicast is enabled */ | 4906 | /* turn on all-multi mode if wake on multicast is enabled */ |
4897 | if (wufc & IXGBE_WUFC_MC) { | 4907 | if (wufc & IXGBE_WUFC_MC) { |
4898 | fctrl = IXGBE_READ_REG(hw, IXGBE_FCTRL); | 4908 | fctrl = IXGBE_READ_REG(hw, IXGBE_FCTRL); |