RE: [PATCH 2/2] net: dsa: microchip: Provide Module 4 KSZ9477 errata (DS80000754C)

From: Tristram.Ha
Date: Tue Aug 29 2023 - 18:24:35 EST


> Yes, removing linkmod_and() will not should not help. I said, "The
> phydev->supported_eee should be cleared."
>
> For example like this:
> --- a/drivers/net/phy/micrel.c
> +++ b/drivers/net/phy/micrel.c
> @@ -1400,6 +1400,7 @@ static int ksz9131_config_aneg(struct phy_device *phydev)
>
> static int ksz9477_get_features(struct phy_device *phydev)
> {
> + __ETHTOOL_DECLARE_LINK_MODE_MASK(zero) = { 0, };
> int ret;
>
> ret = genphy_read_abilities(phydev);
> @@ -1413,7 +1414,7 @@ static int ksz9477_get_features(struct phy_device
> *phydev)
> * KSZ8563R should have 100BaseTX/Full only.
> */
> linkmode_and(phydev->supported_eee, phydev->supported,
> - PHY_EEE_CAP1_FEATURES);
> + zero);
>
> return 0;
> }
>
> You will need to clear it only on KSZ9477 variants with this bug.
> This change is tested and it works on my KSZ9477-EVB.

I think this is best for disabling EEE support.
I think before some customers asked for Ethtool EEE support not because
they want to use it but to disable it because of link instability.
KSZ9893/KSZ9563 switches should have the same problem. The EEE problem
depends on the link partner. For example my laptop does not have problem
even though EEE is enabled, although I am not sure if EEE is really
active. The problem here is just using two KSZ9477 switches and
programming those PHY setup values and enabling EEE will make the link
unstable. Management decided to disable EEE feature to avoid customer
support issues.
Another issue is EEE should be disabled when using 1588 PTP.