[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aaed764f-3e55-4463-bdb5-9f8b7fca5907@gmail.com>
Date: Sun, 12 Jan 2025 23:02:56 +0100
From: Heiner Kallweit <hkallweit1@...il.com>
To: Paolo Abeni <pabeni@...hat.com>, Jakub Kicinski <kuba@...nel.org>,
David Miller <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>,
Simon Horman <horms@...nel.org>, Andrew Lunn <andrew+netdev@...n.ch>,
Shyam Sundar S K <Shyam-sundar.S-k@....com>
Cc: Andrew Lunn <andrew@...n.ch>,
Russell King - ARM Linux <linux@...linux.org.uk>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: Re: [PATCH net] net: ethernet: xgbe: re-add aneg to supported
features in PHY quirks
On 12.01.2025 22:59, Heiner Kallweit wrote:
> 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: stable@...r.kernel.org
> Signed-off-by: Heiner Kallweit <hkallweit1@...il.com>
> ---
> drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c | 19 ++-----------------
> 1 file changed, 2 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c b/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
> index 6a716337f..268399dfc 100644
> --- a/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
> +++ b/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
> @@ -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,
+ Shyam Sundar S K <Shyam-sundar.S-k@....com>
Powered by blists - more mailing lists