aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mediatek/patches-4.9/0001-NET-multi-phy-support.patch
diff options
context:
space:
mode:
authorJohn Crispin <john@phrozen.org>2017-02-16 09:53:03 +0100
committerJohn Crispin <john@phrozen.org>2017-02-16 09:53:30 +0100
commit53f5d59fa17049d94a3992d1067ded1fa90f61f8 (patch)
tree5596104b74bfe2a96f1abdb2303314a40c74322b /target/linux/mediatek/patches-4.9/0001-NET-multi-phy-support.patch
parentf885edef5a3bfcddcfe85732ee65c1d475c4a8f6 (diff)
downloadupstream-53f5d59fa17049d94a3992d1067ded1fa90f61f8.tar.gz
upstream-53f5d59fa17049d94a3992d1067ded1fa90f61f8.tar.bz2
upstream-53f5d59fa17049d94a3992d1067ded1fa90f61f8.zip
mediatek: bump to v4.9
Signed-off-by: John Crispin <john@phrozen.org>
Diffstat (limited to 'target/linux/mediatek/patches-4.9/0001-NET-multi-phy-support.patch')
-rw-r--r--target/linux/mediatek/patches-4.9/0001-NET-multi-phy-support.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/target/linux/mediatek/patches-4.9/0001-NET-multi-phy-support.patch b/target/linux/mediatek/patches-4.9/0001-NET-multi-phy-support.patch
new file mode 100644
index 0000000000..b60eac0efc
--- /dev/null
+++ b/target/linux/mediatek/patches-4.9/0001-NET-multi-phy-support.patch
@@ -0,0 +1,53 @@
+From 1e021917e634b173d466bf0dd3d2ae84e51a77ff Mon Sep 17 00:00:00 2001
+From: John Crispin <blogic@openwrt.org>
+Date: Sun, 27 Jul 2014 09:38:50 +0100
+Subject: [PATCH 001/102] NET: multi phy support
+
+Signed-off-by: John Crispin <blogic@openwrt.org>
+---
+ drivers/net/phy/phy.c | 9 ++++++---
+ include/linux/phy.h | 1 +
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/phy/phy.c
++++ b/drivers/net/phy/phy.c
+@@ -890,7 +890,8 @@ void phy_state_machine(struct work_struc
+ /* If the link is down, give up on negotiation for now */
+ if (!phydev->link) {
+ phydev->state = PHY_NOLINK;
+- netif_carrier_off(phydev->attached_dev);
++ if (!phydev->no_auto_carrier_off)
++ netif_carrier_off(phydev->attached_dev);
+ phydev->adjust_link(phydev->attached_dev);
+ break;
+ }
+@@ -973,7 +974,8 @@ void phy_state_machine(struct work_struc
+ netif_carrier_on(phydev->attached_dev);
+ } else {
+ phydev->state = PHY_NOLINK;
+- netif_carrier_off(phydev->attached_dev);
++ if (!phydev->no_auto_carrier_off)
++ netif_carrier_off(phydev->attached_dev);
+ }
+
+ phydev->adjust_link(phydev->attached_dev);
+@@ -985,7 +987,8 @@ void phy_state_machine(struct work_struc
+ case PHY_HALTED:
+ if (phydev->link) {
+ phydev->link = 0;
+- netif_carrier_off(phydev->attached_dev);
++ if (!phydev->no_auto_carrier_off)
++ netif_carrier_off(phydev->attached_dev);
+ phydev->adjust_link(phydev->attached_dev);
+ do_suspend = true;
+ }
+--- a/include/linux/phy.h
++++ b/include/linux/phy.h
+@@ -377,6 +377,7 @@ struct phy_device {
+ bool is_pseudo_fixed_link;
+ bool has_fixups;
+ bool suspended;
++ bool no_auto_carrier_off;
+
+ enum phy_state state;
+