[brcm47xx]: update fix-boot patch.
[openwrt.git] / target / linux / brcm47xx / patches-3.3 / 024-brcm47xx-add-common-interface-for-sflash.patch
index 9839ef8f4094dbb43c6cafe8a18212b3e37da851..fd4befcfae7aa7b2c73f58d6b238073478763c15 100644 (file)
@@ -4,12 +4,12 @@
  # under Linux.
  #
  
--obj-y                                 += gpio.o irq.o nvram.o prom.o serial.o setup.o time.o
-+obj-y                                 += gpio.o irq.o nvram.o prom.o serial.o setup.o time.o bus.o
+-obj-y                                 += gpio.o irq.o nvram.o prom.o serial.o setup.o time.o sprom.o
++obj-y                                 += gpio.o irq.o nvram.o prom.o serial.o setup.o time.o sprom.o bus.o
  obj-$(CONFIG_BCM47XX_SSB)     += wgt634u.o
 --- /dev/null
 +++ b/arch/mips/bcm47xx/bus.c
-@@ -0,0 +1,82 @@
+@@ -0,0 +1,86 @@
 +/*
 + * BCM947xx nvram variable access
 + *
@@ -23,6 +23,7 @@
 +
 +#include <bus.h>
 +
++#ifdef CONFIG_BCM47XX_BCMA
 +static int bcm47xx_sflash_bcma_read(struct bcm47xx_sflash *dev, u32 offset, u32 len, u8 *buf)
 +{
 +      return bcma_sflash_read(dev->bcc, offset, len, buf);
@@ -57,7 +58,9 @@
 +      sflash->numblocks = bcc->sflash.numblocks;
 +      sflash->size = bcc->sflash.size;
 +}
++#endif
 +
++#ifdef CONFIG_BCM47XX_SSB
 +static int bcm47xx_sflash_ssb_read(struct bcm47xx_sflash *dev, u32 offset, u32 len, u8 *buf)
 +{
 +      return ssb_sflash_read(dev->scc, offset, len, buf);
@@ -92,6 +95,7 @@
 +      sflash->numblocks = scc->sflash.numblocks;
 +      sflash->size = scc->sflash.size;
 +}
++#endif
 --- a/arch/mips/bcm47xx/setup.c
 +++ b/arch/mips/bcm47xx/setup.c
 @@ -43,6 +43,8 @@ EXPORT_SYMBOL(bcm47xx_bus);
  static void bcm47xx_machine_restart(char *command)
  {
        printk(KERN_ALERT "Please stand by while rebooting the system...\n");
-@@ -291,6 +293,9 @@ static void __init bcm47xx_register_ssb(
+@@ -137,6 +139,9 @@ static void __init bcm47xx_register_ssb(
        if (err)
                panic("Failed to initialize SSB bus (err %d)", err);
  
        mcore = &bcm47xx_bus.ssb.mipscore;
        if (nvram_getenv("kernel_args", buf, sizeof(buf)) >= 0) {
                if (strstr(buf, "console=ttyS1")) {
-@@ -315,6 +320,9 @@ static void __init bcm47xx_register_bcma
-       err = bcma_host_soc_register(&bcm47xx_bus.bcma);
+@@ -195,6 +200,9 @@ static void __init bcm47xx_register_bcma
        if (err)
                panic("Failed to initialize BCMA bus (err %d)", err);
-+
 +      if (bcm47xx_bus.bcma.bus.drv_cc.flash_type == BCMA_SFLASH)
 +              bcm47xx_sflash_struct_bcma_init(&bcm47xx_sflash, &bcm47xx_bus.bcma.bus.drv_cc);
++
+       bcm47xx_fill_bcma_boardinfo(&bcm47xx_bus.bcma.bus.boardinfo, NULL);
  }
  #endif
 --- /dev/null
 +++ b/arch/mips/include/asm/mach-bcm47xx/bus.h
 @@ -0,0 +1,36 @@