aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm47xx
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2014-01-12 18:54:38 +0000
committerHauke Mehrtens <hauke@hauke-m.de>2014-01-12 18:54:38 +0000
commit30cf6f5815b898f956ae95a88f28d327677a3f62 (patch)
tree0d1df83b82f300d9ef13926cfdd8375e1b4e98c2 /target/linux/brcm47xx
parent7d654de0389b3a6357ad65d7c820c3e60cf40eb6 (diff)
downloadupstream-30cf6f5815b898f956ae95a88f28d327677a3f62.tar.gz
upstream-30cf6f5815b898f956ae95a88f28d327677a3f62.tar.bz2
upstream-30cf6f5815b898f956ae95a88f28d327677a3f62.zip
brcm47xx: update some patches to versions in linux mainline
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> SVN-Revision: 39251
Diffstat (limited to 'target/linux/brcm47xx')
-rw-r--r--target/linux/brcm47xx/patches-3.10/072-MIPS-BCM47XX-only-print-SoC-name-in-system-type-in-c.patch29
-rw-r--r--target/linux/brcm47xx/patches-3.10/073-MIPS-BCM47XX-print-board-name-in-machine-entry-in-cp.patch21
-rw-r--r--target/linux/brcm47xx/patches-3.10/075-MIPS-BCM47XX-fix-detection-for-some-boards.patch51
-rw-r--r--target/linux/brcm47xx/patches-3.10/075-MIPS-BCM47XX-fix-detection-of-some-boards.patch40
-rw-r--r--target/linux/brcm47xx/patches-3.10/076-MIPS-BCM47XX-add-board-detection-for-Linksys-WRT54GS.patch34
-rw-r--r--target/linux/brcm47xx/patches-3.10/076-MIPS-BCM47XX-fix-detection-of-some-boards-2.patch33
-rw-r--r--target/linux/brcm47xx/patches-3.10/077-MIPS-BCM47XX-fix-sparse-warnings-in-board.c.patch113
-rw-r--r--target/linux/brcm47xx/patches-3.10/095-MIPS-BCM47XX-Cocci-spatch-noderef.patch23
-rw-r--r--target/linux/brcm47xx/patches-3.10/095-MIPS-BCM47XX-Fix-some-very-confused-types-and-data-c.patch86
9 files changed, 315 insertions, 115 deletions
diff --git a/target/linux/brcm47xx/patches-3.10/072-MIPS-BCM47XX-only-print-SoC-name-in-system-type-in-c.patch b/target/linux/brcm47xx/patches-3.10/072-MIPS-BCM47XX-only-print-SoC-name-in-system-type-in-c.patch
index 1993cf5a44..4dcd380aea 100644
--- a/target/linux/brcm47xx/patches-3.10/072-MIPS-BCM47XX-only-print-SoC-name-in-system-type-in-c.patch
+++ b/target/linux/brcm47xx/patches-3.10/072-MIPS-BCM47XX-only-print-SoC-name-in-system-type-in-c.patch
@@ -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
diff --git a/target/linux/brcm47xx/patches-3.10/073-MIPS-BCM47XX-print-board-name-in-machine-entry-in-cp.patch b/target/linux/brcm47xx/patches-3.10/073-MIPS-BCM47XX-print-board-name-in-machine-entry-in-cp.patch
index b7bc335f95..8a786429ed 100644
--- a/target/linux/brcm47xx/patches-3.10/073-MIPS-BCM47XX-print-board-name-in-machine-entry-in-cp.patch
+++ b/target/linux/brcm47xx/patches-3.10/073-MIPS-BCM47XX-print-board-name-in-machine-entry-in-cp.patch
@@ -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
index 0000000000..cfa45bc874
--- /dev/null
+++ b/target/linux/brcm47xx/patches-3.10/075-MIPS-BCM47XX-fix-detection-for-some-boards.patch
@@ -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
index 9c8bf7beb0..0000000000
--- a/target/linux/brcm47xx/patches-3.10/075-MIPS-BCM47XX-fix-detection-of-some-boards.patch
+++ /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
index 0000000000..098cf119cb
--- /dev/null
+++ b/target/linux/brcm47xx/patches-3.10/076-MIPS-BCM47XX-add-board-detection-for-Linksys-WRT54GS.patch
@@ -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
index f3306693c2..0000000000
--- a/target/linux/brcm47xx/patches-3.10/076-MIPS-BCM47XX-fix-detection-of-some-boards-2.patch
+++ /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
index 0000000000..b7ce90a213
--- /dev/null
+++ b/target/linux/brcm47xx/patches-3.10/077-MIPS-BCM47XX-fix-sparse-warnings-in-board.c.patch
@@ -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
index 57d3a7f20f..0000000000
--- a/target/linux/brcm47xx/patches-3.10/095-MIPS-BCM47XX-Cocci-spatch-noderef.patch
+++ /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
index 0000000000..a4bc08adca
--- /dev/null
+++ b/target/linux/brcm47xx/patches-3.10/095-MIPS-BCM47XX-Fix-some-very-confused-types-and-data-c.patch
@@ -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,