Changeset 37996


Ignore:
Timestamp:
2013-09-15T17:08:29+02:00 (4 years ago)
Author:
hauke
Message:

brcm47xx: update board detection patch

  • Use different structs depending on the number of nvram variables to check.
  • Add detection of ZTE H218N, this closes #14151.

Signed-off-by: Hauke Mehrtens <hauke@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/brcm47xx/patches-3.10/260-MIPS-BCM47XX-add-board-detection.patch

    r37989 r37996  
    99--- /dev/null 
    1010+++ b/arch/mips/bcm47xx/board.c 
    11 @@ -0,0 +1,243 @@ 
     11@@ -0,0 +1,285 @@ 
    1212+#include <linux/export.h> 
    1313+#include <linux/string.h> 
     
    2020+}; 
    2121+ 
    22 +struct bcm47xx_board_type_list { 
     22+struct bcm47xx_board_type_list1 { 
     23+       struct bcm47xx_board_type board; 
     24+       const char *value1; 
     25+}; 
     26+ 
     27+struct bcm47xx_board_type_list2 { 
    2328+       struct bcm47xx_board_type board; 
    2429+       const char *value1; 
     
    2631+}; 
    2732+ 
     33+struct bcm47xx_board_type_list3 { 
     34+       struct bcm47xx_board_type board; 
     35+       const char *value1; 
     36+       const char *value2; 
     37+       const char *value3; 
     38+}; 
     39+ 
    2840+static const struct bcm47xx_board_type *bcm47xx_board = NULL; 
    2941+ 
    30 +static const struct bcm47xx_board_type_list bcm47xx_board_list_model_name[] = { 
    31 +       {{BCM47XX_BOARD_DLINK_DIR130, "D-Link DIR-130"}, "DIR-130",}, 
    32 +       {{BCM47XX_BOARD_DLINK_DIR330, "D-Link DIR-330"}, "DIR-330",}, 
    33 +       { {0}, 0}, 
    34 +}; 
    35 + 
    36 +static const struct bcm47xx_board_type_list bcm47xx_board_list_model_no[] = { 
    37 +       {{BCM47XX_BOARD_ASUS_WL700GE, "Asus WL700"}, "WL700",}, 
    38 +       { {0}, 0}, 
    39 +}; 
    40 + 
    41 +static const struct bcm47xx_board_type_list bcm47xx_board_list_machine_name[] = { 
    42 +       {{BCM47XX_BOARD_LINKSYS_WRTSL54GS, "Linksys WRTSL54GS"}, "WRTSL54GS",}, 
    43 +       { {0}, 0}, 
    44 +}; 
    45 + 
    46 +static const struct bcm47xx_board_type_list bcm47xx_board_list_hardware_version[] = { 
    47 +       {{BCM47XX_BOARD_ASUS_RTN16, "Asus RT-N16"}, "RT-N16-",}, 
    48 +       {{BCM47XX_BOARD_ASUS_WL320GE, "Asus WL320GE"}, "WL320G-",}, 
    49 +       {{BCM47XX_BOARD_ASUS_WL330GE, "Asus WL330GE"}, "WL330GE-",}, 
    50 +       {{BCM47XX_BOARD_ASUS_WL500GD, "Asus WL500GD"}, "WL500gd-",}, 
    51 +       {{BCM47XX_BOARD_ASUS_WL500GPV1, "Asus WL500GP V1"}, "WL500gp-",}, 
    52 +       {{BCM47XX_BOARD_ASUS_WL500GPV2, "Asus WL500GP V2"}, "WL500GPV2-",}, 
    53 +       {{BCM47XX_BOARD_ASUS_WL500W, "Asus WL500W"}, "WL500gW-",}, 
    54 +       {{BCM47XX_BOARD_ASUS_WL520GC, "Asus WL520GC"}, "WL520GC-",}, 
    55 +       {{BCM47XX_BOARD_ASUS_WL520GU, "Asus WL520GU"}, "WL520GU-",}, 
    56 +       {{BCM47XX_BOARD_BELKIN_F7D4301, "Belkin F7D4301"}, "F7D4301",}, 
    57 +       { {0}, 0}, 
    58 +}; 
    59 + 
    60 +static const struct bcm47xx_board_type_list bcm47xx_board_list_productid[] = { 
    61 +       {{BCM47XX_BOARD_ASUS_RTAC66U, "Asus RT-AC66U"}, "RT-AC66U",}, 
    62 +       {{BCM47XX_BOARD_ASUS_RTN10, "Asus RT-N10"}, "RT-N10",}, 
    63 +       {{BCM47XX_BOARD_ASUS_RTN10D, "Asus RT-N10D"}, "RT-N10D",}, 
    64 +       {{BCM47XX_BOARD_ASUS_RTN10U, "Asus RT-N10U"}, "RT-N10U",}, 
    65 +       {{BCM47XX_BOARD_ASUS_RTN12, "Asus RT-N12"}, "RT-N12",}, 
    66 +       {{BCM47XX_BOARD_ASUS_RTN12B1, "Asus RT-N12B1"}, "RT-N12B1",}, 
    67 +       {{BCM47XX_BOARD_ASUS_RTN12C1, "Asus RT-N12C1"}, "RT-N12C1",}, 
    68 +       {{BCM47XX_BOARD_ASUS_RTN12D1, "Asus RT-N12D1"}, "RT-N12D1",}, 
    69 +       {{BCM47XX_BOARD_ASUS_RTN12HP, "Asus RT-N12HP"}, "RT-N12HP",}, 
    70 +       {{BCM47XX_BOARD_ASUS_RTN15U, "Asus RT-N15U"}, "RT-N15U",}, 
    71 +       {{BCM47XX_BOARD_ASUS_RTN16, "Asus RT-N16"}, "RT-N16",}, 
    72 +       {{BCM47XX_BOARD_ASUS_RTN53, "Asus RT-N53"}, "RT-N53",}, 
    73 +       {{BCM47XX_BOARD_ASUS_RTN66U, "Asus RT-N66U"}, "RT-N66U",}, 
    74 +       {{BCM47XX_BOARD_ASUS_WL300G, "Asus WL300G"}, "WL300g",}, 
    75 +       {{BCM47XX_BOARD_ASUS_WLHDD, "Asus WLHDD"}, "WLHDD",}, 
    76 +       { {0}, 0}, 
    77 +}; 
    78 + 
    79 +static const struct bcm47xx_board_type_list bcm47xx_board_list_ModelId[] = { 
    80 +       {{BCM47XX_BOARD_DELL_TM2300, "Dell WX-5565"}, "WX-5565",}, 
    81 +       {{BCM47XX_BOARD_MOTOROLA_WE800G, "Motorola WE800G"}, "WE800G",}, 
    82 +       {{BCM47XX_BOARD_MOTOROLA_WR850GP, "Motorola WR850GP"}, "WR850GP",}, 
    83 +       {{BCM47XX_BOARD_MOTOROLA_WR850GV2V3, "Motorola WR850G"}, "WR850G",}, 
    84 +       { {0}, 0}, 
    85 +}; 
    86 + 
    87 +static const struct bcm47xx_board_type_list bcm47xx_board_list_melco_id[] = { 
    88 +       {{BCM47XX_BOARD_BUFFALO_WBR2_G54, "Buffalo WBR2-G54"}, "29bb0332",}, 
    89 +       {{BCM47XX_BOARD_BUFFALO_WHR2_A54G54, "Buffalo WHR2-A54G54"}, "290441dd",}, 
    90 +       {{BCM47XX_BOARD_BUFFALO_WHR_G125, "Buffalo WHR-G125"}, "32093",}, 
    91 +       {{BCM47XX_BOARD_BUFFALO_WHR_G54S, "Buffalo WHR-G54S"}, "30182",}, 
    92 +       {{BCM47XX_BOARD_BUFFALO_WHR_HP_G54, "Buffalo WHR-HP-G54"}, "30189",}, 
    93 +       {{BCM47XX_BOARD_BUFFALO_WLA2_G54L, "Buffalo WLA2-G54L"}, "29129",}, 
    94 +       {{BCM47XX_BOARD_BUFFALO_WZR_G300N, "Buffalo WZR-G300N"}, "31120",}, 
    95 +       {{BCM47XX_BOARD_BUFFALO_WZR_RS_G54, "Buffalo WZR-RS-G54"}, "30083",}, 
    96 +       {{BCM47XX_BOARD_BUFFALO_WZR_RS_G54HP, "Buffalo WZR-RS-G54HP"}, "30103",}, 
    97 +       { {0}, 0}, 
    98 +}; 
    99 + 
    100 +static const struct bcm47xx_board_type_list bcm47xx_board_list_boot_hw[] = { 
     42+/* model_name */ 
     43+static const struct bcm47xx_board_type_list1 bcm47xx_board_list_model_name[] = { 
     44+       {{BCM47XX_BOARD_DLINK_DIR130, "D-Link DIR-130"}, "DIR-130"}, 
     45+       {{BCM47XX_BOARD_DLINK_DIR330, "D-Link DIR-330"}, "DIR-330"}, 
     46+       { {0}, 0}, 
     47+}; 
     48+ 
     49+/* model_no */ 
     50+static const struct bcm47xx_board_type_list1 bcm47xx_board_list_model_no[] = { 
     51+       {{BCM47XX_BOARD_ASUS_WL700GE, "Asus WL700"}, "WL700"}, 
     52+       { {0}, 0}, 
     53+}; 
     54+ 
     55+/* machine_name */ 
     56+static const struct bcm47xx_board_type_list1 bcm47xx_board_list_machine_name[] = { 
     57+       {{BCM47XX_BOARD_LINKSYS_WRTSL54GS, "Linksys WRTSL54GS"}, "WRTSL54GS"}, 
     58+       { {0}, 0}, 
     59+}; 
     60+ 
     61+/* hardware_version */ 
     62+static const struct bcm47xx_board_type_list1 bcm47xx_board_list_hardware_version[] = { 
     63+       {{BCM47XX_BOARD_ASUS_RTN16, "Asus RT-N16"}, "RT-N16-"}, 
     64+       {{BCM47XX_BOARD_ASUS_WL320GE, "Asus WL320GE"}, "WL320G-"}, 
     65+       {{BCM47XX_BOARD_ASUS_WL330GE, "Asus WL330GE"}, "WL330GE-"}, 
     66+       {{BCM47XX_BOARD_ASUS_WL500GD, "Asus WL500GD"}, "WL500gd-"}, 
     67+       {{BCM47XX_BOARD_ASUS_WL500GPV1, "Asus WL500GP V1"}, "WL500gp-"}, 
     68+       {{BCM47XX_BOARD_ASUS_WL500GPV2, "Asus WL500GP V2"}, "WL500GPV2-"}, 
     69+       {{BCM47XX_BOARD_ASUS_WL500W, "Asus WL500W"}, "WL500gW-"}, 
     70+       {{BCM47XX_BOARD_ASUS_WL520GC, "Asus WL520GC"}, "WL520GC-"}, 
     71+       {{BCM47XX_BOARD_ASUS_WL520GU, "Asus WL520GU"}, "WL520GU-"}, 
     72+       {{BCM47XX_BOARD_BELKIN_F7D4301, "Belkin F7D4301"}, "F7D4301"}, 
     73+       { {0}, 0}, 
     74+}; 
     75+ 
     76+/* productid */ 
     77+static const struct bcm47xx_board_type_list1 bcm47xx_board_list_productid[] = { 
     78+       {{BCM47XX_BOARD_ASUS_RTAC66U, "Asus RT-AC66U"}, "RT-AC66U"}, 
     79+       {{BCM47XX_BOARD_ASUS_RTN10, "Asus RT-N10"}, "RT-N10"}, 
     80+       {{BCM47XX_BOARD_ASUS_RTN10D, "Asus RT-N10D"}, "RT-N10D"}, 
     81+       {{BCM47XX_BOARD_ASUS_RTN10U, "Asus RT-N10U"}, "RT-N10U"}, 
     82+       {{BCM47XX_BOARD_ASUS_RTN12, "Asus RT-N12"}, "RT-N12"}, 
     83+       {{BCM47XX_BOARD_ASUS_RTN12B1, "Asus RT-N12B1"}, "RT-N12B1"}, 
     84+       {{BCM47XX_BOARD_ASUS_RTN12C1, "Asus RT-N12C1"}, "RT-N12C1"}, 
     85+       {{BCM47XX_BOARD_ASUS_RTN12D1, "Asus RT-N12D1"}, "RT-N12D1"}, 
     86+       {{BCM47XX_BOARD_ASUS_RTN12HP, "Asus RT-N12HP"}, "RT-N12HP"}, 
     87+       {{BCM47XX_BOARD_ASUS_RTN15U, "Asus RT-N15U"}, "RT-N15U"}, 
     88+       {{BCM47XX_BOARD_ASUS_RTN16, "Asus RT-N16"}, "RT-N16"}, 
     89+       {{BCM47XX_BOARD_ASUS_RTN53, "Asus RT-N53"}, "RT-N53"}, 
     90+       {{BCM47XX_BOARD_ASUS_RTN66U, "Asus RT-N66U"}, "RT-N66U"}, 
     91+       {{BCM47XX_BOARD_ASUS_WL300G, "Asus WL300G"}, "WL300g"}, 
     92+       {{BCM47XX_BOARD_ASUS_WLHDD, "Asus WLHDD"}, "WLHDD"}, 
     93+       { {0}, 0}, 
     94+}; 
     95+ 
     96+/* ModelId */ 
     97+static const struct bcm47xx_board_type_list1 bcm47xx_board_list_ModelId[] = { 
     98+       {{BCM47XX_BOARD_DELL_TM2300, "Dell WX-5565"}, "WX-5565"}, 
     99+       {{BCM47XX_BOARD_MOTOROLA_WE800G, "Motorola WE800G"}, "WE800G"}, 
     100+       {{BCM47XX_BOARD_MOTOROLA_WR850GP, "Motorola WR850GP"}, "WR850GP"}, 
     101+       {{BCM47XX_BOARD_MOTOROLA_WR850GV2V3, "Motorola WR850G"}, "WR850G"}, 
     102+       { {0}, 0}, 
     103+}; 
     104+ 
     105+/* melco_id or buf1falo_id */ 
     106+static const struct bcm47xx_board_type_list1 bcm47xx_board_list_melco_id[] = { 
     107+       {{BCM47XX_BOARD_BUFFALO_WBR2_G54, "Buffalo WBR2-G54"}, "29bb0332"}, 
     108+       {{BCM47XX_BOARD_BUFFALO_WHR2_A54G54, "Buffalo WHR2-A54G54"}, "290441dd"}, 
     109+       {{BCM47XX_BOARD_BUFFALO_WHR_G125, "Buffalo WHR-G125"}, "32093"}, 
     110+       {{BCM47XX_BOARD_BUFFALO_WHR_G54S, "Buffalo WHR-G54S"}, "30182"}, 
     111+       {{BCM47XX_BOARD_BUFFALO_WHR_HP_G54, "Buffalo WHR-HP-G54"}, "30189"}, 
     112+       {{BCM47XX_BOARD_BUFFALO_WLA2_G54L, "Buffalo WLA2-G54L"}, "29129"}, 
     113+       {{BCM47XX_BOARD_BUFFALO_WZR_G300N, "Buffalo WZR-G300N"}, "31120"}, 
     114+       {{BCM47XX_BOARD_BUFFALO_WZR_RS_G54, "Buffalo WZR-RS-G54"}, "30083"}, 
     115+       {{BCM47XX_BOARD_BUFFALO_WZR_RS_G54HP, "Buffalo WZR-RS-G54HP"}, "30103"}, 
     116+       { {0}, 0}, 
     117+}; 
     118+ 
     119+/* boot_hw_model, boot_hw_ver */ 
     120+static const struct bcm47xx_board_type_list2 bcm47xx_board_list_boot_hw[] = { 
    101121+       {{BCM47XX_BOARD_CISCO_M10V1, "Cisco M10"}, "M10", "1.0"}, /* like WRT160N v3.0 */ 
    102122+       {{BCM47XX_BOARD_CISCO_M20V1, "Cisco M20"}, "M20", "1.0"}, /* like WRT310N v2.0 */ 
     
    121141+}; 
    122142+ 
    123 +static const struct bcm47xx_board_type_list bcm47xx_board_list_board_id[] = { 
    124 +       {{BCM47XX_BOARD_NETGEAR_WGR614V8, "Netgear WGR614 V8"}, "U12H072T00_NETGEAR",}, 
    125 +       {{BCM47XX_BOARD_NETGEAR_WGR614V9, "Netgear WGR614 V9"}, "U12H094T00_NETGEAR",}, 
    126 +       {{BCM47XX_BOARD_NETGEAR_WNDR3300, "Netgear WNDR3300"}, "U12H093T00_NETGEAR",}, 
    127 +       {{BCM47XX_BOARD_NETGEAR_WNDR3400V1, "Netgear WNDR3400 V1"}, "U12H155T00_NETGEAR",}, 
    128 +       {{BCM47XX_BOARD_NETGEAR_WNDR3400V2, "Netgear WNDR3400 V2"}, "U12H187T00_NETGEAR",}, 
    129 +       {{BCM47XX_BOARD_NETGEAR_WNDR3400VCNA, "Netgear WNDR3400 Vcna"}, "U12H155T01_NETGEAR",}, 
    130 +       {{BCM47XX_BOARD_NETGEAR_WNDR3700V3, "Netgear WNDR3700 V3"}, "U12H194T00_NETGEAR",}, 
    131 +       {{BCM47XX_BOARD_NETGEAR_WNDR4000, "Netgear WNDR4000"}, "U12H181T00_NETGEAR",}, 
    132 +       {{BCM47XX_BOARD_NETGEAR_WNDR4500V1, "Netgear WNDR4500 V1"}, "U12H189T00_NETGEAR",}, 
    133 +       {{BCM47XX_BOARD_NETGEAR_WNDR4500V2, "Netgear WNDR4500 V2"}, "U12H224T00_NETGEAR",}, 
    134 +       {{BCM47XX_BOARD_NETGEAR_WNR2000, "Netgear WNR2000"}, "U12H114T00_NETGEAR",}, 
    135 +       {{BCM47XX_BOARD_NETGEAR_WNR3500L, "Netgear WNR3500L"}, "U12H136T99_NETGEAR",}, 
    136 +       {{BCM47XX_BOARD_NETGEAR_WNR3500U, "Netgear WNR3500U"}, "U12H136T00_NETGEAR",}, 
    137 +       {{BCM47XX_BOARD_NETGEAR_WNR3500V2, "Netgear WNR3500 V2"}, "U12H127T00_NETGEAR",}, 
    138 +       {{BCM47XX_BOARD_NETGEAR_WNR3500V2VC, "Netgear WNR3500 V2vc"}, "U12H127T70_NETGEAR",}, 
    139 +       {{BCM47XX_BOARD_NETGEAR_WNR834BV2, "Netgear WNR834B V2"}, "U12H081T00_NETGEAR",}, 
     143+/* board_id */ 
     144+static const struct bcm47xx_board_type_list1 bcm47xx_board_list_board_id[] = { 
     145+       {{BCM47XX_BOARD_NETGEAR_WGR614V8, "Netgear WGR614 V8"}, "U12H072T00_NETGEAR"}, 
     146+       {{BCM47XX_BOARD_NETGEAR_WGR614V9, "Netgear WGR614 V9"}, "U12H094T00_NETGEAR"}, 
     147+       {{BCM47XX_BOARD_NETGEAR_WNDR3300, "Netgear WNDR3300"}, "U12H093T00_NETGEAR"}, 
     148+       {{BCM47XX_BOARD_NETGEAR_WNDR3400V1, "Netgear WNDR3400 V1"}, "U12H155T00_NETGEAR"}, 
     149+       {{BCM47XX_BOARD_NETGEAR_WNDR3400V2, "Netgear WNDR3400 V2"}, "U12H187T00_NETGEAR"}, 
     150+       {{BCM47XX_BOARD_NETGEAR_WNDR3400VCNA, "Netgear WNDR3400 Vcna"}, "U12H155T01_NETGEAR"}, 
     151+       {{BCM47XX_BOARD_NETGEAR_WNDR3700V3, "Netgear WNDR3700 V3"}, "U12H194T00_NETGEAR"}, 
     152+       {{BCM47XX_BOARD_NETGEAR_WNDR4000, "Netgear WNDR4000"}, "U12H181T00_NETGEAR"}, 
     153+       {{BCM47XX_BOARD_NETGEAR_WNDR4500V1, "Netgear WNDR4500 V1"}, "U12H189T00_NETGEAR"}, 
     154+       {{BCM47XX_BOARD_NETGEAR_WNDR4500V2, "Netgear WNDR4500 V2"}, "U12H224T00_NETGEAR"}, 
     155+       {{BCM47XX_BOARD_NETGEAR_WNR2000, "Netgear WNR2000"}, "U12H114T00_NETGEAR"}, 
     156+       {{BCM47XX_BOARD_NETGEAR_WNR3500L, "Netgear WNR3500L"}, "U12H136T99_NETGEAR"}, 
     157+       {{BCM47XX_BOARD_NETGEAR_WNR3500U, "Netgear WNR3500U"}, "U12H136T00_NETGEAR"}, 
     158+       {{BCM47XX_BOARD_NETGEAR_WNR3500V2, "Netgear WNR3500 V2"}, "U12H127T00_NETGEAR"}, 
     159+       {{BCM47XX_BOARD_NETGEAR_WNR3500V2VC, "Netgear WNR3500 V2vc"}, "U12H127T70_NETGEAR"}, 
     160+       {{BCM47XX_BOARD_NETGEAR_WNR834BV2, "Netgear WNR834B V2"}, "U12H081T00_NETGEAR"}, 
     161+       { {0}, 0}, 
     162+}; 
     163+ 
     164+/* boardtype, boardnum, boardrev */ 
     165+static const struct bcm47xx_board_type_list3 bcm47xx_board_list_board[] = { 
     166+       {{BCM47XX_BOARD_ZTE_H218N, "ZTE H218N"}, "0x053d", "1234", "0x1305"}, 
    140167+       { {0}, 0}, 
    141168+}; 
     
    154181+       char buf1[30]; 
    155182+       char buf2[30]; 
    156 +       const struct bcm47xx_board_type_list *e; 
     183+       char buf3[30]; 
     184+       const struct bcm47xx_board_type_list1 *e1; 
     185+       const struct bcm47xx_board_type_list2 *e2; 
     186+       const struct bcm47xx_board_type_list3 *e3; 
    157187+ 
    158188+       if (bcm47xx_nvram_getenv("model_name", buf1, sizeof(buf1)) >= 0) { 
    159 +               for (e = bcm47xx_board_list_model_name; e->value1; e++) { 
    160 +                       if (!strcmp(buf1, e->value1)) 
    161 +                               return &e->board; 
     189+               for (e1 = bcm47xx_board_list_model_name; e1->value1; e1++) { 
     190+                       if (!strcmp(buf1, e1->value1)) 
     191+                               return &e1->board; 
    162192+               } 
    163193+       } 
    164194+ 
    165195+       if (bcm47xx_nvram_getenv("model_no", buf1, sizeof(buf1)) >= 0) { 
    166 +               for (e = bcm47xx_board_list_model_no; e->value1; e++) { 
    167 +                       if (strstarts(buf1, e->value1)) 
    168 +                               return &e->board; 
     196+               for (e1 = bcm47xx_board_list_model_no; e1->value1; e1++) { 
     197+                       if (strstarts(buf1, e1->value1)) 
     198+                               return &e1->board; 
    169199+               } 
    170200+       } 
    171201+ 
    172202+       if (bcm47xx_nvram_getenv("machine_name", buf1, sizeof(buf1)) >= 0) { 
    173 +               for (e = bcm47xx_board_list_machine_name; e->value1; e++) { 
    174 +                       if (strstarts(buf1, e->value1)) 
    175 +                               return &e->board; 
     203+               for (e1 = bcm47xx_board_list_machine_name; e1->value1; e1++) { 
     204+                       if (strstarts(buf1, e1->value1)) 
     205+                               return &e1->board; 
    176206+               } 
    177207+       } 
    178208+ 
    179209+       if (bcm47xx_nvram_getenv("hardware_version", buf1, sizeof(buf1)) >= 0) { 
    180 +               for (e = bcm47xx_board_list_hardware_version; e->value1; e++) { 
    181 +                       if (strstarts(buf1, e->value1)) 
    182 +                               return &e->board; 
     210+               for (e1 = bcm47xx_board_list_hardware_version; e1->value1; e1++) { 
     211+                       if (strstarts(buf1, e1->value1)) 
     212+                               return &e1->board; 
    183213+               } 
    184214+       } 
    185215+ 
    186216+       if (bcm47xx_nvram_getenv("productid", buf1, sizeof(buf1)) >= 0) { 
    187 +               for (e = bcm47xx_board_list_productid; e->value1; e++) { 
    188 +                       if (!strcmp(buf1, e->value1)) 
    189 +                               return &e->board; 
     217+               for (e1 = bcm47xx_board_list_productid; e1->value1; e1++) { 
     218+                       if (!strcmp(buf1, e1->value1)) 
     219+                               return &e1->board; 
    190220+               } 
    191221+       } 
    192222+ 
    193223+       if (bcm47xx_nvram_getenv("ModelId", buf1, sizeof(buf1)) >= 0) { 
    194 +               for (e = bcm47xx_board_list_ModelId; e->value1; e++) { 
    195 +                       if (!strcmp(buf1, e->value1)) 
    196 +                               return &e->board; 
     224+               for (e1 = bcm47xx_board_list_ModelId; e1->value1; e1++) { 
     225+                       if (!strcmp(buf1, e1->value1)) 
     226+                               return &e1->board; 
    197227+               } 
    198228+       } 
     
    201231+           bcm47xx_nvram_getenv("buf1falo_id", buf1, sizeof(buf1)) >= 0) { 
    202232+               /* buffalo hardware, check id for specific hardware matches */ 
    203 +               for (e = bcm47xx_board_list_melco_id; e->value1; e++) { 
    204 +                       if (!strcmp(buf1, e->value1)) 
    205 +                               return &e->board; 
     233+               for (e1 = bcm47xx_board_list_melco_id; e1->value1; e1++) { 
     234+                       if (!strcmp(buf1, e1->value1)) 
     235+                               return &e1->board; 
    206236+               } 
    207237+       } 
     
    209239+       if (bcm47xx_nvram_getenv("boot_hw_model", buf1, sizeof(buf1)) >= 0 && 
    210240+           bcm47xx_nvram_getenv("boot_hw_ver", buf2, sizeof(buf2)) >= 0) { 
    211 +               for (e = bcm47xx_board_list_boot_hw; e->value1; e++) { 
    212 +                       if (!strcmp(buf1, e->value1) && !strcmp(buf2, e->value2)) 
    213 +                               return &e->board; 
     241+               for (e2 = bcm47xx_board_list_boot_hw; e2->value1; e2++) { 
     242+                       if (!strcmp(buf1, e2->value1) && 
     243+                           !strcmp(buf2, e2->value2)) 
     244+                               return &e2->board; 
    214245+               } 
    215246+       } 
    216247+ 
    217248+       if (bcm47xx_nvram_getenv("board_id", buf1, sizeof(buf1)) >= 0) { 
    218 +               for (e = bcm47xx_board_list_board_id; e->value1; e++) { 
    219 +                       if (!strcmp(buf1, e->value1)) 
    220 +                               return &e->board; 
     249+               for (e1 = bcm47xx_board_list_board_id; e1->value1; e1++) { 
     250+                       if (!strcmp(buf1, e1->value1)) 
     251+                               return &e1->board; 
     252+               } 
     253+       } 
     254+ 
     255+       if (bcm47xx_nvram_getenv("boardtype", buf1, sizeof(buf1)) >= 0 && 
     256+           bcm47xx_nvram_getenv("boardnum", buf2, sizeof(buf2)) >= 0 && 
     257+           bcm47xx_nvram_getenv("boardrev", buf3, sizeof(buf3)) >= 0) { 
     258+               for (e3 = bcm47xx_board_list_board; e3->value1; e3++) { 
     259+                       if (!strcmp(buf1, e3->value1) && 
     260+                           !strcmp(buf2, e3->value2) && 
     261+                           !strcmp(buf3, e3->value3)) 
     262+                               return &e3->board; 
    221263+               } 
    222264+       } 
     
    255297--- /dev/null 
    256298+++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h 
    257 @@ -0,0 +1,100 @@ 
     299@@ -0,0 +1,102 @@ 
    258300+#ifndef __BCM47XX_BOARD_H 
    259301+#define __BCM47XX_BOARD_H 
     
    348390+       BCM47XX_BOARD_SIMPLETECH_SIMPLESHARE, 
    349391+ 
     392+       BCM47XX_BOARD_ZTE_H218N, 
     393+ 
    350394+       BCM47XX_BOARD_UNKNOWN, 
    351395+       BCM47XX_BOARD_NON, 
Note: See TracChangeset for help on using the changeset viewer.