diff options
Diffstat (limited to 'target/linux/brcm47xx/patches-3.18/032-MIPS-BCM47XX-Make-bcma-init-NVRAM-instead-of-bcm47xx.patch')
-rw-r--r-- | target/linux/brcm47xx/patches-3.18/032-MIPS-BCM47XX-Make-bcma-init-NVRAM-instead-of-bcm47xx.patch | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/target/linux/brcm47xx/patches-3.18/032-MIPS-BCM47XX-Make-bcma-init-NVRAM-instead-of-bcm47xx.patch b/target/linux/brcm47xx/patches-3.18/032-MIPS-BCM47XX-Make-bcma-init-NVRAM-instead-of-bcm47xx.patch new file mode 100644 index 0000000000..a616fcc0e0 --- /dev/null +++ b/target/linux/brcm47xx/patches-3.18/032-MIPS-BCM47XX-Make-bcma-init-NVRAM-instead-of-bcm47xx.patch @@ -0,0 +1,113 @@ +From 7177efc5b030012c54c2e217c9d6decc0bcc1c53 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com> +Date: Tue, 28 Oct 2014 13:30:23 +0100 +Subject: [PATCH 156/158] MIPS: BCM47XX: Make bcma init NVRAM instead of + bcm47xx polling it +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This drops ssb/bcma dependency and will allow us to make it a standalone +driver. + +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/8233/ +Signed-off-by: Ralf Baechle <ralf@linux-mips.org> +--- + arch/mips/bcm47xx/nvram.c | 42 ++---------------------------------------- + drivers/bcma/driver_mips.c | 13 +++++++++++-- + 2 files changed, 13 insertions(+), 42 deletions(-) + +diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c +index fecc5ae..21712fb 100644 +--- a/arch/mips/bcm47xx/nvram.c ++++ b/arch/mips/bcm47xx/nvram.c +@@ -121,48 +121,10 @@ int bcm47xx_nvram_init_from_mem(u32 base, u32 lim) + return err; + } + +-#ifdef CONFIG_BCM47XX_BCMA +-static int nvram_init_bcma(void) +-{ +- struct bcma_drv_cc *cc = &bcm47xx_bus.bcma.bus.drv_cc; +- u32 base; +- u32 lim; +- +-#ifdef CONFIG_BCMA_NFLASH +- if (cc->nflash.boot) { +- base = BCMA_SOC_FLASH1; +- lim = BCMA_SOC_FLASH1_SZ; +- } else +-#endif +- if (cc->pflash.present) { +- base = cc->pflash.window; +- lim = cc->pflash.window_size; +-#ifdef CONFIG_BCMA_SFLASH +- } else if (cc->sflash.present) { +- base = cc->sflash.window; +- lim = cc->sflash.size; +-#endif +- } else { +- pr_err("Couldn't find supported flash memory\n"); +- return -ENXIO; +- } +- +- return bcm47xx_nvram_init_from_mem(base, lim); +-} +-#endif +- + static int nvram_init(void) + { +- switch (bcm47xx_bus_type) { +-#ifdef CONFIG_BCM47XX_SSB +- case BCM47XX_BUS_TYPE_SSB: +- break; +-#endif +-#ifdef CONFIG_BCM47XX_BCMA +- case BCM47XX_BUS_TYPE_BCMA: +- return nvram_init_bcma(); +-#endif +- } ++ /* TODO: Look for MTD "nvram" partition */ ++ + return -ENXIO; + } + +diff --git a/drivers/bcma/driver_mips.c b/drivers/bcma/driver_mips.c +index 004d6aa..8a653dc 100644 +--- a/drivers/bcma/driver_mips.c ++++ b/drivers/bcma/driver_mips.c +@@ -20,6 +20,9 @@ + #include <linux/serial_core.h> + #include <linux/serial_reg.h> + #include <linux/time.h> ++#ifdef CONFIG_BCM47XX ++#include <bcm47xx_nvram.h> ++#endif + + enum bcma_boot_dev { + BCMA_BOOT_DEV_UNK = 0, +@@ -316,10 +319,16 @@ static void bcma_core_mips_flash_detect(struct bcma_drv_mips *mcore) + switch (boot_dev) { + case BCMA_BOOT_DEV_PARALLEL: + case BCMA_BOOT_DEV_SERIAL: +- /* TODO: Init NVRAM using BCMA_SOC_FLASH2 window */ ++#ifdef CONFIG_BCM47XX ++ bcm47xx_nvram_init_from_mem(BCMA_SOC_FLASH2, ++ BCMA_SOC_FLASH2_SZ); ++#endif + break; + case BCMA_BOOT_DEV_NAND: +- /* TODO: Init NVRAM using BCMA_SOC_FLASH1 window */ ++#ifdef CONFIG_BCM47XX ++ bcm47xx_nvram_init_from_mem(BCMA_SOC_FLASH1, ++ BCMA_SOC_FLASH1_SZ); ++#endif + break; + default: + break; +-- +1.8.4.5 + |