We reset during the shutdown path which will reset AUTOC register.  This
would change LMS to 10G.  If we were currently linked at 1G we will lose
link, which is a bad thing if we wanted WoL to work.  For the fix I needed
to know if WoL is supported so I created a new bool in the ixgbe_hw struct.
If this is set we will not allow the reset to change the current LMS value
in AUTOC.
Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
                /* If MNG FW is running on a multi-speed device that
                 * doesn't autoneg with out driver support we need to
                 * leave LMS in the state it was before we MAC reset.
+                * Likewise if we support WoL we don't want change the
+                * LMS state either.
                 */
-               if (hw->phy.multispeed_fiber && hw->mng_fw_enabled)
+               if ((hw->phy.multispeed_fiber && hw->mng_fw_enabled) ||
+                   hw->wol_supported)
                        hw->mac.orig_autoc =
                                (hw->mac.orig_autoc & ~IXGBE_AUTOC_LMS_MASK) |
                                curr_lms;
 
        /* WOL not supported for all devices */
        adapter->wol = 0;
        hw->eeprom.ops.read(hw, 0x2c, &adapter->eeprom_cap);
-       if (ixgbe_wol_supported(adapter, pdev->device, pdev->subsystem_device))
+       hw->wol_supported = ixgbe_wol_supported(adapter, pdev->device,
+                                               pdev->subsystem_device);
+       if (hw->wol_supported)
                adapter->wol = IXGBE_WUFC_MAG;
 
        device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol);
 
        bool                            force_full_reset;
        bool                            allow_unsupported_sfp;
        bool                            mng_fw_enabled;
+       bool                            wol_supported;
 };
 
 struct ixgbe_info {