aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mpc85xx/patches-3.14/750-phy_reset_anenable.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/mpc85xx/patches-3.14/750-phy_reset_anenable.patch')
-rw-r--r--target/linux/mpc85xx/patches-3.14/750-phy_reset_anenable.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/target/linux/mpc85xx/patches-3.14/750-phy_reset_anenable.patch b/target/linux/mpc85xx/patches-3.14/750-phy_reset_anenable.patch
new file mode 100644
index 0000000000..bb30fe9efc
--- /dev/null
+++ b/target/linux/mpc85xx/patches-3.14/750-phy_reset_anenable.patch
@@ -0,0 +1,30 @@
+From b4da0f2e86748379fc43e82b83458eb054af8d19 Mon Sep 17 00:00:00 2001
+From: Heiner Kallweit <hkallweit1@gmail.com>
+Date: Mon, 17 Nov 2014 21:41:56 +0100
+Subject: net: phy: set BMCR_ANENABLE when phy is reset
+
+Kernel 3.14 introduced an additional reset of the switch phys
+causing autonegotiation to be disabled.
+Change reset command to enable autonegotiation.
+
+Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
+---
+ drivers/net/phy/phy_device.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
+index 25f7419..98445e6 100644
+--- a/drivers/net/phy/phy_device.c
++++ b/drivers/net/phy/phy_device.c
+@@ -539,7 +539,7 @@ int phy_init_hw(struct phy_device *phydev)
+ if (!phydev->drv || !phydev->drv->config_init)
+ return 0;
+
+- ret = phy_write(phydev, MII_BMCR, BMCR_RESET);
++ ret = phy_write(phydev, MII_BMCR, BMCR_RESET | BMCR_ANENABLE);
+ if (ret < 0)
+ return ret;
+
+--
+2.1.3
+