summaryrefslogtreecommitdiffstats
path: root/target/linux/lantiq/patches-4.4/0026-NET-multi-phy-support.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2016-01-18 11:40:19 +0000
committerFelix Fietkau <nbd@openwrt.org>2016-01-18 11:40:19 +0000
commitf577cb25c09daad670755b9b46622258cf999421 (patch)
treeee7361facfb1c544bab629f3fe11376b71f3d4d7 /target/linux/lantiq/patches-4.4/0026-NET-multi-phy-support.patch
parente0bfd2529592313a163fcae4d99351d69dc637bf (diff)
downloadmaster-31e0f0ae-f577cb25c09daad670755b9b46622258cf999421.tar.gz
master-31e0f0ae-f577cb25c09daad670755b9b46622258cf999421.tar.bz2
master-31e0f0ae-f577cb25c09daad670755b9b46622258cf999421.zip
lantiq: Add support for linux 4.4
The following patches were dropped because they are already applied upstream: - 0038-MIPS-lantiq-fpi-on-ar9.patch - 0039-MIPS-lantiq-initialize-usb-on-boot.patch - 0042-USB-DWC2-big-endian-support.patch - 0043-gpio-stp-xway-fix-phy-mask.patch All other patches were simply refreshed, except the following: - 0001-MIPS-lantiq-add-pcie-driver.patch Changes to arch/mips/lantiq/xway/sysctrl.c (these changes disabled some PMU gates for the vrx200 / VR9 SoCs) were removed since the upstream kernel disables unused PMU gates automatically (since 95135bfa7ead1becc2879230f72583dde2b71a0c "MIPS: Lantiq: Deactivate most of the devices by default"). - 0025-NET-MIPS-lantiq-adds-xrx200-net.patch Since OpenWrt commit 55ba20afcc2fe785146316e5be2c2473cb329885 drivers should use of_get_mac_address(). of_get_mac_address_mtd is not available for drivers anymore since it's called automatically within of_get_mac_address(). - 0028-NET-lantiq-various-etop-fixes.patch Same changes as in 0025-NET-MIPS-lantiq-adds-xrx200-net.patch While refreshing the kernel configuration SPI support had to be moved to config-4.4 because otherwise M25P80 was disabled. Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> SVN-Revision: 48307
Diffstat (limited to 'target/linux/lantiq/patches-4.4/0026-NET-multi-phy-support.patch')
-rw-r--r--target/linux/lantiq/patches-4.4/0026-NET-multi-phy-support.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/target/linux/lantiq/patches-4.4/0026-NET-multi-phy-support.patch b/target/linux/lantiq/patches-4.4/0026-NET-multi-phy-support.patch
new file mode 100644
index 0000000000..c19ddd3c5f
--- /dev/null
+++ b/target/linux/lantiq/patches-4.4/0026-NET-multi-phy-support.patch
@@ -0,0 +1,53 @@
+From c6feeeb407a3b8a6597ae377ba4dd138e185e3dd Mon Sep 17 00:00:00 2001
+From: John Crispin <blogic@openwrt.org>
+Date: Sun, 27 Jul 2014 09:38:50 +0100
+Subject: [PATCH 26/36] 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
+@@ -888,7 +888,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;
+ }
+@@ -971,7 +972,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);
+@@ -983,7 +985,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;
+