diff options
Diffstat (limited to 'target/linux/brcm47xx/patches-2.6.36/210-b44_phy_fix.patch')
-rw-r--r-- | target/linux/brcm47xx/patches-2.6.36/210-b44_phy_fix.patch | 37 |
1 files changed, 3 insertions, 34 deletions
diff --git a/target/linux/brcm47xx/patches-2.6.36/210-b44_phy_fix.patch b/target/linux/brcm47xx/patches-2.6.36/210-b44_phy_fix.patch index 6dda4b4..ef023c5 100644 --- a/target/linux/brcm47xx/patches-2.6.36/210-b44_phy_fix.patch +++ b/target/linux/brcm47xx/patches-2.6.36/210-b44_phy_fix.patch @@ -1,35 +1,6 @@ --- a/drivers/net/b44.c +++ b/drivers/net/b44.c -@@ -381,11 +381,12 @@ static void b44_set_flow_ctrl(struct b44 - __b44_set_flow_ctrl(bp, pause_enab); - } - --#ifdef SSB_DRIVER_MIPS --extern char *nvram_get(char *name); -+#ifdef CONFIG_BCM47XX -+ -+#include <asm/mach-bcm47xx/nvram.h> - static void b44_wap54g10_workaround(struct b44 *bp) - { -- const char *str; -+ char buf[20]; - u32 val; - int err; - -@@ -394,10 +395,9 @@ static void b44_wap54g10_workaround(stru - * see https://dev.openwrt.org/ticket/146 - * check and reset bit "isolate" - */ -- str = nvram_get("boardnum"); -- if (!str) -+ if (nvram_getenv("boardnum", buf, sizeof(buf)) > 0) - return; -- if (simple_strtoul(str, NULL, 0) == 2) { -+ if (simple_strtoul(buf, NULL, 0) == 2) { - err = __b44_readphy(bp, 0, MII_BMCR, &val); - if (err) - goto error; -@@ -412,10 +412,43 @@ static void b44_wap54g10_workaround(stru +@@ -411,10 +411,41 @@ static void b44_wap54g10_workaround(stru error: pr_warning("PHY: cannot reset MII transceiver isolate bit\n"); } @@ -60,9 +31,7 @@ + } + return; +} -+ #else -+ static inline void b44_wap54g10_workaround(struct b44 *bp) { } @@ -73,7 +42,7 @@ #endif static int b44_setup_phy(struct b44 *bp) -@@ -424,6 +457,7 @@ static int b44_setup_phy(struct b44 *bp) +@@ -423,6 +454,7 @@ static int b44_setup_phy(struct b44 *bp) int err; b44_wap54g10_workaround(bp); @@ -81,7 +50,7 @@ if (bp->phy_addr == B44_PHY_ADDR_NO_PHY) return 0; -@@ -2089,6 +2123,8 @@ static int __devinit b44_get_invariants( +@@ -2088,6 +2120,8 @@ static int __devinit b44_get_invariants( * valid PHY address. */ bp->phy_addr &= 0x1F; |