Thread (4 messages) 4 messages, 4 authors, 2017-05-31

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help