aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ssb
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2014-09-03 16:59:45 -0400
committerRalf Baechle <ralf@linux-mips.org>2014-11-24 01:44:59 -0500
commit21400f252a97755579b43a4dc95dd02cd7f0ca75 (patch)
tree54b4dad7d552e2f2840ca5f8c0ec88ee9747368d /drivers/ssb
parent8d602dd0f984e8488ab891344ebdb6e1f3128c4a (diff)
MIPS: BCM47XX: Make ssb init NVRAM instead of bcm47xx polling it
This makes NVRAM code less bcm47xx/ssb specific allowing it to become a standalone driver in the future. A similar patch for bcma will follow when it's ready. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Acked-by: Hauke Mehrtens <hauke@hauke-m.de> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/7612/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'drivers/ssb')
-rw-r--r--drivers/ssb/driver_mipscore.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/ssb/driver_mipscore.c b/drivers/ssb/driver_mipscore.c
index 09077067b0c8..7b986f9f213f 100644
--- a/drivers/ssb/driver_mipscore.c
+++ b/drivers/ssb/driver_mipscore.c
@@ -15,6 +15,9 @@
15#include <linux/serial_core.h> 15#include <linux/serial_core.h>
16#include <linux/serial_reg.h> 16#include <linux/serial_reg.h>
17#include <linux/time.h> 17#include <linux/time.h>
18#ifdef CONFIG_BCM47XX
19#include <bcm47xx_nvram.h>
20#endif
18 21
19#include "ssb_private.h" 22#include "ssb_private.h"
20 23
@@ -210,6 +213,7 @@ static void ssb_mips_serial_init(struct ssb_mipscore *mcore)
210static void ssb_mips_flash_detect(struct ssb_mipscore *mcore) 213static void ssb_mips_flash_detect(struct ssb_mipscore *mcore)
211{ 214{
212 struct ssb_bus *bus = mcore->dev->bus; 215 struct ssb_bus *bus = mcore->dev->bus;
216 struct ssb_sflash *sflash = &mcore->sflash;
213 struct ssb_pflash *pflash = &mcore->pflash; 217 struct ssb_pflash *pflash = &mcore->pflash;
214 218
215 /* When there is no chipcommon on the bus there is 4MB flash */ 219 /* When there is no chipcommon on the bus there is 4MB flash */
@@ -242,7 +246,15 @@ static void ssb_mips_flash_detect(struct ssb_mipscore *mcore)
242 } 246 }
243 247
244ssb_pflash: 248ssb_pflash:
245 if (pflash->present) { 249 if (sflash->present) {
250#ifdef CONFIG_BCM47XX
251 bcm47xx_nvram_init_from_mem(sflash->window, sflash->size);
252#endif
253 } else if (pflash->present) {
254#ifdef CONFIG_BCM47XX
255 bcm47xx_nvram_init_from_mem(pflash->window, pflash->window_size);
256#endif
257
246 ssb_pflash_data.width = pflash->buswidth; 258 ssb_pflash_data.width = pflash->buswidth;
247 ssb_pflash_resource.start = pflash->window; 259 ssb_pflash_resource.start = pflash->window;
248 ssb_pflash_resource.end = pflash->window + pflash->window_size; 260 ssb_pflash_resource.end = pflash->window + pflash->window_size;