Skip to content

Commit

Permalink
net: phy: use phy_resolve_aneg_pause()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Russell King authored and David S. Miller committed Dec 19, 2019
1 parent c48f16b commit af00624
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 14 deletions.
5 changes: 1 addition & 4 deletions drivers/net/phy/lxt.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
5 changes: 1 addition & 4 deletions drivers/net/phy/marvell.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
7 changes: 1 addition & 6 deletions drivers/net/phy/uPD60620.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit af00624

Please sign in to comment.