Commit 9f771f1f authored by Heiner Kallweit's avatar Heiner Kallweit Committed by David S. Miller

net: phy: simplify genphy_config_eee_advert

Use new function phy_modify_mmd_changed(), the result speaks for itself.
Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c0ab4732
...@@ -1578,31 +1578,16 @@ static int genphy_config_advert(struct phy_device *phydev) ...@@ -1578,31 +1578,16 @@ static int genphy_config_advert(struct phy_device *phydev)
*/ */
static int genphy_config_eee_advert(struct phy_device *phydev) static int genphy_config_eee_advert(struct phy_device *phydev)
{ {
int broken = phydev->eee_broken_modes; int err;
int old_adv, adv;
/* Nothing to disable */ /* Nothing to disable */
if (!broken) if (!phydev->eee_broken_modes)
return 0; return 0;
/* If the following call fails, we assume that EEE is not err = phy_modify_mmd_changed(phydev, MDIO_MMD_AN, MDIO_AN_EEE_ADV,
* supported by the phy. If we read 0, EEE is not advertised phydev->eee_broken_modes, 0);
* In both case, we don't need to continue /* If the call failed, we assume that EEE is not supported */
*/ return err < 0 ? 0 : err;
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;
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment