net/ice/base: limit forced overrides based on FW version
authorQi Zhang <qi.z.zhang@intel.com>
Fri, 8 Jan 2021 04:10:55 +0000 (12:10 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 8 Jan 2021 18:03:08 +0000 (19:03 +0100)
Beyond a specific version of firmware, there is no need to provide
override values to the firmware when setting PHY capabilities.  In this
case, we do not need to indicate whether we're in Strict or Lenient Link
Mode.

In the case of translating capabilities to the configuration structure,
the module compliance enforcement is already correctly set by firmware,
so the extra code block is redundant.

Signed-off-by: Jeb Cramer <jeb.j.cramer@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
drivers/net/ice/base/ice_common.c

index f2fb132..b71feb3 100644 (file)
@@ -3088,17 +3088,6 @@ ice_copy_phy_caps_to_cfg(struct ice_port_info *pi,
        cfg->link_fec_opt = caps->link_fec_options;
        cfg->module_compliance_enforcement =
                caps->module_compliance_enforcement;
-
-       if (ice_fw_supports_link_override(pi->hw)) {
-               struct ice_link_default_override_tlv tlv;
-
-               if (ice_get_link_default_override(&tlv, pi))
-                       return;
-
-               if (tlv.options & ICE_LINK_OVERRIDE_STRICT_MODE)
-                       cfg->module_compliance_enforcement |=
-                               ICE_LINK_OVERRIDE_STRICT_MODE;
-       }
 }
 
 /**
@@ -3168,7 +3157,8 @@ ice_cfg_phy_fec(struct ice_port_info *pi, struct ice_aqc_set_phy_cfg_data *cfg,
                break;
        }
 
-       if (fec == ICE_FEC_AUTO && ice_fw_supports_link_override(pi->hw)) {
+       if (fec == ICE_FEC_AUTO && ice_fw_supports_link_override(pi->hw) &&
+           !ice_fw_supports_report_dflt_cfg(pi->hw)) {
                struct ice_link_default_override_tlv tlv;
 
                if (ice_get_link_default_override(&tlv, pi))