brcm47xx: remove old kernel versions
[openwrt.git] / target / linux / brcm47xx / patches-2.6.37 / 210-b44_phy_fix.patch
diff --git a/target/linux/brcm47xx/patches-2.6.37/210-b44_phy_fix.patch b/target/linux/brcm47xx/patches-2.6.37/210-b44_phy_fix.patch
deleted file mode 100644 (file)
index 6dda4b4..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
---- 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
- error:
-       pr_warning("PHY: cannot reset MII transceiver isolate bit\n");
- }
-+
-+static inline int startswith (const char *source, const char *cmp) 
-+{ 
-+       return !strncmp(source,cmp,strlen(cmp)); 
-+}
-+
-+static inline void b44_bcm47xx_workarounds(struct b44 *bp)
-+{
-+      char buf[20];
-+      /* Toshiba WRC-1000, Siemens SE505 v1, Askey RT-210W, RT-220W */
-+      if (nvram_getenv("boardnum", buf, sizeof(buf)) > 0)
-+              return;
-+      if (simple_strtoul(buf, NULL, 0) == 100) {
-+              bp->phy_addr = B44_PHY_ADDR_NO_PHY;
-+      } else {
-+              /* WL-HDD */
-+              struct ssb_device *sdev = bp->sdev;
-+              if (nvram_getenv("hardware_version", buf, sizeof(buf)) > 0)
-+                      return;
-+              if (startswith(buf, "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_wap54g10_workaround(struct b44 *bp)
- {
- }
-+
-+static inline void b44_bcm47xx_workarounds(struct b44 *bp)
-+{
-+}
- #endif
- static int b44_setup_phy(struct b44 *bp)
-@@ -424,6 +457,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)
-               return 0;
-@@ -2089,6 +2123,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])){
This page took 0.039482 seconds and 4 git commands to generate.