]> Git Repo - linux.git/commitdiff
net: ethernet: xgbe: re-add aneg to supported features in PHY quirks
authorHeiner Kallweit <[email protected]>
Sun, 12 Jan 2025 21:59:59 +0000 (22:59 +0100)
committerJakub Kicinski <[email protected]>
Wed, 15 Jan 2025 21:26:59 +0000 (13:26 -0800)
In 4.19, before the switch to linkmode bitmaps, PHY_GBIT_FEATURES
included feature bits for aneg and TP/MII ports.

 SUPPORTED_TP | \
 SUPPORTED_MII)

 SUPPORTED_10baseT_Full)

 SUPPORTED_100baseT_Full)

 SUPPORTED_1000baseT_Full)

 PHY_100BT_FEATURES | \
 PHY_DEFAULT_FEATURES)

 PHY_1000BT_FEATURES)

Referenced commit expanded PHY_GBIT_FEATURES, silently removing
PHY_DEFAULT_FEATURES. The removed part can be re-added by using
the new PHY_GBIT_FEATURES definition.
Not clear to me is why nobody seems to have noticed this issue.

I stumbled across this when checking what it takes to make
phy_10_100_features_array et al private to phylib.

Fixes: d0939c26c53a ("net: ethernet: xgbe: expand PHY_GBIT_FEAUTRES")
Cc: [email protected]
Signed-off-by: Heiner Kallweit <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c

index 6a716337f48be17f2a711cbda5144515fc8803d5..268399dfcf22f0313348327bfa806be11eebdb25 100644 (file)
@@ -923,7 +923,6 @@ static void xgbe_phy_free_phy_device(struct xgbe_prv_data *pdata)
 
 static bool xgbe_phy_finisar_phy_quirks(struct xgbe_prv_data *pdata)
 {
-       __ETHTOOL_DECLARE_LINK_MODE_MASK(supported) = { 0, };
        struct xgbe_phy_data *phy_data = pdata->phy_data;
        unsigned int phy_id = phy_data->phydev->phy_id;
 
@@ -945,14 +944,7 @@ static bool xgbe_phy_finisar_phy_quirks(struct xgbe_prv_data *pdata)
        phy_write(phy_data->phydev, 0x04, 0x0d01);
        phy_write(phy_data->phydev, 0x00, 0x9140);
 
-       linkmode_set_bit_array(phy_10_100_features_array,
-                              ARRAY_SIZE(phy_10_100_features_array),
-                              supported);
-       linkmode_set_bit_array(phy_gbit_features_array,
-                              ARRAY_SIZE(phy_gbit_features_array),
-                              supported);
-
-       linkmode_copy(phy_data->phydev->supported, supported);
+       linkmode_copy(phy_data->phydev->supported, PHY_GBIT_FEATURES);
 
        phy_support_asym_pause(phy_data->phydev);
 
@@ -964,7 +956,6 @@ static bool xgbe_phy_finisar_phy_quirks(struct xgbe_prv_data *pdata)
 
 static bool xgbe_phy_belfuse_phy_quirks(struct xgbe_prv_data *pdata)
 {
-       __ETHTOOL_DECLARE_LINK_MODE_MASK(supported) = { 0, };
        struct xgbe_phy_data *phy_data = pdata->phy_data;
        struct xgbe_sfp_eeprom *sfp_eeprom = &phy_data->sfp_eeprom;
        unsigned int phy_id = phy_data->phydev->phy_id;
@@ -1028,13 +1019,7 @@ static bool xgbe_phy_belfuse_phy_quirks(struct xgbe_prv_data *pdata)
        reg = phy_read(phy_data->phydev, 0x00);
        phy_write(phy_data->phydev, 0x00, reg & ~0x00800);
 
-       linkmode_set_bit_array(phy_10_100_features_array,
-                              ARRAY_SIZE(phy_10_100_features_array),
-                              supported);
-       linkmode_set_bit_array(phy_gbit_features_array,
-                              ARRAY_SIZE(phy_gbit_features_array),
-                              supported);
-       linkmode_copy(phy_data->phydev->supported, supported);
+       linkmode_copy(phy_data->phydev->supported, PHY_GBIT_FEATURES);
        phy_support_asym_pause(phy_data->phydev);
 
        netif_dbg(pdata, drv, pdata->netdev,
This page took 0.04782 seconds and 4 git commands to generate.