brcm47xx: update some patches to versions in linux mainline
authorhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 12 Jan 2014 18:54:38 +0000 (18:54 +0000)
committerhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 12 Jan 2014 18:54:38 +0000 (18:54 +0000)
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39251 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/kernel/broadcom-diag/src/diag.c
target/linux/brcm47xx/patches-3.10/072-MIPS-BCM47XX-only-print-SoC-name-in-system-type-in-c.patch
target/linux/brcm47xx/patches-3.10/073-MIPS-BCM47XX-print-board-name-in-machine-entry-in-cp.patch
target/linux/brcm47xx/patches-3.10/075-MIPS-BCM47XX-fix-detection-for-some-boards.patch [new file with mode: 0644]
target/linux/brcm47xx/patches-3.10/075-MIPS-BCM47XX-fix-detection-of-some-boards.patch [deleted file]
target/linux/brcm47xx/patches-3.10/076-MIPS-BCM47XX-add-board-detection-for-Linksys-WRT54GS.patch [new file with mode: 0644]
target/linux/brcm47xx/patches-3.10/076-MIPS-BCM47XX-fix-detection-of-some-boards-2.patch [deleted file]
target/linux/brcm47xx/patches-3.10/077-MIPS-BCM47XX-fix-sparse-warnings-in-board.c.patch [new file with mode: 0644]
target/linux/brcm47xx/patches-3.10/095-MIPS-BCM47XX-Cocci-spatch-noderef.patch [deleted file]
target/linux/brcm47xx/patches-3.10/095-MIPS-BCM47XX-Fix-some-very-confused-types-and-data-c.patch [new file with mode: 0644]

index fccc219..e39f5b4 100644 (file)
@@ -144,8 +144,6 @@ enum {
        WR850GP,
 
        /* Belkin */
-       BELKIN_UNKNOWN,
-       BELKIN_F7D330X, /* covers F7D7302,F7D3302,F7D3301, and F7D7301 */
        BELKIN_F7D4301,
 
        /* Netgear */
@@ -955,38 +953,6 @@ static struct platform_t __initdata platforms[] = {
        },
 
        /* Belkin */
-       [BELKIN_UNKNOWN] = {
-               .name           = "Belkin (unknown)",
-               /* FIXME: verify & add detection */
-               .buttons        = {
-                       { .name = "reset",      .gpio = 1 << 7 },
-               },
-               .leds           = {
-                       { .name = "power",      .gpio = 1 << 5, .polarity = NORMAL },
-                       { .name = "wlan",       .gpio = 1 << 3, .polarity = NORMAL },
-                       { .name = "connected",  .gpio = 1 << 0, .polarity = NORMAL },
-               },
-       },
-       [BELKIN_F7D330X] = {
-               .name           = "Belkin F7D330X",
-               .buttons        = {
-                       { .name = "reset",      .gpio = 1 << 6 },
-                       { .name = "wps",        .gpio = 1 << 8 },
-               },
-               .leds           = {
-                       /* green */
-                       { .name = "power",      .gpio = 1 << 10, .polarity = REVERSE },
-                       /* orange power */
-                       { .name = "warn",       .gpio = 1 << 11, .polarity = REVERSE },
-                       /* green */
-                       { .name = "wps",        .gpio = 1 << 12, .polarity = REVERSE },
-                       /* orange wps */
-                       { .name = "wlan",       .gpio = 1 << 13, .polarity = REVERSE },
-                       { .name = "usb0",       .gpio = 1 << 14, .polarity = REVERSE },
-                       /* shipped unconnected in the F7D3302 */
-                       { .name = "usb1",       .gpio = 1 << 15, .polarity = REVERSE },
-               },
-       },
        [BELKIN_F7D4301] = {
                .name           = "Belkin PlayMax F7D4301",
                .buttons        = {
@@ -1401,8 +1367,6 @@ static struct platform_t __init *platform_detect(void)
                return &platforms[WLHDD];
        case BCM47XX_BOARD_BELKIN_F7D4301:
                return &platforms[BELKIN_F7D4301];
-       case BCM47XX_BOARD_BELKIN_F7D330X:
-               return &platforms[BELKIN_F7D330X];
        case BCM47XX_BOARD_BUFFALO_WBR2_G54:
                return &platforms[WBR2_G54];
        case BCM47XX_BOARD_BUFFALO_WHR2_A54G54:
index 1993cf5..4dcd380 100644 (file)
@@ -1,15 +1,22 @@
-commit 88aaea30099c1562c4b4015d965c22df29034a74
-Author: Hauke Mehrtens <hauke@hauke-m.de>
-Date:   Thu Sep 19 22:01:53 2013 +0200
+From 17e0ca5d6e08a83eed8dada75af4c0107f162051 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Thu, 19 Sep 2013 23:40:09 +0200
+Subject: [PATCH 018/110] MIPS: BCM47XX: only print SoC name in system type in
+ cpuinfo
 
-    MIPS: BCM47XX: only print SoC name in system type in cpuinfo
-    
-    Recently the output of "system type" in  /proc/cpuinfo was changed to
-    Broadcom BCM4730 (Some sample board), but it is better to just print
-    the SoC name in the "system type" entry. The board name will be added
-    in the machine entry later.
-    
-    Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+Recently the output of "system type" in  /proc/cpuinfo was changed to
+Broadcom BCM4730 (Some sample board), but it is better to just print
+the SoC name in the "system type" entry. The board name will be added
+in the machine entry later.
+
+Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+Acked-by: John Crispin <blogic@openwrt.org>
+Patchwork: http://patchwork.linux-mips.org/patch/5865/
+---
+ arch/mips/bcm47xx/prom.c                     |   31 ++++++++------------------
+ arch/mips/bcm47xx/setup.c                    |    2 ++
+ arch/mips/include/asm/mach-bcm47xx/bcm47xx.h |    2 ++
+ 3 files changed, 13 insertions(+), 22 deletions(-)
 
 --- a/arch/mips/bcm47xx/prom.c
 +++ b/arch/mips/bcm47xx/prom.c
index b7bc335..8a78642 100644 (file)
@@ -1,12 +1,17 @@
-commit 86bd812676d1e99968f395ad82ccaa2db7965748
-Author: Hauke Mehrtens <hauke@hauke-m.de>
-Date:   Thu Sep 19 22:04:04 2013 +0200
+From 6d683038f2155bf0d6f486a1f11a10bbc455da8a Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Thu, 19 Sep 2013 23:40:10 +0200
+Subject: [PATCH 019/110] MIPS: BCM47XX: print board name in machine entry in
+ cpuinfo
 
-    MIPS: BCM47XX: print board name in machine entry in cpuinfo
-    
-    This will add the board name to the machine entry in /proc/cpuinfo.
-    
-    Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+This will add the board name to the machine entry in /proc/cpuinfo.
+
+Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+Acked-by: John Crispin <blogic@openwrt.org>
+Patchwork: http://patchwork.linux-mips.org/patch/5864/
+---
+ arch/mips/bcm47xx/setup.c |    2 ++
+ 1 file changed, 2 insertions(+)
 
 --- a/arch/mips/bcm47xx/setup.c
 +++ b/arch/mips/bcm47xx/setup.c
diff --git a/target/linux/brcm47xx/patches-3.10/075-MIPS-BCM47XX-fix-detection-for-some-boards.patch b/target/linux/brcm47xx/patches-3.10/075-MIPS-BCM47XX-fix-detection-for-some-boards.patch
new file mode 100644 (file)
index 0000000..cfa45bc
--- /dev/null
@@ -0,0 +1,51 @@
+From 255842a25bf36b7ba585e6cf81d856fa9df66cf2 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Fri, 3 Jan 2014 20:41:58 +0100
+Subject: [PATCH] MIPS: BCM47XX: fix detection for some boards
+
+When a nvram reset was performed from CFE, it sometimes does not
+contain the productid value in nvram, but it still contains
+hardware_version.
+
+Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+Acked-by: Rafa? Mi?ecki <zajec5@gmail.com>
+---
+ arch/mips/bcm47xx/board.c |   13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+--- a/arch/mips/bcm47xx/board.c
++++ b/arch/mips/bcm47xx/board.c
+@@ -56,6 +56,12 @@ struct bcm47xx_board_type_list1 bcm47xx_
+ /* hardware_version */
+ static const
+ struct bcm47xx_board_type_list1 bcm47xx_board_list_hardware_version[] __initconst = {
++      {{BCM47XX_BOARD_ASUS_RTN10U, "Asus RT-N10U"}, "RTN10U"},
++      {{BCM47XX_BOARD_ASUS_RTN12, "Asus RT-N12"}, "RT-N12"},
++      {{BCM47XX_BOARD_ASUS_RTN12B1, "Asus RT-N12B1"}, "RTN12B1"},
++      {{BCM47XX_BOARD_ASUS_RTN12C1, "Asus RT-N12C1"}, "RTN12C1"},
++      {{BCM47XX_BOARD_ASUS_RTN12D1, "Asus RT-N12D1"}, "RTN12D1"},
++      {{BCM47XX_BOARD_ASUS_RTN12HP, "Asus RT-N12HP"}, "RTN12HP"},
+       {{BCM47XX_BOARD_ASUS_RTN16, "Asus RT-N16"}, "RT-N16-"},
+       {{BCM47XX_BOARD_ASUS_WL320GE, "Asus WL320GE"}, "WL320G-"},
+       {{BCM47XX_BOARD_ASUS_WL330GE, "Asus WL330GE"}, "WL330GE-"},
+@@ -75,12 +81,6 @@ struct bcm47xx_board_type_list1 bcm47xx_
+       {{BCM47XX_BOARD_ASUS_RTAC66U, "Asus RT-AC66U"}, "RT-AC66U"},
+       {{BCM47XX_BOARD_ASUS_RTN10, "Asus RT-N10"}, "RT-N10"},
+       {{BCM47XX_BOARD_ASUS_RTN10D, "Asus RT-N10D"}, "RT-N10D"},
+-      {{BCM47XX_BOARD_ASUS_RTN10U, "Asus RT-N10U"}, "RT-N10U"},
+-      {{BCM47XX_BOARD_ASUS_RTN12, "Asus RT-N12"}, "RT-N12"},
+-      {{BCM47XX_BOARD_ASUS_RTN12B1, "Asus RT-N12B1"}, "RT-N12B1"},
+-      {{BCM47XX_BOARD_ASUS_RTN12C1, "Asus RT-N12C1"}, "RT-N12C1"},
+-      {{BCM47XX_BOARD_ASUS_RTN12D1, "Asus RT-N12D1"}, "RT-N12D1"},
+-      {{BCM47XX_BOARD_ASUS_RTN12HP, "Asus RT-N12HP"}, "RT-N12HP"},
+       {{BCM47XX_BOARD_ASUS_RTN15U, "Asus RT-N15U"}, "RT-N15U"},
+       {{BCM47XX_BOARD_ASUS_RTN16, "Asus RT-N16"}, "RT-N16"},
+       {{BCM47XX_BOARD_ASUS_RTN53, "Asus RT-N53"}, "RT-N53"},
+@@ -174,6 +174,7 @@ struct bcm47xx_board_type_list3 bcm47xx_
+       {{BCM47XX_BOARD_HUAWEI_E970, "Huawei E970"}, "0x048e", "0x5347", "0x11"},
+       {{BCM47XX_BOARD_PHICOMM_M1, "Phicomm M1"}, "0x0590", "80", "0x1104"},
+       {{BCM47XX_BOARD_ZTE_H218N, "ZTE H218N"}, "0x053d", "1234", "0x1305"},
++      {{BCM47XX_BOARD_NETGEAR_WNR3500L, "Netgear WNR3500L"}, "0x04CF", "3500", "02"},
+       { {0}, 0},
+ };
diff --git a/target/linux/brcm47xx/patches-3.10/075-MIPS-BCM47XX-fix-detection-of-some-boards.patch b/target/linux/brcm47xx/patches-3.10/075-MIPS-BCM47XX-fix-detection-of-some-boards.patch
deleted file mode 100644 (file)
index 9c8bf7b..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-From 2beb91164802b1cbfda369564d3371b3ff649eec Mon Sep 17 00:00:00 2001
-From: Hauke Mehrtens <hauke@hauke-m.de>
-Date: Sun, 13 Oct 2013 16:05:49 +0200
-Subject: [PATCH 6/6] MIPS: BCM47XX: fix detection of some boards
-
-This adds some more boards
-
-Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---- a/arch/mips/bcm47xx/board.c
-+++ b/arch/mips/bcm47xx/board.c
-@@ -56,6 +56,10 @@ struct bcm47xx_board_type_list1 bcm47xx_
- /* hardware_version */
- static const
- struct bcm47xx_board_type_list1 bcm47xx_board_list_hardware_version[] __initconst = {
-+      {{BCM47XX_BOARD_ASUS_RTN10U, "Asus RT-N10U"}, "RTN10U"},
-+      {{BCM47XX_BOARD_ASUS_RTN12, "Asus RT-N12"}, "RT-N12"},
-+      {{BCM47XX_BOARD_ASUS_RTN12D1, "Asus RT-N12D1"}, "RTN12D1"},
-+      {{BCM47XX_BOARD_ASUS_RTN12B1, "Asus RT-N12B1"}, "RTN12B1"},
-       {{BCM47XX_BOARD_ASUS_RTN16, "Asus RT-N16"}, "RT-N16-"},
-       {{BCM47XX_BOARD_ASUS_WL320GE, "Asus WL320GE"}, "WL320G-"},
-       {{BCM47XX_BOARD_ASUS_WL330GE, "Asus WL330GE"}, "WL330GE-"},
-@@ -174,6 +178,8 @@ struct bcm47xx_board_type_list3 bcm47xx_
-       {{BCM47XX_BOARD_HUAWEI_E970, "Huawei E970"}, "0x048e", "0x5347", "0x11"},
-       {{BCM47XX_BOARD_PHICOMM_M1, "Phicomm M1"}, "0x0590", "80", "0x1104"},
-       {{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"},
-       { {0}, 0},
- };
---- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
-+++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
-@@ -66,6 +66,7 @@ enum bcm47xx_board {
-       BCM47XX_BOARD_LINKSYS_WRT310NV1,
-       BCM47XX_BOARD_LINKSYS_WRT310NV2,
-       BCM47XX_BOARD_LINKSYS_WRT54G3GV2,
-+      BCM47XX_BOARD_LINKSYS_WRT54GSV1,
-       BCM47XX_BOARD_LINKSYS_WRT610NV1,
-       BCM47XX_BOARD_LINKSYS_WRT610NV2,
-       BCM47XX_BOARD_LINKSYS_WRTSL54GS,
diff --git a/target/linux/brcm47xx/patches-3.10/076-MIPS-BCM47XX-add-board-detection-for-Linksys-WRT54GS.patch b/target/linux/brcm47xx/patches-3.10/076-MIPS-BCM47XX-add-board-detection-for-Linksys-WRT54GS.patch
new file mode 100644 (file)
index 0000000..098cf11
--- /dev/null
@@ -0,0 +1,34 @@
+From a2da7b7a2cb8319b6383e93d99905cb027252584 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Fri, 3 Jan 2014 20:41:59 +0100
+Subject: [PATCH] MIPS: BCM47XX: add board detection for Linksys WRT54GS V1
+
+This adds board detection for Linksys WRT54GS V1.
+
+Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+Acked-by: Rafa? Mi?ecki <zajec5@gmail.com>
+---
+ arch/mips/bcm47xx/board.c                          |    1 +
+ arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h |    1 +
+ 2 files changed, 2 insertions(+)
+
+--- a/arch/mips/bcm47xx/board.c
++++ b/arch/mips/bcm47xx/board.c
+@@ -175,6 +175,7 @@ struct bcm47xx_board_type_list3 bcm47xx_
+       {{BCM47XX_BOARD_PHICOMM_M1, "Phicomm M1"}, "0x0590", "80", "0x1104"},
+       {{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"},
+       { {0}, 0},
+ };
+--- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
++++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
+@@ -66,6 +66,7 @@ enum bcm47xx_board {
+       BCM47XX_BOARD_LINKSYS_WRT310NV1,
+       BCM47XX_BOARD_LINKSYS_WRT310NV2,
+       BCM47XX_BOARD_LINKSYS_WRT54G3GV2,
++      BCM47XX_BOARD_LINKSYS_WRT54GSV1,
+       BCM47XX_BOARD_LINKSYS_WRT610NV1,
+       BCM47XX_BOARD_LINKSYS_WRT610NV2,
+       BCM47XX_BOARD_LINKSYS_WRTSL54GS,
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
deleted file mode 100644 (file)
index f330669..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
---- a/arch/mips/bcm47xx/board.c
-+++ b/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;
-               }
-       }
---- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
-+++ b/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,
diff --git a/target/linux/brcm47xx/patches-3.10/077-MIPS-BCM47XX-fix-sparse-warnings-in-board.c.patch b/target/linux/brcm47xx/patches-3.10/077-MIPS-BCM47XX-fix-sparse-warnings-in-board.c.patch
new file mode 100644 (file)
index 0000000..b7ce90a
--- /dev/null
@@ -0,0 +1,113 @@
+From ab76ce5c01293f518db823c7089d52586fc1d899 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Fri, 3 Jan 2014 20:42:00 +0100
+Subject: [PATCH] MIPS: BCM47XX: fix sparse warnings in board.c
+
+This fixes the following sparse warnings:
+arch/mips/bcm47xx/board.c:39:16: warning: Using plain integer as NULL pointer
+arch/mips/bcm47xx/board.c:46:16: warning: Using plain integer as NULL pointer
+arch/mips/bcm47xx/board.c:53:16: warning: Using plain integer as NULL pointer
+arch/mips/bcm47xx/board.c:78:16: warning: Using plain integer as NULL pointer
+arch/mips/bcm47xx/board.c:99:16: warning: Using plain integer as NULL pointer
+arch/mips/bcm47xx/board.c:109:16: warning: Using plain integer as NULL pointer
+arch/mips/bcm47xx/board.c:124:16: warning: Using plain integer as NULL pointer
+arch/mips/bcm47xx/board.c:155:16: warning: Using plain integer as NULL pointer
+arch/mips/bcm47xx/board.c:177:16: warning: Using plain integer as NULL pointer
+arch/mips/bcm47xx/board.c:189:16: warning: Using plain integer as NULL pointer
+
+Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+Acked-by: Rafa? Mi?ecki <zajec5@gmail.com>
+---
+ arch/mips/bcm47xx/board.c |   20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+--- a/arch/mips/bcm47xx/board.c
++++ b/arch/mips/bcm47xx/board.c
+@@ -36,21 +36,21 @@ static const
+ struct bcm47xx_board_type_list1 bcm47xx_board_list_model_name[] __initconst = {
+       {{BCM47XX_BOARD_DLINK_DIR130, "D-Link DIR-130"}, "DIR-130"},
+       {{BCM47XX_BOARD_DLINK_DIR330, "D-Link DIR-330"}, "DIR-330"},
+-      { {0}, 0},
++      { {0}, NULL},
+ };
+ /* model_no */
+ static const
+ struct bcm47xx_board_type_list1 bcm47xx_board_list_model_no[] __initconst = {
+       {{BCM47XX_BOARD_ASUS_WL700GE, "Asus WL700"}, "WL700"},
+-      { {0}, 0},
++      { {0}, NULL},
+ };
+ /* machine_name */
+ static const
+ struct bcm47xx_board_type_list1 bcm47xx_board_list_machine_name[] __initconst = {
+       {{BCM47XX_BOARD_LINKSYS_WRTSL54GS, "Linksys WRTSL54GS"}, "WRTSL54GS"},
+-      { {0}, 0},
++      { {0}, NULL},
+ };
+ /* hardware_version */
+@@ -72,7 +72,7 @@ struct bcm47xx_board_type_list1 bcm47xx_
+       {{BCM47XX_BOARD_ASUS_WL520GC, "Asus WL520GC"}, "WL520GC-"},
+       {{BCM47XX_BOARD_ASUS_WL520GU, "Asus WL520GU"}, "WL520GU-"},
+       {{BCM47XX_BOARD_BELKIN_F7D4301, "Belkin F7D4301"}, "F7D4301"},
+-      { {0}, 0},
++      { {0}, NULL},
+ };
+ /* productid */
+@@ -87,7 +87,7 @@ struct bcm47xx_board_type_list1 bcm47xx_
+       {{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},
++      { {0}, NULL},
+ };
+ /* ModelId */
+@@ -97,7 +97,7 @@ struct bcm47xx_board_type_list1 bcm47xx_
+       {{BCM47XX_BOARD_MOTOROLA_WE800G, "Motorola WE800G"}, "WE800G"},
+       {{BCM47XX_BOARD_MOTOROLA_WR850GP, "Motorola WR850GP"}, "WR850GP"},
+       {{BCM47XX_BOARD_MOTOROLA_WR850GV2V3, "Motorola WR850G"}, "WR850G"},
+-      { {0}, 0},
++      { {0}, NULL},
+ };
+ /* melco_id or buf1falo_id */
+@@ -112,7 +112,7 @@ struct bcm47xx_board_type_list1 bcm47xx_
+       {{BCM47XX_BOARD_BUFFALO_WZR_G300N, "Buffalo WZR-G300N"}, "31120"},
+       {{BCM47XX_BOARD_BUFFALO_WZR_RS_G54, "Buffalo WZR-RS-G54"}, "30083"},
+       {{BCM47XX_BOARD_BUFFALO_WZR_RS_G54HP, "Buffalo WZR-RS-G54HP"}, "30103"},
+-      { {0}, 0},
++      { {0}, NULL},
+ };
+ /* boot_hw_model, boot_hw_ver */
+@@ -143,7 +143,7 @@ struct bcm47xx_board_type_list2 bcm47xx_
+       {{BCM47XX_BOARD_LINKSYS_WRT54G3GV2, "Linksys WRT54G3GV2-VF"}, "WRT54G3GV2-VF", "1.0"},
+       {{BCM47XX_BOARD_LINKSYS_WRT610NV1, "Linksys WRT610N V1"}, "WRT610N", "1.0"},
+       {{BCM47XX_BOARD_LINKSYS_WRT610NV2, "Linksys WRT610N V2"}, "WRT610N", "2.0"},
+-      { {0}, 0},
++      { {0}, NULL},
+ };
+ /* board_id */
+@@ -165,7 +165,7 @@ struct bcm47xx_board_type_list1 bcm47xx_
+       {{BCM47XX_BOARD_NETGEAR_WNR3500V2, "Netgear WNR3500 V2"}, "U12H127T00_NETGEAR"},
+       {{BCM47XX_BOARD_NETGEAR_WNR3500V2VC, "Netgear WNR3500 V2vc"}, "U12H127T70_NETGEAR"},
+       {{BCM47XX_BOARD_NETGEAR_WNR834BV2, "Netgear WNR834B V2"}, "U12H081T00_NETGEAR"},
+-      { {0}, 0},
++      { {0}, NULL},
+ };
+ /* boardtype, boardnum, boardrev */
+@@ -176,7 +176,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"},
+-      { {0}, 0},
++      { {0}, NULL},
+ };
+ static const
diff --git a/target/linux/brcm47xx/patches-3.10/095-MIPS-BCM47XX-Cocci-spatch-noderef.patch b/target/linux/brcm47xx/patches-3.10/095-MIPS-BCM47XX-Cocci-spatch-noderef.patch
deleted file mode 100644 (file)
index 57d3a7f..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-commit 8a289346c135c2f014a7cde5b2a9320beb096188
-Author: thomas@m3y3r.de <thomas@m3y3r.de>
-Date:   Thu Sep 19 20:38:21 2013 +0200
-
-    MIPS: BCM47XX: Cocci spatch "noderef"
-    
-    sizeof when applied to a pointer typed expression gives the size of the
-    pointer.
-    Found by coccinelle spatch "misc/noderef.cocci"
-    
-    Signed-off-by: Thomas Meyer <thomas@m3y3r.de>
-
---- a/arch/mips/bcm47xx/sprom.c
-+++ b/arch/mips/bcm47xx/sprom.c
-@@ -162,7 +162,7 @@ static void nvram_read_alpha2(const char
-               pr_warn("alpha2 is too long %s\n", buf);
-               return;
-       }
--      memcpy(val, buf, sizeof(val));
-+      memcpy(val, buf, sizeof(*val));
- }
- static void bcm47xx_fill_sprom_r1234589(struct ssb_sprom *sprom,
diff --git a/target/linux/brcm47xx/patches-3.10/095-MIPS-BCM47XX-Fix-some-very-confused-types-and-data-c.patch b/target/linux/brcm47xx/patches-3.10/095-MIPS-BCM47XX-Fix-some-very-confused-types-and-data-c.patch
new file mode 100644 (file)
index 0000000..a4bc08a
--- /dev/null
@@ -0,0 +1,86 @@
+From 855094d7e46eb14c597ca09631cf95a92909982d Mon Sep 17 00:00:00 2001
+From: Ilia Mirkin <imirkin@alum.mit.edu>
+Date: Fri, 6 Dec 2013 18:56:53 -0500
+Subject: [PATCH] MIPS: BCM47XX: Fix some very confused types and data
+ corruption
+
+Fix nvram_read_alpha2 copying too many bytes over the ssb_sprom
+structure. Also fix the arguments of the read_macaddr, although the code
+was technically not wrong before due to an extra dereference.
+
+Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
+Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
+Acked-by: John Crispin <blogic@openwrt.org>
+Patchwork: http://patchwork.linux-mips.org/patch/6211/
+---
+ arch/mips/bcm47xx/sprom.c |   18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+--- a/arch/mips/bcm47xx/sprom.c
++++ b/arch/mips/bcm47xx/sprom.c
+@@ -135,7 +135,7 @@ static void nvram_read_leddc(const char
+ }
+ static void nvram_read_macaddr(const char *prefix, const char *name,
+-                             u8 (*val)[6], bool fallback)
++                             u8 val[6], bool fallback)
+ {
+       char buf[100];
+       int err;
+@@ -144,11 +144,11 @@ static void nvram_read_macaddr(const cha
+       if (err < 0)
+               return;
+-      bcm47xx_nvram_parse_macaddr(buf, *val);
++      bcm47xx_nvram_parse_macaddr(buf, val);
+ }
+ static void nvram_read_alpha2(const char *prefix, const char *name,
+-                           char (*val)[2], bool fallback)
++                           char val[2], bool fallback)
+ {
+       char buf[10];
+       int err;
+@@ -162,7 +162,7 @@ static void nvram_read_alpha2(const char
+               pr_warn("alpha2 is too long %s\n", buf);
+               return;
+       }
+-      memcpy(val, buf, sizeof(val));
++      memcpy(val, buf, 2);
+ }
+ static void bcm47xx_fill_sprom_r1234589(struct ssb_sprom *sprom,
+@@ -180,7 +180,7 @@ static void bcm47xx_fill_sprom_r1234589(
+                     fallback);
+       nvram_read_s8(prefix, NULL, "ag1", &sprom->antenna_gain.a1, 0,
+                     fallback);
+-      nvram_read_alpha2(prefix, "ccode", &sprom->alpha2, fallback);
++      nvram_read_alpha2(prefix, "ccode", sprom->alpha2, fallback);
+ }
+ static void bcm47xx_fill_sprom_r12389(struct ssb_sprom *sprom,
+@@ -633,20 +633,20 @@ static void bcm47xx_fill_sprom_path_r45(
+ static void bcm47xx_fill_sprom_ethernet(struct ssb_sprom *sprom,
+                                       const char *prefix, bool fallback)
+ {
+-      nvram_read_macaddr(prefix, "et0macaddr", &sprom->et0mac, fallback);
++      nvram_read_macaddr(prefix, "et0macaddr", sprom->et0mac, fallback);
+       nvram_read_u8(prefix, NULL, "et0mdcport", &sprom->et0mdcport, 0,
+                     fallback);
+       nvram_read_u8(prefix, NULL, "et0phyaddr", &sprom->et0phyaddr, 0,
+                     fallback);
+-      nvram_read_macaddr(prefix, "et1macaddr", &sprom->et1mac, fallback);
++      nvram_read_macaddr(prefix, "et1macaddr", sprom->et1mac, fallback);
+       nvram_read_u8(prefix, NULL, "et1mdcport", &sprom->et1mdcport, 0,
+                     fallback);
+       nvram_read_u8(prefix, NULL, "et1phyaddr", &sprom->et1phyaddr, 0,
+                     fallback);
+-      nvram_read_macaddr(prefix, "macaddr", &sprom->il0mac, fallback);
+-      nvram_read_macaddr(prefix, "il0macaddr", &sprom->il0mac, fallback);
++      nvram_read_macaddr(prefix, "macaddr", sprom->il0mac, fallback);
++      nvram_read_macaddr(prefix, "il0macaddr", sprom->il0mac, fallback);
+ }
+ static void bcm47xx_fill_board_data(struct ssb_sprom *sprom, const char *prefix,