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:
Heiner Kallweit 2019-02-11 22:16:13 +01:00 committed by David S. Miller
parent c0ab4732d4
commit 9f771f1f52

View File

@ -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;
}
/**