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:
Родитель
c0ab4732d4
Коммит
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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Загрузка…
Ссылка в новой задаче