aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDon Skidmore <donald.c.skidmore@intel.com>2012-04-05 04:12:05 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2012-04-14 04:47:11 -0400
commitc509e754af96882eb46130e215cc4aa8f763d4ac (patch)
tree230d8bbca66aa59f888558cd189a96fbf232462c
parent92fe173391b3e0d0a7212fa8b9d72c8d61f31c26 (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.c10
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);