From: Rafał Miłecki Date: Mon, 16 Nov 2015 07:18:37 +0000 (+0000) Subject: brcm47xx: backport BCM47xx MIPS commits from 4.3 and 4.4-rc1 X-Git-Tag: reboot~1543 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=f8692a4b88893a47ac3e49261c242b9a63a11175;p=openwrt%2Fstaging%2Fblogic.git brcm47xx: backport BCM47xx MIPS commits from 4.3 and 4.4-rc1 Signed-off-by: Rafał Miłecki SVN-Revision: 47484 --- diff --git a/target/linux/brcm47xx/patches-4.1/031-10-MIPS-BCM47xx-Don-t-select-BCMA_HOST_PCI.patch b/target/linux/brcm47xx/patches-4.1/031-10-MIPS-BCM47xx-Don-t-select-BCMA_HOST_PCI.patch index 5bcbaa576519..6322c234994c 100644 --- a/target/linux/brcm47xx/patches-4.1/031-10-MIPS-BCM47xx-Don-t-select-BCMA_HOST_PCI.patch +++ b/target/linux/brcm47xx/patches-4.1/031-10-MIPS-BCM47xx-Don-t-select-BCMA_HOST_PCI.patch @@ -20,7 +20,7 @@ Signed-off-by: Ralf Baechle --- a/arch/mips/bcm47xx/Kconfig +++ b/arch/mips/bcm47xx/Kconfig -@@ -25,7 +25,6 @@ config BCM47XX_BCMA +@@ -26,7 +26,6 @@ config BCM47XX_BCMA select BCMA select BCMA_HOST_SOC select BCMA_DRIVER_MIPS diff --git a/target/linux/brcm47xx/patches-4.1/031-11-MIPS-BCM47xx-Simplify-handling-SPROM-revisions.patch b/target/linux/brcm47xx/patches-4.1/031-11-MIPS-BCM47xx-Simplify-handling-SPROM-revisions.patch new file mode 100644 index 000000000000..7302c65c03a5 --- /dev/null +++ b/target/linux/brcm47xx/patches-4.1/031-11-MIPS-BCM47xx-Simplify-handling-SPROM-revisions.patch @@ -0,0 +1,114 @@ +From 590605c6bc31d5cbfcb3844ef98eb10ff7ce24c3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Sun, 21 Jun 2015 15:25:49 +0200 +Subject: [PATCH] MIPS: BCM47xx: Simplify handling SPROM revisions +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +After the big SPROM cleanup moving code to the bcm47xx_sprom_fill_auto +we ended up with few tiny functions, two of them being identical. Let's +get rid of these [12]-liners. +This also stops extracting higher SPROM revisions as revision 1. Now we +have that function nicely handling revisions we don't need it. + +Signed-off-by: Rafał Miłecki +Cc: linux-mips@linux-mips.org +Cc: Hauke Mehrtens +Patchwork: https://patchwork.linux-mips.org/patch/10569/ +Signed-off-by: Ralf Baechle +--- + arch/mips/bcm47xx/sprom.c | 53 ++++++++--------------------------------------- + 1 file changed, 9 insertions(+), 44 deletions(-) + +diff --git a/arch/mips/bcm47xx/sprom.c b/arch/mips/bcm47xx/sprom.c +index b0d62e7..2d5c7a7 100644 +--- a/arch/mips/bcm47xx/sprom.c ++++ b/arch/mips/bcm47xx/sprom.c +@@ -200,6 +200,9 @@ static void bcm47xx_sprom_fill_auto(struct ssb_sprom *sprom, + const char *pre = prefix; + bool fb = fallback; + ++ /* Broadcom extracts it for rev 8+ but it was found on 2 and 4 too */ ++ ENTRY(0xfffffffe, u16, pre, "devid", dev_id, 0, fallback); ++ + ENTRY(0xfffffffe, u16, pre, "boardrev", board_rev, 0, true); + ENTRY(0xfffffffe, u32, pre, "boardflags", boardflags, 0, fb); + ENTRY(0xfffffff0, u32, pre, "boardflags2", boardflags2, 0, fb); +@@ -412,27 +415,6 @@ static void bcm47xx_sprom_fill_auto(struct ssb_sprom *sprom, + } + #undef ENTRY /* It's specififc, uses local variable, don't use it (again). */ + +-static void bcm47xx_fill_sprom_r1234589(struct ssb_sprom *sprom, +- const char *prefix, bool fallback) +-{ +- nvram_read_u16(prefix, NULL, "devid", &sprom->dev_id, 0, fallback); +- nvram_read_alpha2(prefix, "ccode", sprom->alpha2, fallback); +-} +- +-static void bcm47xx_fill_sprom_r3(struct ssb_sprom *sprom, const char *prefix, +- bool fallback) +-{ +- nvram_read_leddc(prefix, "leddc", &sprom->leddc_on_time, +- &sprom->leddc_off_time, fallback); +-} +- +-static void bcm47xx_fill_sprom_r4589(struct ssb_sprom *sprom, +- const char *prefix, bool fallback) +-{ +- nvram_read_leddc(prefix, "leddc", &sprom->leddc_on_time, +- &sprom->leddc_off_time, fallback); +-} +- + static void bcm47xx_fill_sprom_path_r4589(struct ssb_sprom *sprom, + const char *prefix, bool fallback) + { +@@ -589,39 +571,22 @@ void bcm47xx_fill_sprom(struct ssb_sprom *sprom, const char *prefix, + + nvram_read_u8(prefix, NULL, "sromrev", &sprom->revision, 0, fallback); + ++ /* Entries requiring custom functions */ ++ nvram_read_alpha2(prefix, "ccode", sprom->alpha2, fallback); ++ if (sprom->revision >= 3) ++ nvram_read_leddc(prefix, "leddc", &sprom->leddc_on_time, ++ &sprom->leddc_off_time, fallback); ++ + switch (sprom->revision) { +- case 1: +- bcm47xx_fill_sprom_r1234589(sprom, prefix, fallback); +- break; +- case 2: +- bcm47xx_fill_sprom_r1234589(sprom, prefix, fallback); +- break; +- case 3: +- bcm47xx_fill_sprom_r1234589(sprom, prefix, fallback); +- bcm47xx_fill_sprom_r3(sprom, prefix, fallback); +- break; + case 4: + case 5: +- bcm47xx_fill_sprom_r1234589(sprom, prefix, fallback); +- bcm47xx_fill_sprom_r4589(sprom, prefix, fallback); + bcm47xx_fill_sprom_path_r4589(sprom, prefix, fallback); + bcm47xx_fill_sprom_path_r45(sprom, prefix, fallback); + break; + case 8: +- bcm47xx_fill_sprom_r1234589(sprom, prefix, fallback); +- bcm47xx_fill_sprom_r4589(sprom, prefix, fallback); +- bcm47xx_fill_sprom_path_r4589(sprom, prefix, fallback); +- break; + case 9: +- bcm47xx_fill_sprom_r1234589(sprom, prefix, fallback); +- bcm47xx_fill_sprom_r4589(sprom, prefix, fallback); + bcm47xx_fill_sprom_path_r4589(sprom, prefix, fallback); + break; +- default: +- pr_warn("Unsupported SPROM revision %d detected. Will extract v1\n", +- sprom->revision); +- sprom->revision = 1; +- bcm47xx_fill_sprom_r1234589(sprom, prefix, fallback); + } + + bcm47xx_sprom_fill_auto(sprom, prefix, fallback); +-- +1.8.4.5 + diff --git a/target/linux/brcm47xx/patches-4.1/032-01-MIPS-BCM47xx-Use-kmemdup-rather-than-duplicating-its.patch b/target/linux/brcm47xx/patches-4.1/032-01-MIPS-BCM47xx-Use-kmemdup-rather-than-duplicating-its.patch new file mode 100644 index 000000000000..958738c35ccb --- /dev/null +++ b/target/linux/brcm47xx/patches-4.1/032-01-MIPS-BCM47xx-Use-kmemdup-rather-than-duplicating-its.patch @@ -0,0 +1,48 @@ +From e5dd8f2cf65cb228fad881ecd35093d8409d17c6 Mon Sep 17 00:00:00 2001 +From: Andrzej Hajda +Date: Fri, 7 Aug 2015 09:59:10 +0200 +Subject: [PATCH] MIPS: BCM47xx: Use kmemdup rather than duplicating its + implementation +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The patch was generated using fixed coccinelle semantic patch +scripts/coccinelle/api/memdup.cocci [1]. + +[1]: http://permalink.gmane.org/gmane.linux.kernel/2014320 + +Signed-off-by: Andrzej Hajda +Acked-by: Hauke Mehrtens +Cc: Hauke Mehrtens +Cc: Rafał Miłecki +Cc: Andrzej Hajda +Cc: Bartlomiej Zolnierkiewicz +Cc: Marek Szyprowski +Cc: linux-kernel@vger.kernel.org +Cc: linux-mips@linux-mips.org +Patchwork: https://patchwork.linux-mips.org/patch/10898/ +Signed-off-by: Ralf Baechle +--- + arch/mips/bcm47xx/buttons.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/arch/mips/bcm47xx/buttons.c b/arch/mips/bcm47xx/buttons.c +index 08a4abf..52caa75 100644 +--- a/arch/mips/bcm47xx/buttons.c ++++ b/arch/mips/bcm47xx/buttons.c +@@ -396,10 +396,9 @@ static int __init bcm47xx_buttons_copy(const struct gpio_keys_button *buttons, + { + size_t size = nbuttons * sizeof(*buttons); + +- bcm47xx_button_pdata.buttons = kmalloc(size, GFP_KERNEL); ++ bcm47xx_button_pdata.buttons = kmemdup(buttons, size, GFP_KERNEL); + if (!bcm47xx_button_pdata.buttons) + return -ENOMEM; +- memcpy(bcm47xx_button_pdata.buttons, buttons, size); + bcm47xx_button_pdata.nbuttons = nbuttons; + + return 0; +-- +1.8.4.5 + diff --git a/target/linux/brcm47xx/patches-4.1/033-01-MIPS-BCM47xx-Support-on-SoC-bus-in-SPROM-reading-fun.patch b/target/linux/brcm47xx/patches-4.1/033-01-MIPS-BCM47xx-Support-on-SoC-bus-in-SPROM-reading-fun.patch new file mode 100644 index 000000000000..f8d945d1ba56 --- /dev/null +++ b/target/linux/brcm47xx/patches-4.1/033-01-MIPS-BCM47xx-Support-on-SoC-bus-in-SPROM-reading-fun.patch @@ -0,0 +1,51 @@ +From daa7ce02513d2188fe6f5ff47ce5ef83eb7de739 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Sun, 25 Oct 2015 22:16:47 +0100 +Subject: [PATCH 1/3] MIPS: BCM47xx: Support on-SoC bus in SPROM reading + function +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +To support (extract) SPROM on Broadcom ARM devices we should separate +SPROM code and make it a separated module. We won't want to export +bcm47xx_fill_sprom symbol so we should support SoC SPROM in the standard +fallback function and then modify ssb to use it. + +Signed-off-by: Rafał Miłecki +Acked-by: Hauke Mehrtens +Cc: linux-mips@linux-mips.org +Patchwork: https://patchwork.linux-mips.org/patch/11355/ +Signed-off-by: Ralf Baechle +--- + arch/mips/bcm47xx/sprom.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/arch/mips/bcm47xx/sprom.c b/arch/mips/bcm47xx/sprom.c +index 2d5c7a7..e19c1b9 100644 +--- a/arch/mips/bcm47xx/sprom.c ++++ b/arch/mips/bcm47xx/sprom.c +@@ -610,14 +610,18 @@ static int bcm47xx_get_sprom_ssb(struct ssb_bus *bus, struct ssb_sprom *out) + { + char prefix[10]; + +- if (bus->bustype == SSB_BUSTYPE_PCI) { ++ switch (bus->bustype) { ++ case SSB_BUSTYPE_SSB: ++ bcm47xx_fill_sprom(out, NULL, false); ++ return 0; ++ case SSB_BUSTYPE_PCI: + memset(out, 0, sizeof(struct ssb_sprom)); + snprintf(prefix, sizeof(prefix), "pci/%u/%u/", + bus->host_pci->bus->number + 1, + PCI_SLOT(bus->host_pci->devfn)); + bcm47xx_fill_sprom(out, prefix, false); + return 0; +- } else { ++ default: + pr_warn("Unable to fill SPROM for given bustype.\n"); + return -EINVAL; + } +-- +1.8.4.5 + diff --git a/target/linux/brcm47xx/patches-4.1/033-02-MIPS-BCM47xx-Fix-some-WARNINGs-pointed-in-sprom.c-by.patch b/target/linux/brcm47xx/patches-4.1/033-02-MIPS-BCM47xx-Fix-some-WARNINGs-pointed-in-sprom.c-by.patch new file mode 100644 index 000000000000..c32f1ec22677 --- /dev/null +++ b/target/linux/brcm47xx/patches-4.1/033-02-MIPS-BCM47xx-Fix-some-WARNINGs-pointed-in-sprom.c-by.patch @@ -0,0 +1,82 @@ +From 2f94acde42b70c81129b398c44aa09411974a16d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Sun, 25 Oct 2015 22:16:48 +0100 +Subject: [PATCH 2/3] MIPS: BCM47xx: Fix some WARNINGs pointed in sprom.c by + checkpatch.pl +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +There are still few left: +1) Most of them about lines over 80 chars (increased readability exception) +2) Wrong parsing of preprocessor macros + +Signed-off-by: Rafał Miłecki +Cc: linux-mips@linux-mips.org +Cc: Hauke Mehrtens +Patchwork: https://patchwork.linux-mips.org/patch/11356/ +Signed-off-by: Ralf Baechle +--- + arch/mips/bcm47xx/sprom.c | 25 ++++++++++++++++--------- + 1 file changed, 16 insertions(+), 9 deletions(-) + +diff --git a/arch/mips/bcm47xx/sprom.c b/arch/mips/bcm47xx/sprom.c +index e19c1b9..43353db 100644 +--- a/arch/mips/bcm47xx/sprom.c ++++ b/arch/mips/bcm47xx/sprom.c +@@ -60,9 +60,9 @@ static int get_nvram_var(const char *prefix, const char *postfix, + } + + #define NVRAM_READ_VAL(type) \ +-static void nvram_read_ ## type (const char *prefix, \ +- const char *postfix, const char *name, \ +- type *val, type allset, bool fallback) \ ++static void nvram_read_ ## type(const char *prefix, \ ++ const char *postfix, const char *name, \ ++ type *val, type allset, bool fallback) \ + { \ + char buf[100]; \ + int err; \ +@@ -422,7 +422,10 @@ static void bcm47xx_fill_sprom_path_r4589(struct ssb_sprom *sprom, + int i; + + for (i = 0; i < ARRAY_SIZE(sprom->core_pwr_info); i++) { +- struct ssb_sprom_core_pwr_info *pwr_info = &sprom->core_pwr_info[i]; ++ struct ssb_sprom_core_pwr_info *pwr_info; ++ ++ pwr_info = &sprom->core_pwr_info[i]; ++ + snprintf(postfix, sizeof(postfix), "%i", i); + nvram_read_u8(prefix, postfix, "maxp2ga", + &pwr_info->maxpwr_2g, 0, fallback); +@@ -470,7 +473,10 @@ static void bcm47xx_fill_sprom_path_r45(struct ssb_sprom *sprom, + int i; + + for (i = 0; i < ARRAY_SIZE(sprom->core_pwr_info); i++) { +- struct ssb_sprom_core_pwr_info *pwr_info = &sprom->core_pwr_info[i]; ++ struct ssb_sprom_core_pwr_info *pwr_info; ++ ++ pwr_info = &sprom->core_pwr_info[i]; ++ + snprintf(postfix, sizeof(postfix), "%i", i); + nvram_read_u16(prefix, postfix, "pa2gw3a", + &pwr_info->pa_2g[3], 0, fallback); +@@ -535,10 +541,11 @@ static void bcm47xx_fill_sprom_ethernet(struct ssb_sprom *sprom, + nvram_read_macaddr(prefix, "il0macaddr", sprom->il0mac, fallback); + + /* The address prefix 00:90:4C is used by Broadcom in their initial +- configuration. When a mac address with the prefix 00:90:4C is used +- all devices from the same series are sharing the same mac address. +- To prevent mac address collisions we replace them with a mac address +- based on the base address. */ ++ * configuration. When a mac address with the prefix 00:90:4C is used ++ * all devices from the same series are sharing the same mac address. ++ * To prevent mac address collisions we replace them with a mac address ++ * based on the base address. ++ */ + if (!bcm47xx_is_valid_mac(sprom->il0mac)) { + u8 mac[6]; + +-- +1.8.4.5 + diff --git a/target/linux/brcm47xx/patches-4.1/033-03-MIPS-BCM47xx-Fetch-board-info-directly-in-callback-f.patch b/target/linux/brcm47xx/patches-4.1/033-03-MIPS-BCM47xx-Fetch-board-info-directly-in-callback-f.patch new file mode 100644 index 000000000000..7cafe6fb63d1 --- /dev/null +++ b/target/linux/brcm47xx/patches-4.1/033-03-MIPS-BCM47xx-Fetch-board-info-directly-in-callback-f.patch @@ -0,0 +1,102 @@ +From d8cfb5037bfc875e6dc8e09e4caceb443c04ff6a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Mon, 26 Oct 2015 11:13:16 +0100 +Subject: [PATCH 3/3] MIPS: BCM47xx: Fetch board info directly in callback + function +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This drops another symbol dependency between setup.c and sprom.c which +will allow us to make SPROM code a separated module (and share it with +ARM). +Patch tested on Linksys WRT300N V1. + +Signed-off-by: Rafał Miłecki +Cc: Hauke Mehrtens +Cc: linux-mips@linux-mips.org +Patchwork: https://patchwork.linux-mips.org/patch/11360/ +Signed-off-by: Ralf Baechle +--- + arch/mips/bcm47xx/setup.c | 19 ++++++++++++++++++- + arch/mips/bcm47xx/sprom.c | 13 ------------- + arch/mips/include/asm/mach-bcm47xx/bcm47xx.h | 5 ----- + 3 files changed, 18 insertions(+), 19 deletions(-) + +diff --git a/arch/mips/bcm47xx/setup.c b/arch/mips/bcm47xx/setup.c +index 17503a0..6d38948 100644 +--- a/arch/mips/bcm47xx/setup.c ++++ b/arch/mips/bcm47xx/setup.c +@@ -105,11 +105,28 @@ static int bcm47xx_get_invariants(struct ssb_bus *bus, + struct ssb_init_invariants *iv) + { + char buf[20]; ++ int len, err; + + /* Fill boardinfo structure */ + memset(&iv->boardinfo, 0 , sizeof(struct ssb_boardinfo)); + +- bcm47xx_fill_ssb_boardinfo(&iv->boardinfo, NULL); ++ len = bcm47xx_nvram_getenv("boardvendor", buf, sizeof(buf)); ++ if (len > 0) { ++ err = kstrtou16(strim(buf), 0, &iv->boardinfo.vendor); ++ if (err) ++ pr_warn("Couldn't parse nvram board vendor entry with value \"%s\"\n", ++ buf); ++ } ++ if (!iv->boardinfo.vendor) ++ iv->boardinfo.vendor = SSB_BOARDVENDOR_BCM; ++ ++ len = bcm47xx_nvram_getenv("boardtype", buf, sizeof(buf)); ++ if (len > 0) { ++ err = kstrtou16(strim(buf), 0, &iv->boardinfo.type); ++ if (err) ++ pr_warn("Couldn't parse nvram board type entry with value \"%s\"\n", ++ buf); ++ } + + memset(&iv->sprom, 0, sizeof(struct ssb_sprom)); + bcm47xx_fill_sprom(&iv->sprom, NULL, false); +diff --git a/arch/mips/bcm47xx/sprom.c b/arch/mips/bcm47xx/sprom.c +index 43353db..a7e569c 100644 +--- a/arch/mips/bcm47xx/sprom.c ++++ b/arch/mips/bcm47xx/sprom.c +@@ -599,19 +599,6 @@ void bcm47xx_fill_sprom(struct ssb_sprom *sprom, const char *prefix, + bcm47xx_sprom_fill_auto(sprom, prefix, fallback); + } + +-#ifdef CONFIG_BCM47XX_SSB +-void bcm47xx_fill_ssb_boardinfo(struct ssb_boardinfo *boardinfo, +- const char *prefix) +-{ +- nvram_read_u16(prefix, NULL, "boardvendor", &boardinfo->vendor, 0, +- true); +- if (!boardinfo->vendor) +- boardinfo->vendor = SSB_BOARDVENDOR_BCM; +- +- nvram_read_u16(prefix, NULL, "boardtype", &boardinfo->type, 0, true); +-} +-#endif +- + #if defined(CONFIG_BCM47XX_SSB) + static int bcm47xx_get_sprom_ssb(struct ssb_bus *bus, struct ssb_sprom *out) + { +diff --git a/arch/mips/include/asm/mach-bcm47xx/bcm47xx.h b/arch/mips/include/asm/mach-bcm47xx/bcm47xx.h +index 1461c10..71e4096 100644 +--- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx.h ++++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx.h +@@ -48,11 +48,6 @@ extern enum bcm47xx_bus_type bcm47xx_bus_type; + void bcm47xx_fill_sprom(struct ssb_sprom *sprom, const char *prefix, + bool fallback); + +-#ifdef CONFIG_BCM47XX_SSB +-void bcm47xx_fill_ssb_boardinfo(struct ssb_boardinfo *boardinfo, +- const char *prefix); +-#endif +- + void bcm47xx_set_system_type(u16 chip_id); + + #endif /* __ASM_BCM47XX_H */ +-- +1.8.4.5 + diff --git a/target/linux/brcm47xx/patches-4.1/280-activate_ssb_support_in_usb.patch b/target/linux/brcm47xx/patches-4.1/280-activate_ssb_support_in_usb.patch index 33fefddafeeb..ae6a72de7a69 100644 --- a/target/linux/brcm47xx/patches-4.1/280-activate_ssb_support_in_usb.patch +++ b/target/linux/brcm47xx/patches-4.1/280-activate_ssb_support_in_usb.patch @@ -15,7 +15,7 @@ This prevents the options from being delete with make kernel_oldconfig. the memory. This only works with the Broadcom SoCs from the --- a/drivers/ssb/Kconfig +++ b/drivers/ssb/Kconfig -@@ -147,6 +147,7 @@ config SSB_SFLASH +@@ -156,6 +156,7 @@ config SSB_SFLASH config SSB_EMBEDDED bool depends on SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE diff --git a/target/linux/brcm47xx/patches-4.1/320-MIPS-BCM47XX-Devices-database-update-for-4.x.patch b/target/linux/brcm47xx/patches-4.1/320-MIPS-BCM47XX-Devices-database-update-for-4.x.patch index e19a458598e0..36d143593fb9 100644 --- a/target/linux/brcm47xx/patches-4.1/320-MIPS-BCM47XX-Devices-database-update-for-4.x.patch +++ b/target/linux/brcm47xx/patches-4.1/320-MIPS-BCM47XX-Devices-database-update-for-4.x.patch @@ -82,7 +82,7 @@ bcm47xx_buttons_netgear_wnr3500lv1[] __initconst = { BCM47XX_GPIO_KEY(4, KEY_RESTART), BCM47XX_GPIO_KEY(6, KEY_WPS_BUTTON), -@@ -414,6 +442,9 @@ int __init bcm47xx_buttons_register(void +@@ -413,6 +441,9 @@ int __init bcm47xx_buttons_register(void int err; switch (board) { @@ -92,7 +92,7 @@ case BCM47XX_BOARD_ASUS_RTN12: err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_rtn12); break; -@@ -544,6 +575,12 @@ int __init bcm47xx_buttons_register(void +@@ -543,6 +574,12 @@ int __init bcm47xx_buttons_register(void case BCM47XX_BOARD_LINKSYS_WRT310NV1: err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt310nv1); break; @@ -105,7 +105,7 @@ case BCM47XX_BOARD_LINKSYS_WRT54G3GV2: err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt54g3gv2); break; -@@ -580,6 +617,9 @@ int __init bcm47xx_buttons_register(void +@@ -579,6 +616,9 @@ int __init bcm47xx_buttons_register(void err = bcm47xx_copy_bdata(bcm47xx_buttons_motorola_wr850gv2v3); break; @@ -115,7 +115,7 @@ case BCM47XX_BOARD_NETGEAR_WNDR3400V1: err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wndr3400v1); break; -@@ -592,6 +632,9 @@ int __init bcm47xx_buttons_register(void +@@ -591,6 +631,9 @@ int __init bcm47xx_buttons_register(void case BCM47XX_BOARD_NETGEAR_WNDR4500V1: err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wndr4500v1); break; diff --git a/target/linux/brcm47xx/patches-4.1/830-huawei_e970_support.patch b/target/linux/brcm47xx/patches-4.1/830-huawei_e970_support.patch index fdb6c19cd233..aa0ccaec5d8b 100644 --- a/target/linux/brcm47xx/patches-4.1/830-huawei_e970_support.patch +++ b/target/linux/brcm47xx/patches-4.1/830-huawei_e970_support.patch @@ -8,7 +8,7 @@ #include #include #include -@@ -245,6 +246,33 @@ static struct fixed_phy_status bcm47xx_f +@@ -262,6 +263,33 @@ static struct fixed_phy_status bcm47xx_f .duplex = DUPLEX_FULL, }; @@ -42,7 +42,7 @@ static int __init bcm47xx_register_bus_complete(void) { switch (bcm47xx_bus_type) { -@@ -264,6 +292,7 @@ static int __init bcm47xx_register_bus_c +@@ -281,6 +309,7 @@ static int __init bcm47xx_register_bus_c bcm47xx_workarounds(); fixed_phy_add(PHY_POLL, 0, &bcm47xx_fixed_phy_status);