summaryrefslogtreecommitdiff
path: root/target/linux/brcm47xx/patches-3.14/960-fix-phy-device.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm47xx/patches-3.14/960-fix-phy-device.patch')
-rw-r--r--target/linux/brcm47xx/patches-3.14/960-fix-phy-device.patch22
1 files changed, 22 insertions, 0 deletions
diff --git a/target/linux/brcm47xx/patches-3.14/960-fix-phy-device.patch b/target/linux/brcm47xx/patches-3.14/960-fix-phy-device.patch
new file mode 100644
index 0000000..f8d9239
--- /dev/null
+++ b/target/linux/brcm47xx/patches-3.14/960-fix-phy-device.patch
@@ -0,0 +1,22 @@
+This fixes a problem introduced in this commit:
+
+commit 87aa9f9c61ad56d505641681812e92ad976f8608
+Author: Florian Fainelli <f.fainelli@gmail.com>
+Date: Fri Dec 6 13:01:34 2013 -0800
+
+ net: phy: consolidate PHY reset in phy_init_hw()
+
+The fixups are not executed before the switch gets registered but after
+the kernel searches for the right switch driver. When the search is
+executed it searches for the phy_id 0x00, because it was not fixed.
+
+--- a/drivers/net/phy/phy_device.c
++++ b/drivers/net/phy/phy_device.c
+@@ -353,6 +353,7 @@ int phy_device_register(struct phy_devic
+ phydev->bus->phy_map[phydev->addr] = phydev;
+
+ /* Run all of the fixups for this PHY */
++ phy_scan_fixups(phydev);
+ err = phy_init_hw(phydev);
+ if (err) {
+ pr_err("PHY %d failed to initialize\n", phydev->addr);