boardnum is unstable, so allow using NULL to make it unchecked.

A method for differentiating F7D3301 from F7D3302 using nvram is
unknown at this point. Reading the first 32bits of magic from the
"linux" mtd partition would do the trick, but these 2 are similar
enough that we don't need separate led/button definitions. Not knowing
which one you have is only a usability issue for upgrading the device:
they expect different magic numbers for their trx images.

Signed-off-by: Cody P Schafer <de...@codyps.com>
---
 ...PS-BCM47XX-fix-detection-of-some-boards-2.patch | 37 ++++++++++++++++++++++
 1 file changed, 37 insertions(+)
 create mode 100644 
target/linux/brcm47xx/patches-3.10/076-MIPS-BCM47XX-fix-detection-of-some-boards-2.patch

diff --git 
a/target/linux/brcm47xx/patches-3.10/076-MIPS-BCM47XX-fix-detection-of-some-boards-2.patch
 
b/target/linux/brcm47xx/patches-3.10/076-MIPS-BCM47XX-fix-detection-of-some-boards-2.patch
new file mode 100644
index 0000000..21eda18
--- /dev/null
+++ 
b/target/linux/brcm47xx/patches-3.10/076-MIPS-BCM47XX-fix-detection-of-some-boards-2.patch
@@ -0,0 +1,37 @@
+Index: linux-3.10.18/arch/mips/bcm47xx/board.c
+===================================================================
+--- linux-3.10.18.orig/arch/mips/bcm47xx/board.c
++++ linux-3.10.18/arch/mips/bcm47xx/board.c
+@@ -180,6 +180,7 @@ struct bcm47xx_board_type_list3 bcm47xx_
+       {{BCM47XX_BOARD_ZTE_H218N, "ZTE H218N"}, "0x053d", "1234", "0x1305"},
+       {{BCM47XX_BOARD_NETGEAR_WNR3500L, "Netgear WNR3500L"}, "0x04CF", 
"3500", "02"},
+       {{BCM47XX_BOARD_LINKSYS_WRT54GSV1, "Linksys WRT54GS V1"}, "0x0101", 
"42", "0x10"},
++      {{BCM47XX_BOARD_BELKIN_F7D330X, "Belkin F7D330X"}, "0xa4cf", NULL, 
"0x1102" },
+       { {0}, 0},
+ };
+ 
+@@ -270,9 +271,9 @@ static __init const struct bcm47xx_board
+           bcm47xx_nvram_getenv("boardnum", buf2, sizeof(buf2)) >= 0 &&
+           bcm47xx_nvram_getenv("boardrev", buf3, sizeof(buf3)) >= 0) {
+               for (e3 = bcm47xx_board_list_board; e3->value1; e3++) {
+-                      if (!strcmp(buf1, e3->value1) &&
+-                          !strcmp(buf2, e3->value2) &&
+-                          !strcmp(buf3, e3->value3))
++                      if ((!e3->value1 || !strcmp(buf1, e3->value1)) &&
++                          (!e3->value2 || !strcmp(buf2, e3->value2)) &&
++                          (!e3->value3 || !strcmp(buf3, e3->value3)))
+                               return &e3->board;
+               }
+       }
+Index: linux-3.10.18/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
+===================================================================
+--- linux-3.10.18.orig/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
++++ linux-3.10.18/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
+@@ -28,6 +28,7 @@ enum bcm47xx_board {
+       BCM47XX_BOARD_ASUS_WLHDD,
+ 
+       BCM47XX_BOARD_BELKIN_F7D4301,
++      BCM47XX_BOARD_BELKIN_F7D330X,
+ 
+       BCM47XX_BOARD_BUFFALO_WBR2_G54,
+       BCM47XX_BOARD_BUFFALO_WHR2_A54G54,
-- 
1.8.4.2
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to