[PATCH net-next] net: stmmac: fix EEE supportable interfaces
Russell King (Oracle)
rmk+kernel at armlinux.org.uk
Mon Feb 23 04:17:13 PST 2026
According to the dwmac v3.74a databook, only MII, GMII and RGMII dwmac
interface modes are supported for EEE. Restrict EEE to these modes, or
the modules supported by a PCS other than the GMAC's integrated PCS.
Signed-off-by: Russell King (Oracle) <rmk+kernel at armlinux.org.uk>
---
.../net/ethernet/stmicro/stmmac/stmmac_main.c | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 82375d34ad57..89ded359a9fe 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -1374,9 +1374,21 @@ static int stmmac_phylink_setup(struct stmmac_priv *priv)
pcs->supported_interfaces);
if (priv->dma_cap.eee) {
- /* Assume all supported interfaces also support LPI */
- memcpy(config->lpi_interfaces, config->supported_interfaces,
- sizeof(config->lpi_interfaces));
+ /* The GMAC 3.74a databook states that EEE is only supported
+ * in MII, GMII, and RGMII interfaces.
+ */
+ __set_bit(PHY_INTERFACE_MODE_MII, config->lpi_interfaces);
+ __set_bit(PHY_INTERFACE_MODE_GMII, config->lpi_interfaces);
+ phy_interface_set_rgmii(config->lpi_interfaces);
+
+ /* If we have a non-integrated PCS, assume that it is connected
+ * to the GMAC using GMII or another EEE compatible interface,
+ * and thus all PCS-supported interfaces support LPI.
+ */
+ if (pcs)
+ phy_interface_or(config->lpi_interfaces,
+ config->lpi_interfaces,
+ pcs->supported_interfaces);
/* All full duplex speeds above 100Mbps are supported */
config->lpi_capabilities = ~(MAC_1000FD - 1) | MAC_100FD;
--
2.47.3
More information about the linux-arm-kernel
mailing list