diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2014-09-03 16:59:45 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2014-11-24 01:44:59 -0500 |
commit | 21400f252a97755579b43a4dc95dd02cd7f0ca75 (patch) | |
tree | 54b4dad7d552e2f2840ca5f8c0ec88ee9747368d /drivers/ssb | |
parent | 8d602dd0f984e8488ab891344ebdb6e1f3128c4a (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.c | 14 |
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) | |||
210 | static void ssb_mips_flash_detect(struct ssb_mipscore *mcore) | 213 | static 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 | ||
244 | ssb_pflash: | 248 | ssb_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; |