aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm63xx
diff options
context:
space:
mode:
authorJonas Gorski <jonas.gorski@gmail.com>2017-02-01 12:11:07 +0100
committerJonas Gorski <jonas.gorski@gmail.com>2017-02-09 14:30:44 +0100
commitc7f31b280faccd20079aef34f3c0811dfa2e33b1 (patch)
tree63848e856b4c4da13310b8c823bd747dfb695313 /target/linux/brcm63xx
parentdd7079e79a94fdde2e0ff4c1d6f428f3b115211c (diff)
downloadupstream-c7f31b280faccd20079aef34f3c0811dfa2e33b1.tar.gz
upstream-c7f31b280faccd20079aef34f3c0811dfa2e33b1.tar.bz2
upstream-c7f31b280faccd20079aef34f3c0811dfa2e33b1.zip
brcm63xx: do a full reset phy cycle
Make sure we do a proper reset of the phy, if the phy reset is defined. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Diffstat (limited to 'target/linux/brcm63xx')
-rw-r--r--target/linux/brcm63xx/patches-4.4/381-net-bcm63xx_enet-fully-reset-ephy.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/target/linux/brcm63xx/patches-4.4/381-net-bcm63xx_enet-fully-reset-ephy.patch b/target/linux/brcm63xx/patches-4.4/381-net-bcm63xx_enet-fully-reset-ephy.patch
new file mode 100644
index 0000000000..dc9e3c1344
--- /dev/null
+++ b/target/linux/brcm63xx/patches-4.4/381-net-bcm63xx_enet-fully-reset-ephy.patch
@@ -0,0 +1,28 @@
+From: Jonas Gorski <jonas.gorski@gmail.com>
+Subject: [PATCH] net: bcm63xx_enet: fully reset ephy
+
+Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
+---
+ drivers/net/ethernet/broadcom/bcm63xx_enet.c | 4 ++--
+ 1 file changed, 2 insertions(+), , 1 deletions(-)
+
+--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
++++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
+@@ -2857,7 +2857,7 @@ static int bcm_enet_shared_probe(struct
+
+ memset(bcm_enet_shared_base, 0, sizeof(bcm_enet_shared_base));
+
+- ephy_reset = devm_gpiod_get_optional(&pdev->dev, "ephy-reset", GPIOD_ASIS);
++ ephy_reset = devm_gpiod_get_optional(&pdev->dev, "ephy-reset", GPIOD_OUT_HIGH);
+ if (IS_ERR(ephy_reset))
+ return PTR_ERR(ephy_reset);
+
+@@ -2871,7 +2871,7 @@ static int bcm_enet_shared_probe(struct
+ memcpy(bcm_enet_shared_base, p, sizeof(bcm_enet_shared_base));
+
+ if (ephy_reset)
+- gpiod_direction_output(ephy_reset, 0);
++ gpiod_set_value(ephy_reset, 0);
+
+ return 0;
+ }