diff options
Diffstat (limited to 'target/linux/brcm47xx/patches-4.1/031-05-MIPS-BCM47xx-Read-board-info-for-all-bcma-buses.patch')
-rw-r--r-- | target/linux/brcm47xx/patches-4.1/031-05-MIPS-BCM47xx-Read-board-info-for-all-bcma-buses.patch | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/target/linux/brcm47xx/patches-4.1/031-05-MIPS-BCM47xx-Read-board-info-for-all-bcma-buses.patch b/target/linux/brcm47xx/patches-4.1/031-05-MIPS-BCM47xx-Read-board-info-for-all-bcma-buses.patch deleted file mode 100644 index 314a6c4904..0000000000 --- a/target/linux/brcm47xx/patches-4.1/031-05-MIPS-BCM47xx-Read-board-info-for-all-bcma-buses.patch +++ /dev/null @@ -1,132 +0,0 @@ -From 12e1ab54dcd414c3579cfd26be9d9c9e1cab92ad Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com> -Date: Tue, 12 May 2015 13:05:18 +0200 -Subject: [PATCH] MIPS: BCM47xx: Read board info for all bcma buses -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Extra bcma buses may be totally different models, see following dump: -boardtype=0x0646 -pci/1/1/boardtype=0x0545 -pci/2/1/boardtype=0x62b -We need to detect them properly to allow drivers apply some board -specific hacks. - -[ralf@linux-mips.org: folded in Rafal's fix.] - -Signed-off-by: Rafał Miłecki <zajec5@gmail.com> -Cc: linux-mips@linux-mips.org -Cc: Hauke Mehrtens <hauke@hauke-m.de> -Patchwork: https://patchwork.linux-mips.org/patch/10028/ -Patchwork: https://patchwork.linux-mips.org/patch/10048/ -Signed-off-by: Ralf Baechle <ralf@linux-mips.org> ---- - arch/mips/bcm47xx/setup.c | 3 -- - arch/mips/bcm47xx/sprom.c | 44 ++++++++++++++-------------- - arch/mips/include/asm/mach-bcm47xx/bcm47xx.h | 4 --- - 3 files changed, 22 insertions(+), 29 deletions(-) - ---- a/arch/mips/bcm47xx/setup.c -+++ b/arch/mips/bcm47xx/setup.c -@@ -206,9 +206,6 @@ void __init bcm47xx_bus_setup(void) - err = bcma_host_soc_init(&bcm47xx_bus.bcma); - if (err) - panic("Failed to initialize BCMA bus (err %d)", err); -- -- bcm47xx_fill_bcma_boardinfo(&bcm47xx_bus.bcma.bus.boardinfo, -- NULL); - } - #endif - ---- a/arch/mips/bcm47xx/sprom.c -+++ b/arch/mips/bcm47xx/sprom.c -@@ -640,19 +640,6 @@ void bcm47xx_fill_ssb_boardinfo(struct s - } - #endif - --#ifdef CONFIG_BCM47XX_BCMA --void bcm47xx_fill_bcma_boardinfo(struct bcma_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) - { -@@ -707,33 +694,46 @@ static void bcm47xx_sprom_apply_prefix_a - - static int bcm47xx_get_sprom_bcma(struct bcma_bus *bus, struct ssb_sprom *out) - { -- char prefix[10]; -+ struct bcma_boardinfo *binfo = &bus->boardinfo; - struct bcma_device *core; -+ char buf[10]; -+ char *prefix; -+ bool fallback = false; - - switch (bus->hosttype) { - case BCMA_HOSTTYPE_PCI: - memset(out, 0, sizeof(struct ssb_sprom)); -- snprintf(prefix, sizeof(prefix), "pci/%u/%u/", -+ snprintf(buf, sizeof(buf), "pci/%u/%u/", - bus->host_pci->bus->number + 1, - PCI_SLOT(bus->host_pci->devfn)); -- bcm47xx_sprom_apply_prefix_alias(prefix, sizeof(prefix)); -- bcm47xx_fill_sprom(out, prefix, false); -- return 0; -+ bcm47xx_sprom_apply_prefix_alias(buf, sizeof(buf)); -+ prefix = buf; -+ break; - case BCMA_HOSTTYPE_SOC: - memset(out, 0, sizeof(struct ssb_sprom)); - core = bcma_find_core(bus, BCMA_CORE_80211); - if (core) { -- snprintf(prefix, sizeof(prefix), "sb/%u/", -+ snprintf(buf, sizeof(buf), "sb/%u/", - core->core_index); -- bcm47xx_fill_sprom(out, prefix, true); -+ prefix = buf; -+ fallback = true; - } else { -- bcm47xx_fill_sprom(out, NULL, false); -+ prefix = NULL; - } -- return 0; -+ break; - default: - pr_warn("Unable to fill SPROM for given bustype.\n"); - return -EINVAL; - } -+ -+ nvram_read_u16(prefix, NULL, "boardvendor", &binfo->vendor, 0, true); -+ if (!binfo->vendor) -+ binfo->vendor = SSB_BOARDVENDOR_BCM; -+ nvram_read_u16(prefix, NULL, "boardtype", &binfo->type, 0, true); -+ -+ bcm47xx_fill_sprom(out, prefix, fallback); -+ -+ return 0; - } - #endif - ---- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx.h -+++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx.h -@@ -52,10 +52,6 @@ void bcm47xx_fill_sprom(struct ssb_sprom - void bcm47xx_fill_ssb_boardinfo(struct ssb_boardinfo *boardinfo, - const char *prefix); - #endif --#ifdef CONFIG_BCM47XX_BCMA --void bcm47xx_fill_bcma_boardinfo(struct bcma_boardinfo *boardinfo, -- const char *prefix); --#endif - - void bcm47xx_set_system_type(u16 chip_id); - |