Commit af006240 authored by Russell King's avatar Russell King Committed by David S. Miller
Browse files

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: default avatarRussell King <rmk+kernel@armlinux.org.uk>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c48f16b4
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -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);

+1 −4
Original line number Diff line number Diff line
@@ -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);
+1 −6
Original line number Diff line number Diff line
@@ -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;