From: David Carlier Date: Thu, 7 May 2026 23:42:42 +0000 (-0700) Subject: ixgbe: E610: do not fill EEE lp_advertised from local PHY caps X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1160428a8b6431c8976d26cd728e61b31424b3ee;p=thirdparty%2Fkernel%2Flinux.git ixgbe: E610: do not fill EEE lp_advertised from local PHY caps ixgbe_get_eee_e610() fills kedata->lp_advertised from pcaps.eee_cap returned by ixgbe_aci_get_phy_caps() with IXGBE_ACI_REPORT_ACTIVE_CFG. That report mode (and the other IXGBE_ACI_REPORT_* modes) describe the local PHY only, not the link partner. The X550 path uses a separate FW_PHY_ACT_UD_2 activity for partner data; the E610 ACI has no equivalent. Leave lp_advertised zeroed via the existing linkmode_zero() and drop the now-unused ixgbe_eee_cap_map[]. eee_active/eee_enabled are unaffected (sourced from link.eee_status). Fixes: b61dbdeff3a9 ("ixgbe: E610: add EEE support") Signed-off-by: David Carlier Reviewed-by: Jedrzej Jagielski Signed-off-by: Jacob Keller Link: https://patch.msgid.link/20260507-jk-iwl-next-fix-eee-ixgbe-v1-1-62bc1d197d1d@intel.com Signed-off-by: Jakub Kicinski --- diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c index 6990fe53f0499..36e43b5e88d1f 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c @@ -3558,17 +3558,6 @@ static const struct { { FW_PHY_ACT_UD_2_10G_KR_EEE, ETHTOOL_LINK_MODE_10000baseKR_Full_BIT}, }; -static const struct { - u16 eee_cap_bit; - u32 link_mode; -} ixgbe_eee_cap_map[] = { - { IXGBE_ACI_PHY_EEE_EN_100BASE_TX, ETHTOOL_LINK_MODE_100baseT_Full_BIT }, - { IXGBE_ACI_PHY_EEE_EN_1000BASE_T, ETHTOOL_LINK_MODE_1000baseT_Full_BIT }, - { IXGBE_ACI_PHY_EEE_EN_10GBASE_T, ETHTOOL_LINK_MODE_10000baseT_Full_BIT }, - { IXGBE_ACI_PHY_EEE_EN_5GBASE_T, ETHTOOL_LINK_MODE_5000baseT_Full_BIT }, - { IXGBE_ACI_PHY_EEE_EN_2_5GBASE_T, ETHTOOL_LINK_MODE_2500baseT_Full_BIT }, -}; - static int ixgbe_validate_keee(struct net_device *netdev, struct ethtool_keee *keee_requested) { @@ -3645,7 +3634,6 @@ static int ixgbe_get_eee_e610(struct net_device *netdev, struct ixgbe_aci_cmd_get_phy_caps_data pcaps; struct ixgbe_hw *hw = &adapter->hw; struct ixgbe_link_status link; - u16 eee_cap; int err; linkmode_zero(kedata->lp_advertised); @@ -3670,14 +3658,6 @@ static int ixgbe_get_eee_e610(struct net_device *netdev, if (kedata->eee_enabled) kedata->tx_lpi_timer = le16_to_cpu(pcaps.eee_entry_delay); - eee_cap = le16_to_cpu(pcaps.eee_cap); - - for (int i = 0; i < ARRAY_SIZE(ixgbe_eee_cap_map); i++) { - if (eee_cap & ixgbe_eee_cap_map[i].eee_cap_bit) - linkmode_set_bit(ixgbe_eee_cap_map[i].link_mode, - kedata->lp_advertised); - } - for (int i = 0; i < ARRAY_SIZE(ixgbe_ls_map); i++) { if (hw->phy.eee_speeds_supported & ixgbe_ls_map[i].mac_speed)