brcm47xx: change board detection for some Asus devices
[15.05/openwrt.git] / target / linux / brcm47xx / patches-3.8 / 260-MIPS-BCM47XX-add-board-detection.patch
index 08c0a97..682daf3 100644 (file)
@@ -8,7 +8,7 @@
  obj-$(CONFIG_BCM47XX_SSB)     += wgt634u.o
 --- /dev/null
 +++ b/arch/mips/bcm47xx/board.c
-@@ -0,0 +1,222 @@
+@@ -0,0 +1,240 @@
 +#include <linux/export.h>
 +#include <linux/string.h>
 +#include <bcm47xx_board.h>
 +      { {0}, 0},
 +};
 +
++static const struct bcm47xx_board_type_list bcm47xx_board_list_machine_name[] = {
++      {{BCM47XX_BOARD_LINKSYS_WRTSL54GS, "Linksys WRTSL54GS"}, "WRTSL54GS",},
++      { {0}, 0},
++};
++
 +static const struct bcm47xx_board_type_list bcm47xx_board_list_hardware_version[] = {
 +      {{BCM47XX_BOARD_ASUS_RTN16, "Asus RT-N16"}, "RT-N16-",},
++      {{BCM47XX_BOARD_ASUS_WL320GE, "Asus WL320GE"}, "WL320G-",},
 +      {{BCM47XX_BOARD_ASUS_WL330GE, "Asus WL330GE"}, "WL330GE-",},
++      {{BCM47XX_BOARD_ASUS_WL500GD, "Asus WL500GD"}, "WL500gd-",},
 +      {{BCM47XX_BOARD_ASUS_WL500GPV1, "Asus WL500GP V1"}, "WL500gp-",},
 +      {{BCM47XX_BOARD_ASUS_WL500GPV2, "Asus WL500GP V2"}, "WL500GPV2-",},
++      {{BCM47XX_BOARD_ASUS_WL500W, "Asus WL500W"}, "WL500gW-",},
 +      {{BCM47XX_BOARD_ASUS_WL520GC, "Asus WL520GC"}, "WL520GC-",},
 +      {{BCM47XX_BOARD_ASUS_WL520GU, "Asus WL520GU"}, "WL520GU-",},
 +      {{BCM47XX_BOARD_BELKIN_F7D4301, "Belkin F7D4301"}, "F7D4301",},
@@ -62,6 +70,8 @@
 +      {{BCM47XX_BOARD_ASUS_RTN16, "Asus RT-N16"}, "RT-N16",},
 +      {{BCM47XX_BOARD_ASUS_RTN53, "Asus RT-N53"}, "RT-N53",},
 +      {{BCM47XX_BOARD_ASUS_RTN66U, "Asus RT-N66U"}, "RT-N66U",},
++      {{BCM47XX_BOARD_ASUS_WL300G, "Asus WL300G"}, "WL300g",},
++      {{BCM47XX_BOARD_ASUS_WLHDD, "Asus WLHDD"}, "WLHDD",},
 +      { {0}, 0},
 +};
 +
 +      {{BCM47XX_BOARD_NETGEAR_WNDR3400VCNA, "Netgear WNDR3400 Vcna"}, "U12H155T01_NETGEAR",},
 +      {{BCM47XX_BOARD_NETGEAR_WNDR3700V3, "Netgear WNDR3700 V3"}, "U12H194T00_NETGEAR",},
 +      {{BCM47XX_BOARD_NETGEAR_WNDR4000, "Netgear WNDR4000"}, "U12H181T00_NETGEAR",},
-+      {{BCM47XX_BOARD_NETGEAR_WNDR4500, "Netgear WNDR4500"}, "U12H189T00_NETGEAR",},
++      {{BCM47XX_BOARD_NETGEAR_WNDR4500V1, "Netgear WNDR4500 V1"}, "U12H189T00_NETGEAR",},
++      {{BCM47XX_BOARD_NETGEAR_WNDR4500V2, "Netgear WNDR4500 V2"}, "U12H224T00_NETGEAR",},
 +      {{BCM47XX_BOARD_NETGEAR_WNR2000, "Netgear WNR2000"}, "U12H114T00_NETGEAR",},
 +      {{BCM47XX_BOARD_NETGEAR_WNR3500L, "Netgear WNR3500L"}, "U12H136T99_NETGEAR",},
 +      {{BCM47XX_BOARD_NETGEAR_WNR3500U, "Netgear WNR3500U"}, "U12H136T00_NETGEAR",},
 +              }
 +      }
 +
++      if (bcm47xx_nvram_getenv("machine_name", buf1, sizeof(buf1)) >= 0) {
++              for (e = bcm47xx_board_list_machine_name; e->value1; e++) {
++                      if (strstarts(buf1, e->value1))
++                              return &e->board;
++              }
++      }
++
 +      if (bcm47xx_nvram_getenv("hardware_version", buf1, sizeof(buf1)) >= 0) {
 +              for (e = bcm47xx_board_list_hardware_version; e->value1; e++) {
 +                      if (strstarts(buf1, e->value1))
 +EXPORT_SYMBOL(bcm47xx_board_get_name);
 --- /dev/null
 +++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
-@@ -0,0 +1,90 @@
+@@ -0,0 +1,97 @@
 +#ifndef __BCM47XX_BOARD_H
 +#define __BCM47XX_BOARD_H
 +
 +      BCM47XX_BOARD_ASUS_RTN16,
 +      BCM47XX_BOARD_ASUS_RTN53,
 +      BCM47XX_BOARD_ASUS_RTN66U,
++      BCM47XX_BOARD_ASUS_WL300G,
++      BCM47XX_BOARD_ASUS_WL320GE,
 +      BCM47XX_BOARD_ASUS_WL330GE,
++      BCM47XX_BOARD_ASUS_WL500GD,
 +      BCM47XX_BOARD_ASUS_WL500GPV1,
 +      BCM47XX_BOARD_ASUS_WL500GPV2,
++      BCM47XX_BOARD_ASUS_WL500W,
 +      BCM47XX_BOARD_ASUS_WL520GC,
 +      BCM47XX_BOARD_ASUS_WL520GU,
 +      BCM47XX_BOARD_ASUS_WL700GE,
++      BCM47XX_BOARD_ASUS_WLHDD,
 +
 +      BCM47XX_BOARD_BELKIN_F7D4301,
 +
 +      BCM47XX_BOARD_LINKSYS_WRT54G3GV2,
 +      BCM47XX_BOARD_LINKSYS_WRT610NV1,
 +      BCM47XX_BOARD_LINKSYS_WRT610NV2,
++      BCM47XX_BOARD_LINKSYS_WRTSL54GS,
 +
 +      BCM47XX_BOARD_MOTOROLA_WE800G,
 +      BCM47XX_BOARD_MOTOROLA_WR850GP,
 +      BCM47XX_BOARD_NETGEAR_WNDR3400VCNA,
 +      BCM47XX_BOARD_NETGEAR_WNDR3700V3,
 +      BCM47XX_BOARD_NETGEAR_WNDR4000,
-+      BCM47XX_BOARD_NETGEAR_WNDR4500,
++      BCM47XX_BOARD_NETGEAR_WNDR4500V1,
++      BCM47XX_BOARD_NETGEAR_WNDR4500V2,
 +      BCM47XX_BOARD_NETGEAR_WNR2000,
 +      BCM47XX_BOARD_NETGEAR_WNR3500L,
 +      BCM47XX_BOARD_NETGEAR_WNR3500U,