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>
This commit is contained in:
@@ -1611,8 +1611,13 @@ i40e_status i40e_aq_get_phy_capabilities(struct i40e_hw *hw,
|
|||||||
if (report_init) {
|
if (report_init) {
|
||||||
if (hw->mac.type == I40E_MAC_XL710 &&
|
if (hw->mac.type == I40E_MAC_XL710 &&
|
||||||
hw->aq.api_maj_ver == I40E_FW_API_VERSION_MAJOR &&
|
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);
|
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;
|
return status;
|
||||||
|
Reference in New Issue
Block a user