forked from openwrt/openwrt
-
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
apm821xx: net: emac: fix fixed-link setup for the RTL8363SB switch
On the Netgear WNDAP620, the emac ethernet isn't receiving nor xmitting any frames from/to the RTL8363SB (identifies itself as a RTL8367RB). This is caused by hardware not knowing the right forced link settings (speed, duplex, pause, etc.) settings. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
- Loading branch information
Showing
2 changed files
with
49 additions
and
1 deletion.
There are no files selected for viewing
48 changes: 48 additions & 0 deletions
48
...inux/apm821xx/patches-4.14/050-net-emac-fix-fixed-link-setup-for-the-RTL8363SB-swit.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
From 08e39982ef64f800fd1f9b9b92968d14d5fafa82 Mon Sep 17 00:00:00 2001 | ||
From: Christian Lamparter <chunkeey@gmail.com> | ||
Date: Mon, 17 Sep 2018 17:22:40 +0200 | ||
Subject: net: emac: fix fixed-link setup for the RTL8363SB switch | ||
|
||
On the Netgear WNDAP620, the emac ethernet isn't receiving nor | ||
xmitting any frames from/to the RTL8363SB (identifies itself | ||
as a RTL8367RB). | ||
|
||
This is caused by the emac hardware not knowing the forced link | ||
parameters for speed, duplex, pause, etc. | ||
|
||
This begs the question, how this was working on the original | ||
driver code, when it was necessary to set the phy_address and | ||
phy_map to 0xffffffff. But I guess without access to the old | ||
PPC405/440/460 hardware, it's not possible to know. | ||
|
||
Signed-off-by: Christian Lamparter <chunkeey@gmail.com> | ||
Signed-off-by: David S. Miller <davem@davemloft.net> | ||
--- | ||
drivers/net/ethernet/ibm/emac/core.c | 15 ++++++++++----- | ||
1 file changed, 10 insertions(+), 5 deletions(-) | ||
|
||
--- a/drivers/net/ethernet/ibm/emac/core.c | ||
+++ b/drivers/net/ethernet/ibm/emac/core.c | ||
@@ -2671,12 +2671,17 @@ static int emac_init_phy(struct emac_ins | ||
if (of_phy_is_fixed_link(np)) { | ||
int res = emac_dt_mdio_probe(dev); | ||
|
||
- if (!res) { | ||
- res = of_phy_register_fixed_link(np); | ||
- if (res) | ||
- mdiobus_unregister(dev->mii_bus); | ||
+ if (res) | ||
+ return res; | ||
+ | ||
+ res = of_phy_register_fixed_link(np); | ||
+ dev->phy_dev = of_phy_find_device(np); | ||
+ if (res || !dev->phy_dev) { | ||
+ mdiobus_unregister(dev->mii_bus); | ||
+ return res ? res : -EINVAL; | ||
} | ||
- return res; | ||
+ emac_adjust_link(dev->ndev); | ||
+ put_device(&dev->phy_dev->mdio.dev); | ||
} | ||
return 0; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters