brcm47xx: remove support for old kernel versions
[openwrt.git] / target / linux / brcm47xx / patches-2.6.32 / 210-b44_phy_fix.patch
diff --git a/target/linux/brcm47xx/patches-2.6.32/210-b44_phy_fix.patch b/target/linux/brcm47xx/patches-2.6.32/210-b44_phy_fix.patch
deleted file mode 100644 (file)
index 68c954f..0000000
+++ /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);
This page took 0.026335 seconds and 4 git commands to generate.