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; |
