Changeset 27967


Ignore:
Timestamp:
2011-08-12T18:37:22+02:00 (5 years ago)
Author:
hauke
Message:

brcm47xx: fix flash detection on chipcommon less devices.

This closes #9906
Thank you for the report Kim

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/brcm47xx/patches-3.0/0014-ssb-move-flash-to-chipcommon.patch

    r27902 r27967  
    1 From be495ba9c365a31cf6a9fa0f67df9a9a9e0f1a1f Mon Sep 17 00:00:00 2001 
     1From e8afde87ecf56beff67c7d5371cabaa4fc018541 Mon Sep 17 00:00:00 2001 
    22From: Hauke Mehrtens <hauke@hauke-m.de> 
    33Date: Sat, 23 Jul 2011 23:57:06 +0200 
     
    99 arch/mips/bcm47xx/nvram.c                 |    8 +++--- 
    1010 arch/mips/bcm47xx/wgt634u.c               |    8 +++--- 
    11  drivers/ssb/driver_mipscore.c             |   31 +++++++++++++++++++--------- 
    12  include/linux/ssb/ssb_driver_chipcommon.h |   18 ++++++++++++++++ 
     11 drivers/ssb/driver_mipscore.c             |   36 +++++++++++++++++++++------- 
     12 include/linux/ssb/ssb_driver_chipcommon.h |   18 ++++++++++++++ 
    1313 include/linux/ssb/ssb_driver_mips.h       |    4 --- 
    14  5 files changed, 47 insertions(+), 22 deletions(-) 
     14 5 files changed, 53 insertions(+), 21 deletions(-) 
    1515 
    1616--- a/arch/mips/bcm47xx/nvram.c 
     
    5757--- a/drivers/ssb/driver_mipscore.c 
    5858+++ b/drivers/ssb/driver_mipscore.c 
    59 @@ -190,16 +190,27 @@ static void ssb_mips_flash_detect(struct 
     59@@ -190,16 +190,34 @@ static void ssb_mips_flash_detect(struct 
    6060 { 
    6161        struct ssb_bus *bus = mcore->dev->bus; 
     
    6565-               mcore->flash_window = 0x1c000000; 
    6666-               mcore->flash_window_size = 0x02000000; 
    67 -               if ((ssb_read32(bus->chipco.dev, SSB_CHIPCO_FLASH_CFG) 
    68 -                              & SSB_CHIPCO_CFG_DS16) == 0) 
    69 -                       mcore->flash_buswidth = 1; 
    70 -       } else { 
    71 -               mcore->flash_window = 0x1fc00000; 
    72 -               mcore->flash_window_size = 0x00400000; 
     67+       /* When there is no chipcommon on the bus there is 4MB flash */ 
     68+       if (!bus->chipco.dev) { 
     69+               pr_info("found parallel flash.\n"); 
     70+               bus->chipco.flash_type = SSB_PFLASH; 
     71+               bus->chipco.pflash.window = SSB_FLASH1; 
     72+               bus->chipco.pflash.window_size = SSB_FLASH1_SZ; 
     73+               bus->chipco.pflash.buswidth = 2; 
     74+               return; 
     75+       } 
     76+ 
    7377+       switch (bus->chipco.capabilities & SSB_CHIPCO_CAP_FLASHT) { 
    7478+       case SSB_CHIPCO_FLASHT_STSER: 
     
    7983+               pr_info("found parallel flash.\n"); 
    8084+               bus->chipco.flash_type = SSB_PFLASH; 
    81 +               bus->chipco.pflash.buswidth = 2; 
    82 +               if (bus->chipco.dev) { 
    83 +                       bus->chipco.pflash.window = 0x1c000000; 
    84 +                       bus->chipco.pflash.window_size = 0x02000000; 
    85 +                       if ((ssb_read32(bus->chipco.dev, SSB_CHIPCO_FLASH_CFG) 
    86 +                            & SSB_CHIPCO_CFG_DS16) == 0) 
    87 +                               bus->chipco.pflash.buswidth = 1; 
    88 +               } else { 
    89 +                       bus->chipco.pflash.window = 0x1fc00000; 
    90 +                       bus->chipco.pflash.window_size = 0x00400000; 
    91 +               } 
     85+               bus->chipco.pflash.window = SSB_FLASH2; 
     86+               bus->chipco.pflash.window_size = SSB_FLASH2_SZ; 
     87                if ((ssb_read32(bus->chipco.dev, SSB_CHIPCO_FLASH_CFG) 
     88-                              & SSB_CHIPCO_CFG_DS16) == 0) 
     89-                       mcore->flash_buswidth = 1; 
     90-       } else { 
     91-               mcore->flash_window = 0x1fc00000; 
     92-               mcore->flash_window_size = 0x00400000; 
     93+                    & SSB_CHIPCO_CFG_DS16) == 0) 
     94+                       bus->chipco.pflash.buswidth = 1; 
     95+               else 
     96+                       bus->chipco.pflash.buswidth = 2; 
     97+               break; 
    9298+       default: 
    9399+               pr_err("flash not supported.\n"); 
Note: See TracChangeset for help on using the changeset viewer.