net: phy: add phy_disable_eee

If a MAC driver doesn't support EEE, then the PHY shouldn't advertise it.
Add phy_disable_eee() for this purpose.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/fd51738c-dcd6-4d61-b8c5-faa6ac0f1026@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Heiner Kallweit 2024-12-16 22:31:18 +01:00 committed by Jakub Kicinski
parent e8f3323805
commit b55498ff14
2 changed files with 17 additions and 0 deletions

View File

@ -3003,6 +3003,22 @@ void phy_support_eee(struct phy_device *phydev)
}
EXPORT_SYMBOL(phy_support_eee);
/**
* phy_disable_eee - Disable EEE for the PHY
* @phydev: Target phy_device struct
*
* This function is used by MAC drivers for MAC's which don't support EEE.
* It disables EEE on the PHY layer.
*/
void phy_disable_eee(struct phy_device *phydev)
{
linkmode_zero(phydev->supported_eee);
linkmode_zero(phydev->advertising_eee);
phydev->eee_cfg.tx_lpi_enabled = false;
phydev->eee_cfg.eee_enabled = false;
}
EXPORT_SYMBOL_GPL(phy_disable_eee);
/**
* phy_support_sym_pause - Enable support of symmetrical pause
* @phydev: target phy_device struct

View File

@ -2071,6 +2071,7 @@ void phy_advertise_eee_all(struct phy_device *phydev);
void phy_support_sym_pause(struct phy_device *phydev);
void phy_support_asym_pause(struct phy_device *phydev);
void phy_support_eee(struct phy_device *phydev);
void phy_disable_eee(struct phy_device *phydev);
void phy_set_sym_pause(struct phy_device *phydev, bool rx, bool tx,
bool autoneg);
void phy_set_asym_pause(struct phy_device *phydev, bool rx, bool tx);