From dae0a5af5f4c3734e89ea3d87b4b72ea08dad4f6 Mon Sep 17 00:00:00 2001 From: Don Skidmore Date: Thu, 28 Feb 2013 08:08:44 +0000 Subject: [PATCH] --- yaml --- r: 369289 b: refs/heads/master c: b8f83638950e3c33fbd8ad450045ac088e5efdbe h: refs/heads/master i: 369287: 58d8f60b07345b8c995d05523bc54d7f53cc021d v: v3 --- [refs] | 2 +- trunk/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 5 ++++- trunk/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 +++- trunk/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 1 + 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index a0500a8095a6..8d8e9af2b490 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0b2679d61c55f04f405cde11809a9f87e582527f +refs/heads/master: b8f83638950e3c33fbd8ad450045ac088e5efdbe diff --git a/trunk/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c b/trunk/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c index b6289f11b764..7946da94b228 100644 --- a/trunk/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c +++ b/trunk/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c @@ -1051,8 +1051,11 @@ static s32 ixgbe_reset_hw_82599(struct ixgbe_hw *hw) /* 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; diff --git a/trunk/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/trunk/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index ac6e464382e4..25c0e354f4ae 100644 --- a/trunk/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/trunk/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -7526,7 +7526,9 @@ static int ixgbe_probe(struct pci_dev *pdev, const struct pci_device_id *ent) /* 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); diff --git a/trunk/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h b/trunk/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h index 200b1a885ec5..155a793705be 100644 --- a/trunk/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h +++ b/trunk/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h @@ -2998,6 +2998,7 @@ struct ixgbe_hw { bool force_full_reset; bool allow_unsupported_sfp; bool mng_fw_enabled; + bool wol_supported; }; struct ixgbe_info {