mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-15 13:06:41 +07:00
net: phy: simplify genphy_config_eee_advert
Use new function phy_modify_mmd_changed(), the result speaks for itself. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c0ab4732d4
commit
9f771f1f52
@ -1578,31 +1578,16 @@ static int genphy_config_advert(struct phy_device *phydev)
|
||||
*/
|
||||
static int genphy_config_eee_advert(struct phy_device *phydev)
|
||||
{
|
||||
int broken = phydev->eee_broken_modes;
|
||||
int old_adv, adv;
|
||||
int err;
|
||||
|
||||
/* Nothing to disable */
|
||||
if (!broken)
|
||||
if (!phydev->eee_broken_modes)
|
||||
return 0;
|
||||
|
||||
/* If the following call fails, we assume that EEE is not
|
||||
* supported by the phy. If we read 0, EEE is not advertised
|
||||
* In both case, we don't need to continue
|
||||
*/
|
||||
adv = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_AN_EEE_ADV);
|
||||
if (adv <= 0)
|
||||
return 0;
|
||||
|
||||
old_adv = adv;
|
||||
adv &= ~broken;
|
||||
|
||||
/* Advertising remains unchanged with the broken mask */
|
||||
if (old_adv == adv)
|
||||
return 0;
|
||||
|
||||
phy_write_mmd(phydev, MDIO_MMD_AN, MDIO_AN_EEE_ADV, adv);
|
||||
|
||||
return 1;
|
||||
err = phy_modify_mmd_changed(phydev, MDIO_MMD_AN, MDIO_AN_EEE_ADV,
|
||||
phydev->eee_broken_modes, 0);
|
||||
/* If the call failed, we assume that EEE is not supported */
|
||||
return err < 0 ? 0 : err;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user