summaryrefslogtreecommitdiff
path: root/target/linux/mvebu/patches-4.9/435-net-phy-fix-marvell-phy-status-reading.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/mvebu/patches-4.9/435-net-phy-fix-marvell-phy-status-reading.patch')
-rw-r--r--target/linux/mvebu/patches-4.9/435-net-phy-fix-marvell-phy-status-reading.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/target/linux/mvebu/patches-4.9/435-net-phy-fix-marvell-phy-status-reading.patch b/target/linux/mvebu/patches-4.9/435-net-phy-fix-marvell-phy-status-reading.patch
new file mode 100644
index 0000000..f0fe26e
--- /dev/null
+++ b/target/linux/mvebu/patches-4.9/435-net-phy-fix-marvell-phy-status-reading.patch
@@ -0,0 +1,26 @@
+From: Russell King <rmk+kernel@armlinux.org.uk>
+Date: Fri, 23 Dec 2016 18:54:01 +0000
+Subject: [PATCH] net: phy: fix marvell phy status reading
+
+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 <rmk+kernel@armlinux.org.uk>
+---
+
+--- a/drivers/net/phy/marvell.c
++++ b/drivers/net/phy/marvell.c
+@@ -1106,8 +1106,6 @@ static int marvell_read_status_page(stru
+ if (adv < 0)
+ return adv;
+
+- lpa &= adv;
+-
+ if (status & MII_M1011_PHY_STATUS_FULLDUPLEX)
+ phydev->duplex = DUPLEX_FULL;
+ else