RE: [PATCH 2/2] net: dsa: microchip: Provide Module 4 KSZ9477 errata (DS80000754C)
From: <hidden>
Date: 2023-08-29 22:24:34
Also in:
lkml
quoted hunk ↗ jump to hunk
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.