net: phy: use phy_resolve_aneg_pause()
Several drivers code their own version of this, working from the LPA register, after setting the ethtool link partner advertisement bitmask. Use the generic function instead. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c48f16b42a
commit
af006240c6
|
@ -190,10 +190,7 @@ static int lxt973a2_read_status(struct phy_device *phydev)
|
|||
phydev->duplex = DUPLEX_FULL;
|
||||
}
|
||||
|
||||
if (phydev->duplex == DUPLEX_FULL) {
|
||||
phydev->pause = lpa & LPA_PAUSE_CAP ? 1 : 0;
|
||||
phydev->asym_pause = lpa & LPA_PAUSE_ASYM ? 1 : 0;
|
||||
}
|
||||
phy_resolve_aneg_pause(phydev);
|
||||
} else {
|
||||
int bmcr = phy_read(phydev, MII_BMCR);
|
||||
|
||||
|
|
|
@ -1384,10 +1384,7 @@ static int marvell_read_status_page_an(struct phy_device *phydev,
|
|||
mii_lpa_to_linkmode_lpa_t(phydev->lp_advertising, lpa);
|
||||
mii_stat1000_mod_linkmode_lpa_t(phydev->lp_advertising, lpagb);
|
||||
|
||||
if (phydev->duplex == DUPLEX_FULL) {
|
||||
phydev->pause = lpa & LPA_PAUSE_CAP ? 1 : 0;
|
||||
phydev->asym_pause = lpa & LPA_PAUSE_ASYM ? 1 : 0;
|
||||
}
|
||||
phy_resolve_aneg_pause(phydev);
|
||||
} else {
|
||||
/* The fiber link is only 1000M capable */
|
||||
fiber_lpa_mod_linkmode_lpa_t(phydev->lp_advertising, lpa);
|
||||
|
|
|
@ -68,12 +68,7 @@ static int upd60620_read_status(struct phy_device *phydev)
|
|||
mii_lpa_to_linkmode_lpa_t(phydev->lp_advertising,
|
||||
phy_state);
|
||||
|
||||
if (phydev->duplex == DUPLEX_FULL) {
|
||||
if (phy_state & LPA_PAUSE_CAP)
|
||||
phydev->pause = 1;
|
||||
if (phy_state & LPA_PAUSE_ASYM)
|
||||
phydev->asym_pause = 1;
|
||||
}
|
||||
phy_resolve_aneg_pause(phydev);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue