[brcm63xx] fix bisectability of patch 303-spi-board-info.patch
[openwrt.git] / target / linux / brcm63xx / patches-3.3 / 501-board-NB4.patch
index 0ac69f156703defa3c9a16e976a4e3976558cbe3..8a4d3928d8cb2345f695f58963f58e73d8f00a78 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -17,6 +17,9 @@
+@@ -14,6 +14,9 @@
  #include <linux/ssb/ssb.h>
  #include <linux/gpio_keys.h>
  #include <linux/input.h>
@@ -10,7 +10,7 @@
  #include <asm/addrspace.h>
  #include <bcm63xx_board.h>
  #include <bcm63xx_cpu.h>
-@@ -38,6 +41,12 @@
+@@ -42,6 +45,12 @@
  #define CFE_OFFSET_64K                0x10000
  #define CFE_OFFSET_128K               0x20000
  
 +#define NB4_SPI_GPIO_CLK      6
 +#define NB4_74HC64_GPIO(X)    (NB4_74X164_GPIO_BASE + (X))
 +
- static struct bcm963xx_nvram nvram;
- static unsigned int mac_addr_used;
  static struct board_info board;
-@@ -664,6 +673,496 @@ static struct board_info __initdata boar
+ /*
+@@ -666,6 +675,496 @@ static struct board_info __initdata boar
  
        .has_ohci0                      = 1,
  };
 +                      .gpio           = 34,
 +                      .type           = EV_KEY,
 +                      .code           = KEY_RESTART,
-+                      .debounce_interval = 60,
++                      .debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
 +              },
 +              {
 +                      .desc           = "wps",
 +                      .gpio           = 37,
 +                      .type           = EV_KEY,
 +                      .code           = KEY_WPS_BUTTON,
-+                      .debounce_interval = 60,
++                      .debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
 +              },
 +      },
 +      .devs = nb4_devices,
 +                      .gpio           = 34,
 +                      .type           = EV_KEY,
 +                      .code           = KEY_RESTART,
-+                      .debounce_interval = 60,
++                      .debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
 +              },
 +              {
 +                      .desc           = "wps",
 +                      .gpio           = 37,
 +                      .type           = EV_KEY,
 +                      .code           = KEY_WPS_BUTTON,
-+                      .debounce_interval = 60,
++                      .debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
 +              },
 +      },
 +      .devs = nb4_devices,
 +                      .gpio           = 34,
 +                      .type           = EV_KEY,
 +                      .code           = KEY_RESTART,
-+                      .debounce_interval = 60,
++                      .debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
 +              },
 +              {
 +                      .desc           = "wps",
 +                      .gpio           = 37,
 +                      .type           = EV_KEY,
 +                      .code           = KEY_WPS_BUTTON,
-+                      .debounce_interval = 60,
++                      .debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
 +              },
 +      },
 +      .devs = nb4_devices,
 +                      .gpio           = 34,
 +                      .type           = EV_KEY,
 +                      .code           = KEY_RESTART,
-+                      .debounce_interval = 60,
++                      .debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
 +              },
 +              {
 +                      .desc           = "wps",
 +                      .gpio           = 37,
 +                      .type           = EV_KEY,
 +                      .code           = KEY_WPS_BUTTON,
-+                      .debounce_interval = 60,
++                      .debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
 +              },
 +      },
 +      .devs = nb4_devices,
 +                      .gpio           = 34,
 +                      .type           = EV_KEY,
 +                      .code           = KEY_RESTART,
-+                      .debounce_interval = 60,
++                      .debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
 +              },
 +              {
 +                      .desc           = "wps",
 +                      .gpio           = 37,
 +                      .type           = EV_KEY,
 +                      .code           = KEY_WPS_BUTTON,
-+                      .debounce_interval = 60,
++                      .debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
 +              },
 +      },
 +      .devs = nb4_devices,
  #endif
  
  /*
-@@ -694,9 +1193,30 @@ static const struct board_info __initdat
+@@ -696,9 +1195,31 @@ static const struct board_info __initdat
        &board_96358vw2,
        &board_AGPFS0,
        &board_DWVS0,
 +{
 +      u8 *boot_addr, *p;
 +      u32 val;
++      char *board_name = (char *)bcm63xx_nvram_get_name();
 +
-+      if (BCMCPU_IS_6358() && (!strcmp(nvram.name, "96358VW"))) {
++      if (BCMCPU_IS_6358() && (!strcmp(board_name, "96358VW"))) {
 +              val = bcm_mpi_readl(MPI_CSBASE_REG(0));
 +              val &= MPI_CSBASE_BASE_MASK;
 +              boot_addr = (u8 *)KSEG1ADDR(val);
 +              /* Extract nb4 PID */
 +              p = boot_addr + NB4_PID_OFFSET;
 +              if (!memcmp(p, "NB4-", 4))
-+                      memcpy(nvram.name, p, sizeof("NB4-XXX-rX"));
++                      memcpy(board_name, p, sizeof("NB4-XXX-rX"));
 +      }
 +}
 +
  /*
   * Register a sane SPROMv2 to make the on-board
   * bcm4318 WLAN work
-@@ -847,6 +1367,9 @@ void __init board_prom_init(void)
+@@ -807,6 +1328,9 @@ void __init board_prom_init(void)
                boardid_fixup(boot_addr);
        }
  
 +      /* Fixup broken nb4 board name */
 +      nb4_nvram_fixup();
 +
+       board_name = bcm63xx_nvram_get_name();
        /* find board by name */
        for (i = 0; i < ARRAY_SIZE(bcm963xx_boards); i++) {
-               if (strncmp(nvram.name, bcm963xx_boards[i]->name,