Ignore:
Timestamp:
2012-03-28T19:03:18+02:00 (5 years ago)
Author:
hauke
Message:

brcm47xx: update flash drivers

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/brcm47xx/patches-3.2/029-bcm47xx-read-nvram-from-sflash.patch

    r30942 r31126  
    1 From 1d693b2c9d5943cbe938f879041b837cd004737f Mon Sep 17 00:00:00 2001 
    2 From: Hauke Mehrtens <hauke@hauke-m.de> 
    3 Date: Sat, 23 Jul 2011 18:29:38 +0200 
    4 Subject: [PATCH 25/26] bcm47xx: read nvram from sflash 
    5  
    6 bcm47xx: add sflash support to nvram 
    7  
    8 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> 
    9 --- 
    10  arch/mips/bcm47xx/nvram.c |   86 +++++++++++++++++++++++++++++++++++++++++++- 
    11  1 files changed, 84 insertions(+), 2 deletions(-) 
    12  
    131--- a/arch/mips/bcm47xx/nvram.c 
    142+++ b/arch/mips/bcm47xx/nvram.c 
     
    2715 #ifdef CONFIG_BCM47XX_SSB 
    2816        struct ssb_chipcommon *ssb_cc; 
    29 @@ -86,7 +87,88 @@ found: 
     17@@ -50,9 +51,6 @@ static void early_nvram_init(void) 
     18 #ifdef CONFIG_BCM47XX_BCMA 
     19        case BCM47XX_BUS_TYPE_BCMA: 
     20                bcma_cc = &bcm47xx_bus.bcma.bus.drv_cc; 
     21-               if (bcma_cc->flash_type != BCMA_PFLASH) 
     22-                       return; 
     23- 
     24                base = bcma_cc->pflash.window; 
     25                lim = bcma_cc->pflash.window_size; 
     26                break; 
     27@@ -86,7 +84,106 @@ found: 
    3028        for (i = 0; i < sizeof(struct nvram_header); i += 4) 
    3129                *dst++ = *src++; 
     
    8280+} 
    8381+ 
     82+#ifdef CONFIG_BCM47XX_SSB 
     83+static void early_nvram_init_ssb(void) 
     84+{ 
     85+       int err; 
     86+ 
     87+       switch (bcm47xx_bus.ssb.chipco.flash_type) { 
     88+       case SSB_PFLASH: 
     89+               early_nvram_init_pflash(); 
     90+       case SSB_SFLASH: 
     91+               err = early_nvram_init_sflash(); 
     92+               if (err < 0) 
     93+                       printk(KERN_WARNING "can not read from flash: %i\n", err); 
     94+       default: 
     95+               printk(KERN_WARNING "unknow flash type\n"); 
     96+       } 
     97+} 
     98+#endif 
     99+ 
     100+#ifdef CONFIG_BCM47XX_BCMA 
     101+static void early_nvram_init_bcma(void) 
     102+{ 
     103+       int err; 
     104+ 
     105+       switch (bcm47xx_bus.bcma.bus.drv_cc.flash_type) { 
     106+       case BCMA_PFLASH: 
     107+               early_nvram_init_pflash(); 
     108+       case BCMA_SFLASH: 
     109+               err = early_nvram_init_sflash(); 
     110+               if (err < 0) 
     111+                       printk(KERN_WARNING "can not read from flash: %i\n", err); 
     112+       default: 
     113+               printk(KERN_WARNING "unknow flash type\n"); 
     114+       } 
     115+} 
     116+#endif 
     117+ 
    84118+static void early_nvram_init(void) 
    85119+{ 
    86 +       int err = 0; 
    87 + 
    88120+       switch (bcm47xx_bus_type) { 
    89121+#ifdef CONFIG_BCM47XX_SSB 
    90122+       case BCM47XX_BUS_TYPE_SSB: 
    91 +               if (bcm47xx_bus.ssb.chipco.flash_type == SSB_PFLASH) { 
    92 +                       early_nvram_init_pflash(); 
    93 +               } else if (bcm47xx_bus.ssb.chipco.flash_type == SSB_SFLASH) { 
    94 +                       err = early_nvram_init_sflash(); 
    95 +                       if (err < 0) 
    96 +                               printk(KERN_WARNING "can not read from flash: %i\n", err); 
    97 +               } else { 
    98 +                       printk(KERN_WARNING "unknow flash type\n"); 
    99 +               } 
     123+               early_nvram_init_ssb(); 
    100124+               break; 
    101125+#endif 
    102126+#ifdef CONFIG_BCM47XX_BCMA 
    103127+       case BCM47XX_BUS_TYPE_BCMA: 
    104 +               if (bcm47xx_bus.bcma.bus.drv_cc.flash_type == BCMA_PFLASH) { 
    105 +                       early_nvram_init_pflash(); 
    106 +               } else if (bcm47xx_bus.bcma.bus.drv_cc.flash_type == BCMA_SFLASH) { 
    107 +                       err = early_nvram_init_sflash(); 
    108 +                       if (err < 0) 
    109 +                               printk(KERN_WARNING "can not read from flash: %i\n", err); 
    110 +               } else { 
    111 +                       printk(KERN_WARNING "unknow flash type\n"); 
    112 +               } 
     128+               early_nvram_init_bcma(); 
    113129+               break; 
    114130+#endif 
Note: See TracChangeset for help on using the changeset viewer.