Message ID | 20230331005518.2134652-24-andrew@lunn.ch (mailing list archive) |
---|---|
State | RFC |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: ethernet: Rework EEE | expand |
diff --git a/drivers/net/ethernet/broadcom/genet/bcmmii.c b/drivers/net/ethernet/broadcom/genet/bcmmii.c index 6c39839762a7..4175042865ec 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmmii.c +++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c @@ -376,6 +376,8 @@ int bcmgenet_mii_probe(struct net_device *dev) } } + phy_support_eee(dev->phydev); + /* Configure port multiplexer based on what the probed PHY device since * reading the 'max-speed' property determines the maximum supported * PHY speed which is needed for bcmgenet_mii_config() to configure diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index fda1f9ff32b9..09c55430c614 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -2348,6 +2348,9 @@ static int fec_enet_mii_probe(struct net_device *ndev) else phy_set_max_speed(phy_dev, 100); + if (fep->quirks & FEC_QUIRK_HAS_EEE) + phy_support_eee(phy_dev); + fep->link = 0; fep->full_duplex = 0; diff --git a/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c b/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c index cf549a524674..060280c4bc0a 100644 --- a/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c +++ b/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c @@ -286,6 +286,9 @@ static int sxgbe_init_phy(struct net_device *ndev) return -ENODEV; } + if (priv->hw_cap.eee) + phy_support_eee(phydev); + netdev_dbg(ndev, "%s: attached to PHY (UID 0x%x) Link = %d\n", __func__, phydev->phy_id, phydev->link); diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index 729183e57080..fcf367ad9b0b 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -2406,6 +2406,8 @@ static int lan78xx_phy_init(struct lan78xx_net *dev) mii_adv_to_linkmode_adv_t(fc, mii_adv); linkmode_or(phydev->advertising, fc, phydev->advertising); + phy_support_eee(phydev); + if (phydev->mdio.dev.of_node) { u32 reg; int len;
For MAC drivers making use of phylib, and which support EEE, call phy_support_eee() before starting the PHY. Signed-off-by: Andrew Lunn <andrew@lunn.ch> --- drivers/net/ethernet/broadcom/genet/bcmmii.c | 2 ++ drivers/net/ethernet/freescale/fec_main.c | 3 +++ drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c | 3 +++ drivers/net/usb/lan78xx.c | 2 ++ 4 files changed, 10 insertions(+)