diff options
author | Hauke Mehrtens <hauke@hauke-m.de> | 2010-07-19 20:07:24 +0000 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2010-07-19 20:07:24 +0000 |
commit | 0799e77a8b44009bb6fc34a314bcbf8c970ad47a (patch) | |
tree | 7b30087889876498529dd68e6f69634329a31c2b /target/linux/brcm47xx/patches-2.6.33/210-b44_phy_fix.patch | |
parent | d82495ee60b78b22dcb2d679e8f90ae898adbda3 (diff) | |
download | upstream-0799e77a8b44009bb6fc34a314bcbf8c970ad47a.tar.gz upstream-0799e77a8b44009bb6fc34a314bcbf8c970ad47a.tar.bz2 upstream-0799e77a8b44009bb6fc34a314bcbf8c970ad47a.zip |
brcm47xx: remove kernel 2.6.33
SVN-Revision: 22295
Diffstat (limited to 'target/linux/brcm47xx/patches-2.6.33/210-b44_phy_fix.patch')
-rw-r--r-- | target/linux/brcm47xx/patches-2.6.33/210-b44_phy_fix.patch | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/target/linux/brcm47xx/patches-2.6.33/210-b44_phy_fix.patch b/target/linux/brcm47xx/patches-2.6.33/210-b44_phy_fix.patch deleted file mode 100644 index 68c954f44c..0000000000 --- a/target/linux/brcm47xx/patches-2.6.33/210-b44_phy_fix.patch +++ /dev/null @@ -1,86 +0,0 @@ ---- a/drivers/net/b44.c -+++ b/drivers/net/b44.c -@@ -339,7 +339,7 @@ static int b44_phy_reset(struct b44 *bp) - } - } - -- return 0; -+ return err; - } - - static void __b44_set_flow_ctrl(struct b44 *bp, u32 pause_flags) -@@ -384,7 +384,7 @@ static void b44_set_flow_ctrl(struct b44 - __b44_set_flow_ctrl(bp, pause_enab); - } - --#ifdef SSB_DRIVER_MIPS -+#ifdef CONFIG_SSB_DRIVER_MIPS - extern char *nvram_get(char *name); - static void b44_wap54g10_workaround(struct b44 *bp) - { -@@ -421,12 +421,45 @@ static inline void b44_wap54g10_workarou - } - #endif - -+#ifdef CONFIG_SSB_DRIVER_MIPS -+static inline int startswith (const char *source, const char *cmp) -+{ -+ return !strncmp(source,cmp,strlen(cmp)); -+} -+ -+#define getvar(str) (nvram_get(str) ? : "") -+ -+static inline void b44_bcm47xx_workarounds(struct b44 *bp) -+{ -+ /* Toshiba WRC-1000, Siemens SE505 v1, Askey RT-210W, RT-220W */ -+ if (simple_strtoul(getvar("boardnum"), NULL, 0) == 100) { -+ bp->phy_addr = B44_PHY_ADDR_NO_PHY; -+ } else { -+ /* WL-HDD */ -+ struct ssb_device *sdev = bp->sdev; -+ if (startswith(getvar("hardware_version"), "WL300-")) -+ { -+ if (sdev->bus->sprom.et0phyaddr == 0 && -+ sdev->bus->sprom.et1phyaddr == 1) -+ bp->phy_addr = B44_PHY_ADDR_NO_PHY; -+ } -+ } -+ return; -+} -+ -+#else -+static inline void b44_bcm47xx_workarounds(struct b44 *bp) -+{ -+} -+#endif -+ - static int b44_setup_phy(struct b44 *bp) - { - u32 val; - int err; - - b44_wap54g10_workaround(bp); -+ b44_bcm47xx_workarounds(bp); - - if (bp->phy_addr == B44_PHY_ADDR_NO_PHY) - return 0; -@@ -2094,6 +2127,8 @@ static int __devinit b44_get_invariants( - * valid PHY address. */ - bp->phy_addr &= 0x1F; - -+ b44_bcm47xx_workarounds(bp); -+ - memcpy(bp->dev->dev_addr, addr, 6); - - if (!is_valid_ether_addr(&bp->dev->dev_addr[0])){ -@@ -2223,6 +2258,10 @@ static int __devinit b44_init_one(struct - */ - b44_chip_reset(bp, B44_CHIP_RESET_FULL); - -+ /* do a phy reset to test if there is an active phy */ -+ if (b44_phy_reset(bp) < 0) -+ bp->phy_addr = B44_PHY_ADDR_NO_PHY; -+ - printk(KERN_INFO "%s: Broadcom 44xx/47xx 10/100BaseT Ethernet %pM\n", - dev->name, dev->dev_addr); - |