Re: [PATCH] net: phy: fix marvell phy status reading
From: Andrew Lunn <andrew@lunn.ch>
Date: 2017-05-30 16:06:32
On Tue, May 30, 2017 at 04:21:51PM +0100, Russell King wrote:
quoted hunk ↗ jump to hunk
The Marvell driver incorrectly provides phydev->lp_advertising as the logical and of the link partner's advert and our advert. This is incorrect - this field is supposed to store the link parter's unmodified advertisment. This allows ethtool to report the correct link partner auto-negotiation status. Signed-off-by: Russell King <redacted> --- drivers/net/phy/marvell.c | 2 -- 1 file changed, 2 deletions(-)diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c index e38f84291258..f93a7a46feb7 100644 --- a/drivers/net/phy/marvell.c +++ b/drivers/net/phy/marvell.c@@ -1119,8 +1119,6 @@ static int marvell_read_status_page(struct phy_device *phydev, int page) if (adv < 0) return adv; - lpa &= adv; - if (status & MII_M1011_PHY_STATUS_FULLDUPLEX) phydev->duplex = DUPLEX_FULL; else
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
It appears that lxt.c has a similar issue. It however is not setting
phydev->lp_advertising, but it is using the masked values when setting
phydev->pause and phydev->asym_pause which i don't think it should do.
I can create a patch for that.
Andrew