aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Brady <alan.brady@intel.com>2017-10-11 14:49:42 -0700
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2017-10-13 14:25:38 -0700
commit8fdb69dd383f1f937f7e2f1f24efe97c5268a84c (patch)
tree9838848c89d6ecaba5cc7e697607a2f7a6a3567f
parenti40e: make const array patterns static, reduces object code size (diff)
downloadlinux-dev-8fdb69dd383f1f937f7e2f1f24efe97c5268a84c.tar.xz
linux-dev-8fdb69dd383f1f937f7e2f1f24efe97c5268a84c.zip
i40e: fix link reporting
When querying the NVM for supported phy_types, on some firmware versions, we were failing to actually fill out the phy_types which means ethtool wouldn't report any link types. Testing-hints: Check 'ethtool <iface>' if you have the right (wrong?) firmware. Without this patch, no link modes will be reported. Signed-off-by: Alan Brady <alan.brady@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_common.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/ethernet/intel/i40e/i40e_common.c b/drivers/net/ethernet/intel/i40e/i40e_common.c
index 53aad378d49c..aeb497258f20 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_common.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_common.c
@@ -1611,8 +1611,13 @@ i40e_status i40e_aq_get_phy_capabilities(struct i40e_hw *hw,
if (report_init) {
if (hw->mac.type == I40E_MAC_XL710 &&
hw->aq.api_maj_ver == I40E_FW_API_VERSION_MAJOR &&
- hw->aq.api_min_ver >= I40E_MINOR_VER_GET_LINK_INFO_XL710)
+ hw->aq.api_min_ver >= I40E_MINOR_VER_GET_LINK_INFO_XL710) {
status = i40e_aq_get_link_info(hw, true, NULL, NULL);
+ } else {
+ hw->phy.phy_types = le32_to_cpu(abilities->phy_type);
+ hw->phy.phy_types |=
+ ((u64)abilities->phy_type_ext << 32);
+ }
}
return status;