diff options
author | Hauke Mehrtens <hauke@openwrt.org> | 2013-10-06 18:31:32 +0000 |
---|---|---|
committer | Hauke Mehrtens <hauke@openwrt.org> | 2013-10-06 18:31:32 +0000 |
commit | e0f3beb7cce2533220e6642db55048df50b29762 (patch) | |
tree | 7b5b4605847117ea899238febafe37a380647fa8 /target/linux/brcm47xx/patches-3.10/210-b44_phy_fix.patch | |
parent | 06712cae90ecadbae490ec6967e5ab8805ec4a25 (diff) | |
download | master-187ad058-e0f3beb7cce2533220e6642db55048df50b29762.tar.gz master-187ad058-e0f3beb7cce2533220e6642db55048df50b29762.tar.bz2 master-187ad058-e0f3beb7cce2533220e6642db55048df50b29762.zip |
brcm47xx: b44: fix some problems with the phy
* do not try initialize a unused phy
* some improvements to the phylib patch
* do not turn the phy off when mac is off
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38306 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/brcm47xx/patches-3.10/210-b44_phy_fix.patch')
-rw-r--r-- | target/linux/brcm47xx/patches-3.10/210-b44_phy_fix.patch | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/target/linux/brcm47xx/patches-3.10/210-b44_phy_fix.patch b/target/linux/brcm47xx/patches-3.10/210-b44_phy_fix.patch index 8cf4b0f00c..1cafb86512 100644 --- a/target/linux/brcm47xx/patches-3.10/210-b44_phy_fix.patch +++ b/target/linux/brcm47xx/patches-3.10/210-b44_phy_fix.patch @@ -1,6 +1,6 @@ --- a/drivers/net/ethernet/broadcom/b44.c +++ b/drivers/net/ethernet/broadcom/b44.c -@@ -410,10 +410,34 @@ static void b44_wap54g10_workaround(stru +@@ -429,10 +429,34 @@ static void b44_wap54g10_workaround(stru error: pr_warning("PHY: cannot reset MII transceiver isolate bit\n"); } @@ -12,14 +12,14 @@ + + /* Toshiba WRC-1000, Siemens SE505 v1, Askey RT-210W, RT-220W */ + if (sdev->bus->sprom.board_num == 100) { -+ bp->phy_addr = B44_PHY_ADDR_NO_PHY; ++ bp->phy_addr = B44_PHY_ADDR_NO_LOACL_PHY; + } else { + /* WL-HDD */ + if (bcm47xx_nvram_getenv("hardware_version", buf, sizeof(buf)) >= 0 && + !strncmp(buf, "WL300-", strlen("WL300-"))) { + if (sdev->bus->sprom.et0phyaddr == 0 && + sdev->bus->sprom.et1phyaddr == 1) -+ bp->phy_addr = B44_PHY_ADDR_NO_PHY; ++ bp->phy_addr = B44_PHY_ADDR_NO_LOACL_PHY; + } + } + return; @@ -35,15 +35,15 @@ #endif static int b44_setup_phy(struct b44 *bp) -@@ -422,6 +446,7 @@ static int b44_setup_phy(struct b44 *bp) +@@ -441,6 +465,7 @@ static int b44_setup_phy(struct b44 *bp) int err; b44_wap54g10_workaround(bp); + b44_bcm47xx_workarounds(bp); - if (bp->phy_addr == B44_PHY_ADDR_NO_PHY) + if (bp->phy_addr == B44_PHY_ADDR_NO_LOACL_PHY) return 0; -@@ -2101,6 +2126,8 @@ static int b44_get_invariants(struct b44 +@@ -2158,6 +2183,8 @@ static int b44_get_invariants(struct b44 * valid PHY address. */ bp->phy_addr &= 0x1F; |