bcm63xx: Add a fixup for rt2x00 devices.
authorJonas Gorski <jogo@openwrt.org>
Sat, 24 Nov 2012 14:19:22 +0000 (14:19 +0000)
committerJonas Gorski <jogo@openwrt.org>
Sat, 24 Nov 2012 14:19:22 +0000 (14:19 +0000)
This patch adds support for defining rt2x00 eeprom data.
This eeprom data can be extracted from flash or loaded directly from a firmware file.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
SVN-Revision: 34322

75 files changed:
target/linux/brcm63xx/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom [new file with mode: 0644]
target/linux/brcm63xx/patches-3.3/446-BCM63XX-add-a-fixup-for-rt2x00-devices.patch [new file with mode: 0644]
target/linux/brcm63xx/patches-3.3/500-board-D4PW.patch
target/linux/brcm63xx/patches-3.3/501-board-NB4.patch
target/linux/brcm63xx/patches-3.3/502-board-96338W2_E7T.patch
target/linux/brcm63xx/patches-3.3/503-board-CPVA642.patch
target/linux/brcm63xx/patches-3.3/504-board_dsl_274xb_rev_c.patch
target/linux/brcm63xx/patches-3.3/505-board_spw500v.patch
target/linux/brcm63xx/patches-3.3/506-board_gw6200_gw6000.patch
target/linux/brcm63xx/patches-3.3/507-board-MAGIC.patch
target/linux/brcm63xx/patches-3.3/508-board_hw553.patch
target/linux/brcm63xx/patches-3.3/509-board_rta1320_16m.patch
target/linux/brcm63xx/patches-3.3/510-board_spw303v.patch
target/linux/brcm63xx/patches-3.3/511-board_V2500V.patch
target/linux/brcm63xx/patches-3.3/512-board_BTV2110.patch
target/linux/brcm63xx/patches-3.3/514-board_ct536_ct5621.patch
target/linux/brcm63xx/patches-3.3/515-board_DWV-S0_fixes.patch
target/linux/brcm63xx/patches-3.3/516-board_96348A-122.patch
target/linux/brcm63xx/patches-3.3/517-RTA1205W_16_uart_fixes.patch
target/linux/brcm63xx/patches-3.3/519_board_CPVA502plus.patch
target/linux/brcm63xx/patches-3.3/520-bcm63xx-add-support-for-96368MVWG-board.patch
target/linux/brcm63xx/patches-3.3/521-bcm63xx-add-support-for-96368MVNgr-board.patch
target/linux/brcm63xx/patches-3.3/522-MIPS-BCM63XX-add-96328avng-reference-board.patch
target/linux/brcm63xx/patches-3.3/523-MIPS-BCM63XX-add-963281TAN-reference-board.patch
target/linux/brcm63xx/patches-3.3/524-board_dsl_274xb_rev_f.patch
target/linux/brcm63xx/patches-3.3/525-board_96348w3.patch
target/linux/brcm63xx/patches-3.3/526-board_CT6373-1.patch
target/linux/brcm63xx/patches-3.3/527-board_dva-g3810bn-tl-1.patch
target/linux/brcm63xx/patches-3.3/528-board_nb6.patch
target/linux/brcm63xx/patches-3.3/529-board_fast2604.patch
target/linux/brcm63xx/patches-3.3/530-board_963281T_TEF.patch
target/linux/brcm63xx/patches-3.3/531-board_96328A-1441N1.patch
target/linux/brcm63xx/patches-3.3/532-board_96328a-1241N.patch
target/linux/brcm63xx/patches-3.3/550-alice_gate2_leds.patch
target/linux/brcm63xx/patches-3.3/551-96348gw_a_leds.patch
target/linux/brcm63xx/patches-3.3/552-board_96348gw-10_reset_button.patch
target/linux/brcm63xx/patches-3.3/553-board_rta770bw.patch
target/linux/brcm63xx/patches-3.3/801-ssb_export_fallback_sprom.patch
target/linux/brcm63xx/patches-3.6/446-BCM63XX-add-a-fixup-for-rt2x00-devices.patch [new file with mode: 0644]
target/linux/brcm63xx/patches-3.6/500-board-D4PW.patch
target/linux/brcm63xx/patches-3.6/501-board-NB4.patch
target/linux/brcm63xx/patches-3.6/502-board-96338W2_E7T.patch
target/linux/brcm63xx/patches-3.6/503-board-CPVA642.patch
target/linux/brcm63xx/patches-3.6/504-board_dsl_274xb_rev_c.patch
target/linux/brcm63xx/patches-3.6/505-board_spw500v.patch
target/linux/brcm63xx/patches-3.6/506-board_gw6200_gw6000.patch
target/linux/brcm63xx/patches-3.6/507-board-MAGIC.patch
target/linux/brcm63xx/patches-3.6/508-board_hw553.patch
target/linux/brcm63xx/patches-3.6/509-board_rta1320_16m.patch
target/linux/brcm63xx/patches-3.6/510-board_spw303v.patch
target/linux/brcm63xx/patches-3.6/511-board_V2500V.patch
target/linux/brcm63xx/patches-3.6/512-board_BTV2110.patch
target/linux/brcm63xx/patches-3.6/514-board_ct536_ct5621.patch
target/linux/brcm63xx/patches-3.6/515-board_DWV-S0_fixes.patch
target/linux/brcm63xx/patches-3.6/516-board_96348A-122.patch
target/linux/brcm63xx/patches-3.6/517-RTA1205W_16_uart_fixes.patch
target/linux/brcm63xx/patches-3.6/519_board_CPVA502plus.patch
target/linux/brcm63xx/patches-3.6/520-bcm63xx-add-support-for-96368MVWG-board.patch
target/linux/brcm63xx/patches-3.6/521-bcm63xx-add-support-for-96368MVNgr-board.patch
target/linux/brcm63xx/patches-3.6/522-MIPS-BCM63XX-add-96328avng-reference-board.patch
target/linux/brcm63xx/patches-3.6/523-MIPS-BCM63XX-add-963281TAN-reference-board.patch
target/linux/brcm63xx/patches-3.6/524-board_dsl_274xb_rev_f.patch
target/linux/brcm63xx/patches-3.6/525-board_96348w3.patch
target/linux/brcm63xx/patches-3.6/526-board_CT6373-1.patch
target/linux/brcm63xx/patches-3.6/527-board_dva-g3810bn-tl-1.patch
target/linux/brcm63xx/patches-3.6/528-board_nb6.patch
target/linux/brcm63xx/patches-3.6/529-board_fast2604.patch
target/linux/brcm63xx/patches-3.6/530-board_963281T_TEF.patch
target/linux/brcm63xx/patches-3.6/531-board_96328A-1441N1.patch
target/linux/brcm63xx/patches-3.6/532-board_96328a-1241N.patch
target/linux/brcm63xx/patches-3.6/550-alice_gate2_leds.patch
target/linux/brcm63xx/patches-3.6/551-96348gw_a_leds.patch
target/linux/brcm63xx/patches-3.6/552-board_96348gw-10_reset_button.patch
target/linux/brcm63xx/patches-3.6/553-board_rta770bw.patch
target/linux/brcm63xx/patches-3.6/801-ssb_export_fallback_sprom.patch

diff --git a/target/linux/brcm63xx/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom b/target/linux/brcm63xx/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
new file mode 100644 (file)
index 0000000..46be9d3
--- /dev/null
@@ -0,0 +1,39 @@
+#!/bin/sh
+# Based on gabors ralink wisoc implementation.
+
+rt2x00_eeprom_die() {
+       echo "rt2x00 eeprom: " "$*"
+       exit 1
+}
+
+rt2x00_eeprom_extract() {
+       local part=$1
+       local offset=$2
+       local count=$3
+       local mtd
+
+       . /etc/functions.sh
+
+       mtd=$(find_mtd_part $part)
+       [ -n "$mtd" ] || \
+               rt2x00_eeprom_die "no mtd device found for partition $part"
+
+       dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count || \
+               rt2x00_eeprom_die "failed to extract from $mtd"
+}
+
+[ -e /lib/firmware/$FIRMWARE ] && exit 0
+
+. /lib/brcm63xx.sh
+
+board=$board_name
+
+case "$FIRMWARE" in
+"RT3062.eeprom" )
+       case $board in
+       *)
+               rt2x00_eeprom_die "board $board is not supported yet"
+               ;;
+       esac
+       ;;
+esac
diff --git a/target/linux/brcm63xx/patches-3.3/446-BCM63XX-add-a-fixup-for-rt2x00-devices.patch b/target/linux/brcm63xx/patches-3.3/446-BCM63XX-add-a-fixup-for-rt2x00-devices.patch
new file mode 100644 (file)
index 0000000..acda590
--- /dev/null
@@ -0,0 +1,188 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -34,6 +34,7 @@
+ #include <board_bcm963xx.h>
+ #include <linux/bcm963xx_tag.h>
+ #include <pci_ath9k_fixup.h>
++#include <pci_rt2x00_fixup.h>
+ #define PFX   "board_bcm963xx: "
+@@ -937,9 +938,19 @@ int __init board_register_devices(void)
+       }
+       /* register any fixups */
+-      for (i = 0; i < board.has_caldata; i++)
+-              pci_enable_ath9k_fixup(board.caldata[i].slot, board.caldata[i].caldata_offset,
+-                      board.caldata[i].endian_check, board.caldata[i].led_pin);
++      for (i = 0; i < board.has_caldata; i++) {
++              switch (board.caldata[i].vendor) {
++              case PCI_VENDOR_ID_ATHEROS:
++                      pci_enable_ath9k_fixup(board.caldata[i].slot,
++                              board.caldata[i].caldata_offset, board.caldata[i].endian_check,
++                              board.caldata[i].led_pin);
++                      break;
++              case PCI_VENDOR_ID_RALINK:
++                      pci_enable_rt2x00_fixup(board.caldata[i].slot,
++                              board.caldata[i].eeprom);
++                      break;
++              }
++      }
+       return 0;
+ }
+--- a/arch/mips/bcm63xx/dev-flash.c
++++ b/arch/mips/bcm63xx/dev-flash.c
+@@ -146,7 +146,7 @@ static int __init bcm63xx_detect_flash_t
+       return 0;
+ }
+-int __init bcm63xx_flash_register(int num_caldata, struct ath9k_caldata *caldata)
++int __init bcm63xx_flash_register(int num_caldata, struct bcm63xx_caldata *caldata)
+ {
+       u32 val;
+       unsigned int i;
+--- a/arch/mips/bcm63xx/Makefile
++++ b/arch/mips/bcm63xx/Makefile
+@@ -1,7 +1,8 @@
+ obj-y         += clk.o cpu.o cs.o gpio.o irq.o nvram.o prom.o setup.o \
+                  timer.o dev-dsp.o dev-enet.o dev-flash.o dev-hsspi.o \
+                  dev-pcmcia.o dev-rng.o dev-spi.o dev-uart.o dev-usb-ehci.o \
+-                 dev-usb-ohci.o dev-wdt.o pci-ath9k-fixup.o
++                 dev-usb-ohci.o dev-wdt.o pci-ath9k-fixup.o \
++                 pci-rt2x00-fixup.o
+ obj-$(CONFIG_EARLY_PRINTK)    += early_printk.o
+ obj-y         += boards/
+--- /dev/null
++++ b/arch/mips/bcm63xx/pci-rt2x00-fixup.c
+@@ -0,0 +1,71 @@
++/*
++ *  Broadcom BCM63XX RT2x00 EEPROM fixup helper.
++ *
++ *  Copyright (C) 2012 Álvaro Fernández Rojas <noltari@gmail.com>
++ *
++ *  Based on
++ *
++ *  Broadcom BCM63XX Ath9k EEPROM fixup helper.
++ *
++ *  Copyright (C) 2012 Jonas Gorski <jonas.gorski@gmail.com>
++ *
++ *  This program is free software; you can redistribute it and/or modify it
++ *  under the terms of the GNU General Public License version 2 as published
++ *  by the Free Software Foundation.
++ */
++
++#include <linux/pci.h>
++#include <linux/platform_device.h>
++#include <linux/rt2x00_platform.h>
++
++#include <bcm63xx_nvram.h>
++#include <pci_rt2x00_fixup.h>
++
++struct rt2x00_fixup {
++      unsigned slot;
++      u8 mac[ETH_ALEN];
++      struct rt2x00_platform_data pdata;
++};
++
++static int rt2x00_num_fixups;
++static struct rt2x00_fixup rt2x00_fixups[2] = {
++      {
++              .slot = 255,
++      },
++      {
++              .slot = 255,
++      },
++};
++
++static void rt2x00_pci_fixup(struct pci_dev *dev)
++{
++      unsigned i;
++      struct rt2x00_platform_data *pdata = NULL;
++
++      for (i = 0; i < rt2x00_num_fixups; i++) {
++              if (rt2x00_fixups[i].slot != PCI_SLOT(dev->devfn))
++                      continue;
++
++              pdata = &rt2x00_fixups[i].pdata;
++              break;
++      }
++
++      dev->dev.platform_data = pdata;
++}
++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_RALINK, PCI_ANY_ID, rt2x00_pci_fixup);
++
++void __init pci_enable_rt2x00_fixup(unsigned slot, char* eeprom)
++{
++      if (rt2x00_num_fixups >= ARRAY_SIZE(rt2x00_fixups))
++              return;
++
++      rt2x00_fixups[rt2x00_num_fixups].slot = slot;
++      rt2x00_fixups[rt2x00_num_fixups].pdata.eeprom_file_name = kstrdup(eeprom, GFP_KERNEL);
++
++      if (bcm63xx_nvram_get_mac_address(rt2x00_fixups[rt2x00_num_fixups].mac))
++              return;
++
++      rt2x00_fixups[rt2x00_num_fixups].pdata.mac_address = rt2x00_fixups[rt2x00_num_fixups].mac;
++      rt2x00_num_fixups++;
++}
++
+--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h
++++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h
+@@ -11,6 +11,6 @@ enum {
+ extern int bcm63xx_attached_flash;
+-int __init bcm63xx_flash_register(int num_caldata, struct ath9k_caldata *caldata);
++int __init bcm63xx_flash_register(int num_caldata, struct bcm63xx_caldata *caldata);
+ #endif /* __BCM63XX_FLASH_H */
+--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
++++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
+@@ -8,6 +8,7 @@
+ #include <bcm63xx_dev_enet.h>
+ #include <bcm63xx_dev_dsp.h>
+ #include <pci_ath9k_fixup.h>
++#include <pci_rt2x00_fixup.h>
+ /*
+  * flash mapping
+@@ -15,11 +16,15 @@
+ #define BCM963XX_CFE_VERSION_OFFSET   0x570
+ #define BCM963XX_NVRAM_OFFSET         0x580
+-struct ath9k_caldata {
++struct bcm63xx_caldata {
++      unsigned int    vendor;
+       unsigned int    slot;
+       u32             caldata_offset;
++      /* Atheros */
+       unsigned int    endian_check:1;
+       int             led_pin;
++      /* Ralink */
++      char*           eeprom;
+ };
+ /*
+@@ -43,7 +48,7 @@ struct board_info {
+       unsigned int    has_caldata:2;
+       /* wifi calibration data config */
+-      struct ath9k_caldata caldata[2];
++      struct bcm63xx_caldata caldata[2];
+       /* ethernet config */
+       struct bcm63xx_enet_platform_data enet0;
+--- /dev/null
++++ b/arch/mips/include/asm/mach-bcm63xx/pci_rt2x00_fixup.h
+@@ -0,0 +1,9 @@
++#ifndef _PCI_RT2X00_FIXUP
++#define _PCI_RT2X00_FIXUP
++
++#define PCI_VENDOR_ID_RALINK 0x1814
++
++void pci_enable_rt2x00_fixup(unsigned slot, char* eeprom) __init;
++
++#endif /* _PCI_RT2X00_FIXUP */
++
index d3d35d7..278f426 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -469,6 +469,54 @@ static struct board_info __initdata boar
+@@ -470,6 +470,54 @@ static struct board_info __initdata boar
  
        .has_ohci0 = 1,
  };
@@ -55,7 +55,7 @@
  #endif
  
  /*
-@@ -640,6 +688,7 @@ static const struct board_info __initdat
+@@ -641,6 +689,7 @@ static const struct board_info __initdat
        &board_DV201AMR,
        &board_96348gw_a,
        &board_rta1025w_16,
index 0f4c26a..61fc793 100644 (file)
@@ -9,7 +9,7 @@
  #include <asm/addrspace.h>
  #include <bcm63xx_board.h>
  #include <bcm63xx_cpu.h>
-@@ -43,6 +45,12 @@
+@@ -44,6 +46,12 @@
  #define CFE_OFFSET_64K                0x10000
  #define CFE_OFFSET_128K               0x20000
  
@@ -22,7 +22,7 @@
  static struct board_info board;
  
  /*
-@@ -666,6 +674,586 @@ static struct board_info __initdata boar
+@@ -667,6 +675,586 @@ static struct board_info __initdata boar
  
        .has_ohci0                      = 1,
  };
  #endif
  
  /*
-@@ -696,6 +1284,11 @@ static const struct board_info __initdat
+@@ -697,6 +1285,11 @@ static const struct board_info __initdat
        &board_96358vw2,
        &board_AGPFS0,
        &board_DWVS0,
  #endif
  };
  
-@@ -750,6 +1343,16 @@ static void __init boardid_fixup(u8 *boo
+@@ -751,6 +1344,16 @@ static void __init boardid_fixup(u8 *boo
        struct bcm_tag *tag = (struct bcm_tag *)(boot_addr + CFE_OFFSET_64K);
        char *board_name = (char *)bcm63xx_nvram_get_name();
  
index 12c7ac4..e5a5a13 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -140,6 +140,38 @@ static struct board_info __initdata boar
+@@ -141,6 +141,38 @@ static struct board_info __initdata boar
                },
        },
  };
@@ -39,7 +39,7 @@
  #endif
  
  /*
-@@ -1263,6 +1295,7 @@ static const struct board_info __initdat
+@@ -1264,6 +1296,7 @@ static const struct board_info __initdat
  #ifdef CONFIG_BCM63XX_CPU_6338
        &board_96338gw,
        &board_96338w,
index 98c9375..1b88865 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -663,6 +663,96 @@ static struct board_info __initdata boar
+@@ -664,6 +664,96 @@ static struct board_info __initdata boar
        },
  };
  
@@ -97,7 +97,7 @@
  static struct board_info __initdata board_AGPFS0 = {
        .name                           = "AGPF-S0",
        .expected_cpu_id                = 0x6358,
-@@ -1316,6 +1406,7 @@ static const struct board_info __initdat
+@@ -1317,6 +1407,7 @@ static const struct board_info __initdat
        &board_96358vw,
        &board_96358vw2,
        &board_AGPFS0,
index ea8ba59..0384738 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -797,6 +797,59 @@ static struct board_info __initdata boar
+@@ -798,6 +798,59 @@ static struct board_info __initdata boar
        .has_ohci0                      = 1,
  };
  
@@ -60,7 +60,7 @@
  struct spi_gpio_platform_data nb4_spi_gpio_data = {
        .sck            = NB4_SPI_GPIO_CLK,
        .mosi           = NB4_SPI_GPIO_MOSI,
-@@ -1408,6 +1461,7 @@ static const struct board_info __initdat
+@@ -1409,6 +1462,7 @@ static const struct board_info __initdat
        &board_AGPFS0,
        &board_CPVA642,
        &board_DWVS0,
index 584efd1..cea3730 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -557,6 +557,67 @@ static struct board_info __initdata boar
+@@ -558,6 +558,67 @@ static struct board_info __initdata boar
                },
        },
  };
@@ -68,7 +68,7 @@
  #endif
  
  /*
-@@ -1453,6 +1514,7 @@ static const struct board_info __initdat
+@@ -1454,6 +1515,7 @@ static const struct board_info __initdat
        &board_96348gw_a,
        &board_rta1025w_16,
        &board_96348_D4PW,
index 78e06d8..7b90e29 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -426,6 +426,112 @@ static struct board_info __initdata boar
+@@ -427,6 +427,112 @@ static struct board_info __initdata boar
        },
  };
  
  static struct board_info __initdata board_FAST2404 = {
        .name                           = "F@ST2404",
        .expected_cpu_id                = 0x6348,
-@@ -1507,6 +1613,8 @@ static const struct board_info __initdat
+@@ -1508,6 +1614,8 @@ static const struct board_info __initdat
  #ifdef CONFIG_BCM63XX_CPU_6348
        &board_96348r,
        &board_96348gw,
index 7b96f32..cdde026 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -724,6 +724,76 @@ static struct board_info __initdata boar
+@@ -725,6 +725,76 @@ static struct board_info __initdata boar
                },
        },
  };
@@ -77,7 +77,7 @@
  #endif
  
  /*
-@@ -1623,6 +1693,7 @@ static const struct board_info __initdat
+@@ -1624,6 +1694,7 @@ static const struct board_info __initdat
        &board_rta1025w_16,
        &board_96348_D4PW,
        &board_spw500v,
index dc9a744..9b2d34d 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1666,6 +1666,80 @@ static struct board_info __initdata boar
+@@ -1667,6 +1667,80 @@ static struct board_info __initdata boar
        .spis = nb4_spi_devices,
        .num_spis = ARRAY_SIZE(nb4_spi_devices),
  };
@@ -81,7 +81,7 @@
  #endif
  
  /*
-@@ -1708,6 +1782,7 @@ static const struct board_info __initdat
+@@ -1709,6 +1783,7 @@ static const struct board_info __initdat
        &board_nb4_ser_r2,
        &board_nb4_fxc_r1,
        &board_nb4_fxc_r2,
index 11c0903..9301e14 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -172,6 +172,43 @@ static struct board_info __initdata boar
+@@ -173,6 +173,43 @@ static struct board_info __initdata boar
                },
        },
  };
@@ -44,7 +44,7 @@
  #endif
  
  /*
-@@ -1750,6 +1787,7 @@ static const struct board_info __initdat
+@@ -1751,6 +1788,7 @@ static const struct board_info __initdat
        &board_96338gw,
        &board_96338w,
        &board_96338w2_e7t,
index 2ff60a4..6ec55a5 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1777,6 +1777,72 @@ static struct board_info __initdata boar
+@@ -1778,6 +1778,72 @@ static struct board_info __initdata boar
                },
        },
  };
@@ -73,7 +73,7 @@
  #endif
  
  /*
-@@ -1821,6 +1887,7 @@ static const struct board_info __initdat
+@@ -1822,6 +1888,7 @@ static const struct board_info __initdat
        &board_nb4_fxc_r1,
        &board_nb4_fxc_r2,
        &board_HW553,
index ff52497..86b7fe1 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -831,6 +831,63 @@ static struct board_info __initdata boar
+@@ -832,6 +832,63 @@ static struct board_info __initdata boar
                },
        },
  };
@@ -64,7 +64,7 @@
  #endif
  
  /*
-@@ -1872,6 +1929,7 @@ static const struct board_info __initdat
+@@ -1873,6 +1930,7 @@ static const struct board_info __initdat
        &board_96348_D4PW,
        &board_spw500v,
        &board_96348sv,
@@ -72,7 +72,7 @@
  #endif
  
  #ifdef CONFIG_BCM63XX_CPU_6358
-@@ -1992,6 +2050,23 @@ void __init board_prom_init(void)
+@@ -1993,6 +2051,23 @@ void __init board_prom_init(void)
                val &= MPI_CSBASE_BASE_MASK;
        }
        boot_addr = (u8 *)KSEG1ADDR(val);
index 03d9b41..a123e24 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -395,6 +395,62 @@ static struct board_info __initdata boar
+@@ -396,6 +396,62 @@ static struct board_info __initdata boar
        },
  };
  
@@ -63,7 +63,7 @@
  static struct board_info __initdata board_96348gw = {
        .name                           = "96348GW",
        .expected_cpu_id                = 0x6348,
-@@ -1930,6 +1986,7 @@ static const struct board_info __initdat
+@@ -1931,6 +1987,7 @@ static const struct board_info __initdat
        &board_spw500v,
        &board_96348sv,
        &board_V2500V_BB,
index 41e37c8..43a5a49 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -451,6 +451,49 @@ static struct board_info __initdata boar
+@@ -452,6 +452,49 @@ static struct board_info __initdata boar
  };
  
  
@@ -50,7 +50,7 @@
  static struct board_info __initdata board_96348gw = {
        .name                           = "96348GW",
        .expected_cpu_id                = 0x6348,
-@@ -1987,6 +2030,7 @@ static const struct board_info __initdat
+@@ -1988,6 +2031,7 @@ static const struct board_info __initdat
        &board_96348sv,
        &board_V2500V_BB,
        &board_V2110,
index 22d7a18..9c73e91 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1210,6 +1210,8 @@ static struct board_info __initdata boar
+@@ -1211,6 +1211,8 @@ static struct board_info __initdata boar
        .name                           = "DWV-S0",
        .expected_cpu_id                = 0x6358,
  
@@ -9,7 +9,7 @@
        .has_enet0                      = 1,
        .has_enet1                      = 1,
        .has_pci                        = 1,
-@@ -1225,6 +1227,7 @@ static struct board_info __initdata boar
+@@ -1226,6 +1228,7 @@ static struct board_info __initdata boar
        },
  
        .has_ohci0                      = 1,
index dbc9aeb..f3a9bfc 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -494,6 +494,67 @@ static struct board_info __initdata boar
+@@ -495,6 +495,67 @@ static struct board_info __initdata boar
        },
  };
  
@@ -68,7 +68,7 @@
  static struct board_info __initdata board_96348gw = {
        .name                           = "96348GW",
        .expected_cpu_id                = 0x6348,
-@@ -2034,6 +2095,7 @@ static const struct board_info __initdat
+@@ -2035,6 +2096,7 @@ static const struct board_info __initdat
        &board_V2500V_BB,
        &board_V2110,
        &board_ct536_ct5621,
index 63eccd2..95082c8 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -757,6 +757,7 @@ static struct board_info __initdata boar
+@@ -758,6 +758,7 @@ static struct board_info __initdata boar
        .name                           = "RTA1025W_16",
        .expected_cpu_id                = 0x6348,
  
index 07adb37..3da5602 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1049,6 +1049,44 @@ static struct board_info __initdata boar
+@@ -1050,6 +1050,44 @@ static struct board_info __initdata boar
                },
        },
  };
@@ -45,7 +45,7 @@
  #endif
  
  /*
-@@ -2097,6 +2135,7 @@ static const struct board_info __initdat
+@@ -2098,6 +2136,7 @@ static const struct board_info __initdat
        &board_V2110,
        &board_ct536_ct5621,
        &board_96348A_122,
index f2e5dba..2e315e5 100644 (file)
@@ -10,7 +10,7 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
 
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2105,6 +2105,78 @@ static struct board_info __initdata boar
+@@ -2106,6 +2106,78 @@ static struct board_info __initdata boar
  #endif
  
  /*
@@ -89,7 +89,7 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
   * all boards
   */
  static const struct board_info __initdata *bcm963xx_boards[] = {
-@@ -2153,6 +2225,10 @@ static const struct board_info __initdat
+@@ -2154,6 +2226,10 @@ static const struct board_info __initdat
        &board_HW553,
        &board_spw303v,
  #endif
@@ -100,7 +100,7 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
  };
  
  /*
-@@ -2324,12 +2400,25 @@ void __init board_prom_init(void)
+@@ -2325,12 +2401,25 @@ void __init board_prom_init(void)
                bcm63xx_pci_enabled = 1;
                if (BCMCPU_IS_6348())
                        val |= GPIO_MODE_6348_G2_PCI;
index 8ddc6db..45f3b0b 100644 (file)
@@ -9,7 +9,7 @@ Subject: [PATCH 33/63] bcm63xx: add support for 96368MVNgr board.
 
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2174,6 +2174,72 @@ static struct board_info __initdata boar
+@@ -2175,6 +2175,72 @@ static struct board_info __initdata boar
        .has_ohci0 = 1,
        .has_ehci0 = 1,
  };
@@ -82,7 +82,7 @@ Subject: [PATCH 33/63] bcm63xx: add support for 96368MVNgr board.
  #endif
  
  /*
-@@ -2228,6 +2294,7 @@ static const struct board_info __initdat
+@@ -2229,6 +2295,7 @@ static const struct board_info __initdat
  
  #ifdef CONFIG_BCM63XX_CPU_6368
        &board_96368mvwg,
index 59c6fe2..8828ac1 100644 (file)
@@ -9,7 +9,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 96328avng reference board
 
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -54,6 +54,80 @@
+@@ -55,6 +55,80 @@
  static struct board_info board;
  
  /*
@@ -90,7 +90,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 96328avng reference board
   * known 6338 boards
   */
  #ifdef CONFIG_BCM63XX_CPU_6338
-@@ -2246,6 +2320,9 @@ static struct board_info __initdata boar
+@@ -2247,6 +2321,9 @@ static struct board_info __initdata boar
   * all boards
   */
  static const struct board_info __initdata *bcm963xx_boards[] = {
index 1b5d369..e3bc61e 100644 (file)
@@ -9,7 +9,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 963281TAN reference board
 
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -125,6 +125,76 @@ static struct board_info __initdata boar
+@@ -126,6 +126,76 @@ static struct board_info __initdata boar
                },
        },
  };
@@ -86,7 +86,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 963281TAN reference board
  #endif
  
  /*
-@@ -2322,6 +2392,7 @@ static struct board_info __initdata boar
+@@ -2323,6 +2393,7 @@ static struct board_info __initdata boar
  static const struct board_info __initdata *bcm963xx_boards[] = {
  #ifdef CONFIG_BCM63XX_CPU_6328
        &board_96328avng,
index a3b630e..ec0efca 100644 (file)
@@ -10,7 +10,7 @@ Subject: [PATCH 70/79] MIPS: BCM63XX: Add board definition for D-Link
 
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -195,6 +195,110 @@ static struct board_info __initdata boar
+@@ -196,6 +196,111 @@ static struct board_info __initdata boar
  
        },
  };
@@ -25,6 +25,7 @@ Subject: [PATCH 70/79] MIPS: BCM63XX: Add board definition for D-Link
 +      .has_caldata                    = 1,
 +      .caldata = {
 +              {
++                      .vendor         = PCI_VENDOR_ID_ATHEROS,
 +                      .caldata_offset = 0x7d1000,
 +                      .slot           = 0,
 +                      .led_pin        = -1,
@@ -121,7 +122,7 @@ Subject: [PATCH 70/79] MIPS: BCM63XX: Add board definition for D-Link
  #endif
  
  /*
-@@ -2393,6 +2497,7 @@ static const struct board_info __initdat
+@@ -2394,6 +2499,7 @@ static const struct board_info __initdat
  #ifdef CONFIG_BCM63XX_CPU_6328
        &board_96328avng,
        &board_963281TAN,
index 837b70a..2e249f0 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1335,6 +1335,57 @@ static struct board_info __initdata boar
+@@ -1337,6 +1337,57 @@ static struct board_info __initdata boar
        },
  };
  
@@ -58,7 +58,7 @@
  #endif
  
  /*
-@@ -2527,6 +2578,7 @@ static const struct board_info __initdat
+@@ -2529,6 +2580,7 @@ static const struct board_info __initdat
        &board_ct536_ct5621,
        &board_96348A_122,
        &board_CPVA502plus,
index e399cff..20ef1e5 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -51,6 +51,13 @@
+@@ -52,6 +52,13 @@
  #define NB4_SPI_GPIO_CLK      6
  #define NB4_74HC64_GPIO(X)    (NB4_74X164_GPIO_BASE + (X))
  
@@ -14,7 +14,7 @@
  static struct board_info board;
  
  /*
-@@ -2262,6 +2269,111 @@ static struct board_info __initdata boar
+@@ -2264,6 +2271,111 @@ static struct board_info __initdata boar
        .num_spis = ARRAY_SIZE(nb4_spi_devices),
  };
  
  static struct board_info __initdata board_HW553 = {
        .name                           = "HW553",
        .expected_cpu_id                = 0x6358,
-@@ -2593,6 +2705,7 @@ static const struct board_info __initdat
+@@ -2595,6 +2707,7 @@ static const struct board_info __initdat
        &board_nb4_ser_r2,
        &board_nb4_fxc_r1,
        &board_nb4_fxc_r2,
index cd9ab79..19ffc13 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2513,6 +2513,71 @@ static struct board_info __initdata boar
+@@ -2515,6 +2515,71 @@ static struct board_info __initdata boar
                },
        }
  };
@@ -72,7 +72,7 @@
  #endif
  
  /*
-@@ -2708,6 +2773,7 @@ static const struct board_info __initdat
+@@ -2710,6 +2775,7 @@ static const struct board_info __initdat
        &board_ct6373_1,
        &board_HW553,
        &board_spw303v,
index c9ff917..297759f 100644 (file)
@@ -8,7 +8,7 @@
  #include <asm/addrspace.h>
  #include <bcm63xx_board.h>
  #include <bcm63xx_cpu.h>
-@@ -50,6 +51,8 @@
+@@ -51,6 +52,8 @@
  #define NB4_SPI_GPIO_MOSI     7
  #define NB4_SPI_GPIO_CLK      6
  #define NB4_74HC64_GPIO(X)    (NB4_74X164_GPIO_BASE + (X))
@@ -17,7 +17,7 @@
  
  #define CT6373_PID_OFFSET             0xff80
  #define CT6373_74X164_GPIO_BASE       64
-@@ -2580,6 +2583,103 @@ static struct board_info __initdata boar
+@@ -2582,6 +2585,103 @@ static struct board_info __initdata boar
  };
  #endif
  
  /*
   * known 6368 boards
   */
-@@ -2776,6 +2876,10 @@ static const struct board_info __initdat
+@@ -2778,6 +2878,10 @@ static const struct board_info __initdat
        &board_DVAG3810BN,
  #endif
  
  #ifdef CONFIG_BCM63XX_CPU_6368
        &board_96368mvwg,
        &board_96368mvngr,
-@@ -2843,6 +2947,11 @@ static void __init boardid_fixup(u8 *boo
+@@ -2845,6 +2949,11 @@ static void __init boardid_fixup(u8 *boo
                }
        }
  
index f965f7b..c09e07f 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1011,6 +1011,55 @@ static struct board_info __initdata boar
+@@ -1013,6 +1013,55 @@ static struct board_info __initdata boar
        .has_ehci0                      = 1,
  };
  
@@ -56,7 +56,7 @@
  static struct board_info __initdata board_rta1025w_16 = {
        .name                           = "RTA1025W_16",
        .expected_cpu_id                = 0x6348,
-@@ -2844,6 +2893,7 @@ static const struct board_info __initdat
+@@ -2846,6 +2895,7 @@ static const struct board_info __initdat
        &board_96348gw_10,
        &board_96348gw_11,
        &board_FAST2404,
index 080aa44..acd4ca4 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -206,6 +206,125 @@ static struct board_info __initdata boar
+@@ -207,6 +207,125 @@ static struct board_info __initdata boar
        },
  };
  
  static struct board_info __initdata board_dsl_274xb_f1 = {
        .name                           = "AW4339U",
        .expected_cpu_id                = 0x6328,
-@@ -2874,6 +2993,7 @@ static const struct board_info __initdat
+@@ -2876,6 +2995,7 @@ static const struct board_info __initdat
  #ifdef CONFIG_BCM63XX_CPU_6328
        &board_96328avng,
        &board_963281TAN,
index 7c93af8..82800a7 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -136,6 +136,78 @@ static struct board_info __initdata boar
+@@ -137,6 +137,78 @@ static struct board_info __initdata boar
        },
  };
  
@@ -79,7 +79,7 @@
  static struct board_info __initdata board_963281TAN = {
        .name                           = "963281TAN",
        .expected_cpu_id                = 0x6328,
-@@ -2992,6 +3064,7 @@ static struct board_info __initdata boar
+@@ -2994,6 +3066,7 @@ static struct board_info __initdata boar
  static const struct board_info __initdata *bcm963xx_boards[] = {
  #ifdef CONFIG_BCM63XX_CPU_6328
        &board_96328avng,
index 2516e09..39daedf 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -136,6 +136,72 @@ static struct board_info __initdata boar
+@@ -137,6 +137,72 @@ static struct board_info __initdata boar
        },
  };
  
@@ -73,7 +73,7 @@
  static struct board_info __initdata board_96328A_1441N1 = {
        .name                                   = "96328A-1441N1",
        .expected_cpu_id                        = 0x6328,
-@@ -3064,6 +3130,7 @@ static struct board_info __initdata boar
+@@ -3066,6 +3132,7 @@ static struct board_info __initdata boar
  static const struct board_info __initdata *bcm963xx_boards[] = {
  #ifdef CONFIG_BCM63XX_CPU_6328
        &board_96328avng,
index eb5ca08..382e98e 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1919,6 +1919,99 @@ static struct board_info __initdata boar
+@@ -1921,6 +1921,99 @@ static struct board_info __initdata boar
  
        .has_ohci0 = 1,
        .has_ehci0 = 1,
index 5060a90..37d838b 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1376,6 +1376,19 @@ static struct board_info __initdata boar
+@@ -1378,6 +1378,19 @@ static struct board_info __initdata boar
        },
  
        .has_ohci0 = 1,
index e5663b0..9a551d9 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -844,6 +844,17 @@ static struct board_info __initdata boar
+@@ -846,6 +846,17 @@ static struct board_info __initdata boar
                        .active_low     = 1,
                },
        },
index 2edae51..9de0997 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -736,6 +736,53 @@ static struct board_info __initdata boar
+@@ -738,6 +738,53 @@ static struct board_info __initdata boar
  
        .has_uart0                      = 1,
  };
@@ -54,7 +54,7 @@
  #endif
  
  /*
-@@ -3261,6 +3308,7 @@ static const struct board_info __initdat
+@@ -3263,6 +3310,7 @@ static const struct board_info __initdat
  #endif
  #ifdef CONFIG_BCM63XX_CPU_6345
        &board_96345gw2,
index ab1f544..c517fb4 100644 (file)
@@ -8,7 +8,7 @@
  #include <linux/spi/spi.h>
  #include <linux/spi/spi_gpio.h>
  #include <linux/spi/74x164.h>
-@@ -3366,7 +3367,7 @@ static const struct board_info __initdat
+@@ -3368,7 +3369,7 @@ static const struct board_info __initdat
   * bcm4318 WLAN work
   */
  #ifdef CONFIG_SSB_PCIHOST
@@ -17,7 +17,7 @@
        .revision               = 0x02,
        .board_rev              = 0x17,
        .country_code           = 0x0,
-@@ -3386,6 +3387,7 @@ static struct ssb_sprom bcm63xx_sprom =
+@@ -3388,6 +3389,7 @@ static struct ssb_sprom bcm63xx_sprom =
        .boardflags_lo          = 0x2848,
        .boardflags_hi          = 0x0000,
  };
diff --git a/target/linux/brcm63xx/patches-3.6/446-BCM63XX-add-a-fixup-for-rt2x00-devices.patch b/target/linux/brcm63xx/patches-3.6/446-BCM63XX-add-a-fixup-for-rt2x00-devices.patch
new file mode 100644 (file)
index 0000000..34ccc04
--- /dev/null
@@ -0,0 +1,188 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -34,6 +34,7 @@
+ #include <board_bcm963xx.h>
+ #include <linux/bcm963xx_tag.h>
+ #include <pci_ath9k_fixup.h>
++#include <pci_rt2x00_fixup.h>
+ #define PFX   "board_bcm963xx: "
+@@ -982,9 +983,19 @@ int __init board_register_devices(void)
+       }
+       /* register any fixups */
+-      for (i = 0; i < board.has_caldata; i++)
+-              pci_enable_ath9k_fixup(board.caldata[i].slot, board.caldata[i].caldata_offset,
+-                      board.caldata[i].endian_check, board.caldata[i].led_pin);
++      for (i = 0; i < board.has_caldata; i++) {
++              switch (board.caldata[i].vendor) {
++              case PCI_VENDOR_ID_ATHEROS:
++                      pci_enable_ath9k_fixup(board.caldata[i].slot,
++                              board.caldata[i].caldata_offset, board.caldata[i].endian_check,
++                              board.caldata[i].led_pin);
++                      break;
++              case PCI_VENDOR_ID_RALINK:
++                      pci_enable_rt2x00_fixup(board.caldata[i].slot,
++                              board.caldata[i].eeprom);
++                      break;
++              }
++      }
+       return 0;
+ }
+--- a/arch/mips/bcm63xx/dev-flash.c
++++ b/arch/mips/bcm63xx/dev-flash.c
+@@ -146,7 +146,7 @@ static int __init bcm63xx_detect_flash_t
+       return 0;
+ }
+-int __init bcm63xx_flash_register(int num_caldata, struct ath9k_caldata *caldata)
++int __init bcm63xx_flash_register(int num_caldata, struct bcm63xx_caldata *caldata)
+ {
+       u32 val;
+       unsigned int i;
+--- a/arch/mips/bcm63xx/Makefile
++++ b/arch/mips/bcm63xx/Makefile
+@@ -1,7 +1,8 @@
+ obj-y         += clk.o cpu.o cs.o gpio.o irq.o nvram.o prom.o setup.o \
+                  timer.o dev-dsp.o dev-enet.o dev-flash.o dev-hsspi.o \
+                  dev-pcmcia.o dev-rng.o dev-spi.o dev-uart.o dev-usb-ehci.o \
+-                 dev-usb-ohci.o dev-wdt.o pci-ath9k-fixup.o
++                 dev-usb-ohci.o dev-wdt.o pci-ath9k-fixup.o \
++                 pci-rt2x00-fixup.o
+ obj-$(CONFIG_EARLY_PRINTK)    += early_printk.o
+ obj-y         += boards/
+--- /dev/null
++++ b/arch/mips/bcm63xx/pci-rt2x00-fixup.c
+@@ -0,0 +1,71 @@
++/*
++ *  Broadcom BCM63XX RT2x00 EEPROM fixup helper.
++ *
++ *  Copyright (C) 2012 Álvaro Fernández Rojas <noltari@gmail.com>
++ *
++ *  Based on
++ *
++ *  Broadcom BCM63XX Ath9k EEPROM fixup helper.
++ *
++ *  Copyright (C) 2012 Jonas Gorski <jonas.gorski@gmail.com>
++ *
++ *  This program is free software; you can redistribute it and/or modify it
++ *  under the terms of the GNU General Public License version 2 as published
++ *  by the Free Software Foundation.
++ */
++
++#include <linux/pci.h>
++#include <linux/platform_device.h>
++#include <linux/rt2x00_platform.h>
++
++#include <bcm63xx_nvram.h>
++#include <pci_rt2x00_fixup.h>
++
++struct rt2x00_fixup {
++      unsigned slot;
++      u8 mac[ETH_ALEN];
++      struct rt2x00_platform_data pdata;
++};
++
++static int rt2x00_num_fixups;
++static struct rt2x00_fixup rt2x00_fixups[2] = {
++      {
++              .slot = 255,
++      },
++      {
++              .slot = 255,
++      },
++};
++
++static void rt2x00_pci_fixup(struct pci_dev *dev)
++{
++      unsigned i;
++      struct rt2x00_platform_data *pdata = NULL;
++
++      for (i = 0; i < rt2x00_num_fixups; i++) {
++              if (rt2x00_fixups[i].slot != PCI_SLOT(dev->devfn))
++                      continue;
++
++              pdata = &rt2x00_fixups[i].pdata;
++              break;
++      }
++
++      dev->dev.platform_data = pdata;
++}
++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_RALINK, PCI_ANY_ID, rt2x00_pci_fixup);
++
++void __init pci_enable_rt2x00_fixup(unsigned slot, char* eeprom)
++{
++      if (rt2x00_num_fixups >= ARRAY_SIZE(rt2x00_fixups))
++              return;
++
++      rt2x00_fixups[rt2x00_num_fixups].slot = slot;
++      rt2x00_fixups[rt2x00_num_fixups].pdata.eeprom_file_name = kstrdup(eeprom, GFP_KERNEL);
++
++      if (bcm63xx_nvram_get_mac_address(rt2x00_fixups[rt2x00_num_fixups].mac))
++              return;
++
++      rt2x00_fixups[rt2x00_num_fixups].pdata.mac_address = rt2x00_fixups[rt2x00_num_fixups].mac;
++      rt2x00_num_fixups++;
++}
++
+--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h
++++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h
+@@ -11,6 +11,6 @@ enum {
+ extern int bcm63xx_attached_flash;
+-int __init bcm63xx_flash_register(int num_caldata, struct ath9k_caldata *caldata);
++int __init bcm63xx_flash_register(int num_caldata, struct bcm63xx_caldata *caldata);
+ #endif /* __BCM63XX_FLASH_H */
+--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
++++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
+@@ -8,6 +8,7 @@
+ #include <bcm63xx_dev_enet.h>
+ #include <bcm63xx_dev_dsp.h>
+ #include <pci_ath9k_fixup.h>
++#include <pci_rt2x00_fixup.h>
+ /*
+  * flash mapping
+@@ -15,11 +16,15 @@
+ #define BCM963XX_CFE_VERSION_OFFSET   0x570
+ #define BCM963XX_NVRAM_OFFSET         0x580
+-struct ath9k_caldata {
++struct bcm63xx_caldata {
++      unsigned int    vendor;
+       unsigned int    slot;
+       u32             caldata_offset;
++      /* Atheros */
+       unsigned int    endian_check:1;
+       int             led_pin;
++      /* Ralink */
++      char*           eeprom;
+ };
+ /*
+@@ -43,7 +48,7 @@ struct board_info {
+       unsigned int    has_caldata:2;
+       /* wifi calibration data config */
+-      struct ath9k_caldata caldata[2];
++      struct bcm63xx_caldata caldata[2];
+       /* ethernet config */
+       struct bcm63xx_enet_platform_data enet0;
+--- /dev/null
++++ b/arch/mips/include/asm/mach-bcm63xx/pci_rt2x00_fixup.h
+@@ -0,0 +1,9 @@
++#ifndef _PCI_RT2X00_FIXUP
++#define _PCI_RT2X00_FIXUP
++
++#define PCI_VENDOR_ID_RALINK 0x1814
++
++void pci_enable_rt2x00_fixup(unsigned slot, char* eeprom) __init;
++
++#endif /* _PCI_RT2X00_FIXUP */
++
index 4e39933..18ba06c 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -511,6 +511,54 @@ static struct board_info __initdata boar
+@@ -512,6 +512,54 @@ static struct board_info __initdata boar
  
        .has_ohci0 = 1,
  };
@@ -55,7 +55,7 @@
  #endif
  
  /*
-@@ -685,6 +733,7 @@ static const struct board_info __initdat
+@@ -686,6 +734,7 @@ static const struct board_info __initdat
        &board_DV201AMR,
        &board_96348gw_a,
        &board_rta1025w_16,
index e1b7f0e..21ed442 100644 (file)
@@ -9,7 +9,7 @@
  #include <asm/addrspace.h>
  #include <bcm63xx_board.h>
  #include <bcm63xx_cpu.h>
-@@ -43,6 +45,12 @@
+@@ -44,6 +46,12 @@
  #define CFE_OFFSET_64K                0x10000
  #define CFE_OFFSET_128K               0x20000
  
@@ -22,7 +22,7 @@
  static struct board_info board;
  
  /*
-@@ -708,6 +716,586 @@ static struct board_info __initdata boar
+@@ -709,6 +717,586 @@ static struct board_info __initdata boar
  
        .has_ohci0                      = 1,
  };
  #endif
  
  /*
-@@ -741,6 +1329,11 @@ static const struct board_info __initdat
+@@ -742,6 +1330,11 @@ static const struct board_info __initdat
        &board_96358vw2,
        &board_AGPFS0,
        &board_DWVS0,
  #endif
  };
  
-@@ -795,6 +1388,16 @@ static void __init boardid_fixup(u8 *boo
+@@ -796,6 +1389,16 @@ static void __init boardid_fixup(u8 *boo
        struct bcm_tag *tag = (struct bcm_tag *)(boot_addr + CFE_OFFSET_64K);
        char *board_name = (char *)bcm63xx_nvram_get_name();
  
index 748b195..cbeb31b 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -182,6 +182,38 @@ static struct board_info __initdata boar
+@@ -183,6 +183,38 @@ static struct board_info __initdata boar
                },
        },
  };
@@ -39,7 +39,7 @@
  #endif
  
  /*
-@@ -1308,6 +1340,7 @@ static const struct board_info __initdat
+@@ -1309,6 +1341,7 @@ static const struct board_info __initdat
  #ifdef CONFIG_BCM63XX_CPU_6338
        &board_96338gw,
        &board_96338w,
index f87252b..c20c5bc 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -705,6 +705,96 @@ static struct board_info __initdata boar
+@@ -706,6 +706,96 @@ static struct board_info __initdata boar
        },
  };
  
@@ -97,7 +97,7 @@
  static struct board_info __initdata board_AGPFS0 = {
        .name                           = "AGPF-S0",
        .expected_cpu_id                = 0x6358,
-@@ -1361,6 +1451,7 @@ static const struct board_info __initdat
+@@ -1362,6 +1452,7 @@ static const struct board_info __initdat
        &board_96358vw,
        &board_96358vw2,
        &board_AGPFS0,
index 890847e..de504ec 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -839,6 +839,59 @@ static struct board_info __initdata boar
+@@ -840,6 +840,59 @@ static struct board_info __initdata boar
        .has_ohci0                      = 1,
  };
  
@@ -60,7 +60,7 @@
  struct spi_gpio_platform_data nb4_spi_gpio_data = {
        .sck            = NB4_SPI_GPIO_CLK,
        .mosi           = NB4_SPI_GPIO_MOSI,
-@@ -1453,6 +1506,7 @@ static const struct board_info __initdat
+@@ -1454,6 +1507,7 @@ static const struct board_info __initdat
        &board_AGPFS0,
        &board_CPVA642,
        &board_DWVS0,
index 3c9cae4..277210b 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -599,6 +599,67 @@ static struct board_info __initdata boar
+@@ -600,6 +600,67 @@ static struct board_info __initdata boar
                },
        },
  };
@@ -68,7 +68,7 @@
  #endif
  
  /*
-@@ -1498,6 +1559,7 @@ static const struct board_info __initdat
+@@ -1499,6 +1560,7 @@ static const struct board_info __initdat
        &board_96348gw_a,
        &board_rta1025w_16,
        &board_96348_D4PW,
index a265249..35cc222 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -468,6 +468,112 @@ static struct board_info __initdata boar
+@@ -469,6 +469,112 @@ static struct board_info __initdata boar
        },
  };
  
  static struct board_info __initdata board_FAST2404 = {
        .name                           = "F@ST2404",
        .expected_cpu_id                = 0x6348,
-@@ -1552,6 +1658,8 @@ static const struct board_info __initdat
+@@ -1553,6 +1659,8 @@ static const struct board_info __initdat
  #ifdef CONFIG_BCM63XX_CPU_6348
        &board_96348r,
        &board_96348gw,
index 2fa0bfe..bbb163c 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -766,6 +766,76 @@ static struct board_info __initdata boar
+@@ -767,6 +767,76 @@ static struct board_info __initdata boar
                },
        },
  };
@@ -77,7 +77,7 @@
  #endif
  
  /*
-@@ -1668,6 +1738,7 @@ static const struct board_info __initdat
+@@ -1669,6 +1739,7 @@ static const struct board_info __initdat
        &board_rta1025w_16,
        &board_96348_D4PW,
        &board_spw500v,
index 451cf41..ff7d1c2 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1708,6 +1708,80 @@ static struct board_info __initdata boar
+@@ -1709,6 +1709,80 @@ static struct board_info __initdata boar
        .spis = nb4_spi_devices,
        .num_spis = ARRAY_SIZE(nb4_spi_devices),
  };
@@ -81,7 +81,7 @@
  #endif
  
  /*
-@@ -1753,6 +1827,7 @@ static const struct board_info __initdat
+@@ -1754,6 +1828,7 @@ static const struct board_info __initdat
        &board_nb4_ser_r2,
        &board_nb4_fxc_r1,
        &board_nb4_fxc_r2,
index a0a2e96..7bc815e 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -214,6 +214,43 @@ static struct board_info __initdata boar
+@@ -215,6 +215,43 @@ static struct board_info __initdata boar
                },
        },
  };
@@ -44,7 +44,7 @@
  #endif
  
  /*
-@@ -1795,6 +1832,7 @@ static const struct board_info __initdat
+@@ -1796,6 +1833,7 @@ static const struct board_info __initdat
        &board_96338gw,
        &board_96338w,
        &board_96338w2_e7t,
index 188444a..4af8a6f 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1819,6 +1819,72 @@ static struct board_info __initdata boar
+@@ -1820,6 +1820,72 @@ static struct board_info __initdata boar
                },
        },
  };
@@ -73,7 +73,7 @@
  #endif
  
  /*
-@@ -1866,6 +1932,7 @@ static const struct board_info __initdat
+@@ -1867,6 +1933,7 @@ static const struct board_info __initdat
        &board_nb4_fxc_r1,
        &board_nb4_fxc_r2,
        &board_HW553,
index 1bd713a..8734138 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -873,6 +873,63 @@ static struct board_info __initdata boar
+@@ -874,6 +874,63 @@ static struct board_info __initdata boar
                },
        },
  };
@@ -64,7 +64,7 @@
  #endif
  
  /*
-@@ -1917,6 +1974,7 @@ static const struct board_info __initdat
+@@ -1918,6 +1975,7 @@ static const struct board_info __initdat
        &board_96348_D4PW,
        &board_spw500v,
        &board_96348sv,
@@ -72,7 +72,7 @@
  #endif
  
  #ifdef CONFIG_BCM63XX_CPU_6358
-@@ -2037,6 +2095,23 @@ void __init board_prom_init(void)
+@@ -2038,6 +2096,23 @@ void __init board_prom_init(void)
                val &= MPI_CSBASE_BASE_MASK;
        }
        boot_addr = (u8 *)KSEG1ADDR(val);
index 67eeb7a..f05385a 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -437,6 +437,62 @@ static struct board_info __initdata boar
+@@ -438,6 +438,62 @@ static struct board_info __initdata boar
        },
  };
  
@@ -63,7 +63,7 @@
  static struct board_info __initdata board_96348gw = {
        .name                           = "96348GW",
        .expected_cpu_id                = 0x6348,
-@@ -1975,6 +2031,7 @@ static const struct board_info __initdat
+@@ -1976,6 +2032,7 @@ static const struct board_info __initdat
        &board_spw500v,
        &board_96348sv,
        &board_V2500V_BB,
index bee908a..446c9da 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -493,6 +493,49 @@ static struct board_info __initdata boar
+@@ -494,6 +494,49 @@ static struct board_info __initdata boar
  };
  
  
@@ -50,7 +50,7 @@
  static struct board_info __initdata board_96348gw = {
        .name                           = "96348GW",
        .expected_cpu_id                = 0x6348,
-@@ -2032,6 +2075,7 @@ static const struct board_info __initdat
+@@ -2033,6 +2076,7 @@ static const struct board_info __initdat
        &board_96348sv,
        &board_V2500V_BB,
        &board_V2110,
index 34b8e1b..8c802e0 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1252,6 +1252,8 @@ static struct board_info __initdata boar
+@@ -1253,6 +1253,8 @@ static struct board_info __initdata boar
        .name                           = "DWV-S0",
        .expected_cpu_id                = 0x6358,
  
@@ -9,7 +9,7 @@
        .has_enet0                      = 1,
        .has_enet1                      = 1,
        .has_pci                        = 1,
-@@ -1267,6 +1269,7 @@ static struct board_info __initdata boar
+@@ -1268,6 +1270,7 @@ static struct board_info __initdata boar
        },
  
        .has_ohci0                      = 1,
index b53e3a7..fd8ac19 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -536,6 +536,67 @@ static struct board_info __initdata boar
+@@ -537,6 +537,67 @@ static struct board_info __initdata boar
        },
  };
  
@@ -68,7 +68,7 @@
  static struct board_info __initdata board_96348gw = {
        .name                           = "96348GW",
        .expected_cpu_id                = 0x6348,
-@@ -2079,6 +2140,7 @@ static const struct board_info __initdat
+@@ -2080,6 +2141,7 @@ static const struct board_info __initdat
        &board_V2500V_BB,
        &board_V2110,
        &board_ct536_ct5621,
index b8223c7..01c16ba 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -799,6 +799,7 @@ static struct board_info __initdata boar
+@@ -800,6 +800,7 @@ static struct board_info __initdata boar
        .name                           = "RTA1025W_16",
        .expected_cpu_id                = 0x6348,
  
index 38f4100..c6237a6 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1091,6 +1091,44 @@ static struct board_info __initdata boar
+@@ -1092,6 +1092,44 @@ static struct board_info __initdata boar
                },
        },
  };
@@ -45,7 +45,7 @@
  #endif
  
  /*
-@@ -2142,6 +2180,7 @@ static const struct board_info __initdat
+@@ -2143,6 +2181,7 @@ static const struct board_info __initdat
        &board_V2110,
        &board_ct536_ct5621,
        &board_96348A_122,
index 6dc5ef3..85e2753 100644 (file)
@@ -10,7 +10,7 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
 
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2147,6 +2147,78 @@ static struct board_info __initdata boar
+@@ -2148,6 +2148,78 @@ static struct board_info __initdata boar
  #endif
  
  /*
@@ -89,7 +89,7 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
   * all boards
   */
  static const struct board_info __initdata *bcm963xx_boards[] = {
-@@ -2198,6 +2270,10 @@ static const struct board_info __initdat
+@@ -2199,6 +2271,10 @@ static const struct board_info __initdat
        &board_HW553,
        &board_spw303v,
  #endif
@@ -100,7 +100,7 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
  };
  
  /*
-@@ -2369,12 +2445,25 @@ void __init board_prom_init(void)
+@@ -2370,12 +2446,25 @@ void __init board_prom_init(void)
                bcm63xx_pci_enabled = 1;
                if (BCMCPU_IS_6348())
                        val |= GPIO_MODE_6348_G2_PCI;
index 4b45fdf..f7b9762 100644 (file)
@@ -9,7 +9,7 @@ Subject: [PATCH 33/63] bcm63xx: add support for 96368MVNgr board.
 
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2216,6 +2216,72 @@ static struct board_info __initdata boar
+@@ -2217,6 +2217,72 @@ static struct board_info __initdata boar
        .has_ohci0 = 1,
        .has_ehci0 = 1,
  };
@@ -82,7 +82,7 @@ Subject: [PATCH 33/63] bcm63xx: add support for 96368MVNgr board.
  #endif
  
  /*
-@@ -2273,6 +2339,7 @@ static const struct board_info __initdat
+@@ -2274,6 +2340,7 @@ static const struct board_info __initdat
  
  #ifdef CONFIG_BCM63XX_CPU_6368
        &board_96368mvwg,
index 7e04614..6d4a101 100644 (file)
@@ -9,7 +9,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 96328avng reference board
 
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -64,13 +64,45 @@ static struct board_info __initdata boar
+@@ -65,13 +65,45 @@ static struct board_info __initdata boar
        .has_uart0                      = 1,
        .has_pci                        = 1,
  
@@ -56,7 +56,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 96328avng reference board
                        .name           = "96328avng::power",
                        .gpio           = 4,
                        .active_low     = 1,
-@@ -87,7 +119,7 @@ static struct board_info __initdata boar
+@@ -88,7 +120,7 @@ static struct board_info __initdata boar
                        .active_low     = 1,
                },
                {
index 1b5d369..e3bc61e 100644 (file)
@@ -9,7 +9,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 963281TAN reference board
 
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -125,6 +125,76 @@ static struct board_info __initdata boar
+@@ -126,6 +126,76 @@ static struct board_info __initdata boar
                },
        },
  };
@@ -86,7 +86,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 963281TAN reference board
  #endif
  
  /*
-@@ -2322,6 +2392,7 @@ static struct board_info __initdata boar
+@@ -2323,6 +2393,7 @@ static struct board_info __initdata boar
  static const struct board_info __initdata *bcm963xx_boards[] = {
  #ifdef CONFIG_BCM63XX_CPU_6328
        &board_96328avng,
index a3b630e..ec0efca 100644 (file)
@@ -10,7 +10,7 @@ Subject: [PATCH 70/79] MIPS: BCM63XX: Add board definition for D-Link
 
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -195,6 +195,110 @@ static struct board_info __initdata boar
+@@ -196,6 +196,111 @@ static struct board_info __initdata boar
  
        },
  };
@@ -25,6 +25,7 @@ Subject: [PATCH 70/79] MIPS: BCM63XX: Add board definition for D-Link
 +      .has_caldata                    = 1,
 +      .caldata = {
 +              {
++                      .vendor         = PCI_VENDOR_ID_ATHEROS,
 +                      .caldata_offset = 0x7d1000,
 +                      .slot           = 0,
 +                      .led_pin        = -1,
@@ -121,7 +122,7 @@ Subject: [PATCH 70/79] MIPS: BCM63XX: Add board definition for D-Link
  #endif
  
  /*
-@@ -2393,6 +2497,7 @@ static const struct board_info __initdat
+@@ -2394,6 +2499,7 @@ static const struct board_info __initdat
  #ifdef CONFIG_BCM63XX_CPU_6328
        &board_96328avng,
        &board_963281TAN,
index 837b70a..2e249f0 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1335,6 +1335,57 @@ static struct board_info __initdata boar
+@@ -1337,6 +1337,57 @@ static struct board_info __initdata boar
        },
  };
  
@@ -58,7 +58,7 @@
  #endif
  
  /*
-@@ -2527,6 +2578,7 @@ static const struct board_info __initdat
+@@ -2529,6 +2580,7 @@ static const struct board_info __initdat
        &board_ct536_ct5621,
        &board_96348A_122,
        &board_CPVA502plus,
index e399cff..20ef1e5 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -51,6 +51,13 @@
+@@ -52,6 +52,13 @@
  #define NB4_SPI_GPIO_CLK      6
  #define NB4_74HC64_GPIO(X)    (NB4_74X164_GPIO_BASE + (X))
  
@@ -14,7 +14,7 @@
  static struct board_info board;
  
  /*
-@@ -2262,6 +2269,111 @@ static struct board_info __initdata boar
+@@ -2264,6 +2271,111 @@ static struct board_info __initdata boar
        .num_spis = ARRAY_SIZE(nb4_spi_devices),
  };
  
  static struct board_info __initdata board_HW553 = {
        .name                           = "HW553",
        .expected_cpu_id                = 0x6358,
-@@ -2593,6 +2705,7 @@ static const struct board_info __initdat
+@@ -2595,6 +2707,7 @@ static const struct board_info __initdat
        &board_nb4_ser_r2,
        &board_nb4_fxc_r1,
        &board_nb4_fxc_r2,
index cd9ab79..19ffc13 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2513,6 +2513,71 @@ static struct board_info __initdata boar
+@@ -2515,6 +2515,71 @@ static struct board_info __initdata boar
                },
        }
  };
@@ -72,7 +72,7 @@
  #endif
  
  /*
-@@ -2708,6 +2773,7 @@ static const struct board_info __initdat
+@@ -2710,6 +2775,7 @@ static const struct board_info __initdat
        &board_ct6373_1,
        &board_HW553,
        &board_spw303v,
index c9ff917..297759f 100644 (file)
@@ -8,7 +8,7 @@
  #include <asm/addrspace.h>
  #include <bcm63xx_board.h>
  #include <bcm63xx_cpu.h>
-@@ -50,6 +51,8 @@
+@@ -51,6 +52,8 @@
  #define NB4_SPI_GPIO_MOSI     7
  #define NB4_SPI_GPIO_CLK      6
  #define NB4_74HC64_GPIO(X)    (NB4_74X164_GPIO_BASE + (X))
@@ -17,7 +17,7 @@
  
  #define CT6373_PID_OFFSET             0xff80
  #define CT6373_74X164_GPIO_BASE       64
-@@ -2580,6 +2583,103 @@ static struct board_info __initdata boar
+@@ -2582,6 +2585,103 @@ static struct board_info __initdata boar
  };
  #endif
  
  /*
   * known 6368 boards
   */
-@@ -2776,6 +2876,10 @@ static const struct board_info __initdat
+@@ -2778,6 +2878,10 @@ static const struct board_info __initdat
        &board_DVAG3810BN,
  #endif
  
  #ifdef CONFIG_BCM63XX_CPU_6368
        &board_96368mvwg,
        &board_96368mvngr,
-@@ -2843,6 +2947,11 @@ static void __init boardid_fixup(u8 *boo
+@@ -2845,6 +2949,11 @@ static void __init boardid_fixup(u8 *boo
                }
        }
  
index f965f7b..c09e07f 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1011,6 +1011,55 @@ static struct board_info __initdata boar
+@@ -1013,6 +1013,55 @@ static struct board_info __initdata boar
        .has_ehci0                      = 1,
  };
  
@@ -56,7 +56,7 @@
  static struct board_info __initdata board_rta1025w_16 = {
        .name                           = "RTA1025W_16",
        .expected_cpu_id                = 0x6348,
-@@ -2844,6 +2893,7 @@ static const struct board_info __initdat
+@@ -2846,6 +2895,7 @@ static const struct board_info __initdat
        &board_96348gw_10,
        &board_96348gw_11,
        &board_FAST2404,
index 080aa44..acd4ca4 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -206,6 +206,125 @@ static struct board_info __initdata boar
+@@ -207,6 +207,125 @@ static struct board_info __initdata boar
        },
  };
  
  static struct board_info __initdata board_dsl_274xb_f1 = {
        .name                           = "AW4339U",
        .expected_cpu_id                = 0x6328,
-@@ -2874,6 +2993,7 @@ static const struct board_info __initdat
+@@ -2876,6 +2995,7 @@ static const struct board_info __initdat
  #ifdef CONFIG_BCM63XX_CPU_6328
        &board_96328avng,
        &board_963281TAN,
index 7c93af8..82800a7 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -136,6 +136,78 @@ static struct board_info __initdata boar
+@@ -137,6 +137,78 @@ static struct board_info __initdata boar
        },
  };
  
@@ -79,7 +79,7 @@
  static struct board_info __initdata board_963281TAN = {
        .name                           = "963281TAN",
        .expected_cpu_id                = 0x6328,
-@@ -2992,6 +3064,7 @@ static struct board_info __initdata boar
+@@ -2994,6 +3066,7 @@ static struct board_info __initdata boar
  static const struct board_info __initdata *bcm963xx_boards[] = {
  #ifdef CONFIG_BCM63XX_CPU_6328
        &board_96328avng,
index 2516e09..39daedf 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -136,6 +136,72 @@ static struct board_info __initdata boar
+@@ -137,6 +137,72 @@ static struct board_info __initdata boar
        },
  };
  
@@ -73,7 +73,7 @@
  static struct board_info __initdata board_96328A_1441N1 = {
        .name                                   = "96328A-1441N1",
        .expected_cpu_id                        = 0x6328,
-@@ -3064,6 +3130,7 @@ static struct board_info __initdata boar
+@@ -3066,6 +3132,7 @@ static struct board_info __initdata boar
  static const struct board_info __initdata *bcm963xx_boards[] = {
  #ifdef CONFIG_BCM63XX_CPU_6328
        &board_96328avng,
index eb5ca08..382e98e 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1919,6 +1919,99 @@ static struct board_info __initdata boar
+@@ -1921,6 +1921,99 @@ static struct board_info __initdata boar
  
        .has_ohci0 = 1,
        .has_ehci0 = 1,
index 5060a90..37d838b 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1376,6 +1376,19 @@ static struct board_info __initdata boar
+@@ -1378,6 +1378,19 @@ static struct board_info __initdata boar
        },
  
        .has_ohci0 = 1,
index e5663b0..9a551d9 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -844,6 +844,17 @@ static struct board_info __initdata boar
+@@ -846,6 +846,17 @@ static struct board_info __initdata boar
                        .active_low     = 1,
                },
        },
index 2edae51..9de0997 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -736,6 +736,53 @@ static struct board_info __initdata boar
+@@ -738,6 +738,53 @@ static struct board_info __initdata boar
  
        .has_uart0                      = 1,
  };
@@ -54,7 +54,7 @@
  #endif
  
  /*
-@@ -3261,6 +3308,7 @@ static const struct board_info __initdat
+@@ -3263,6 +3310,7 @@ static const struct board_info __initdat
  #endif
  #ifdef CONFIG_BCM63XX_CPU_6345
        &board_96345gw2,
index ab1f544..c517fb4 100644 (file)
@@ -8,7 +8,7 @@
  #include <linux/spi/spi.h>
  #include <linux/spi/spi_gpio.h>
  #include <linux/spi/74x164.h>
-@@ -3366,7 +3367,7 @@ static const struct board_info __initdat
+@@ -3368,7 +3369,7 @@ static const struct board_info __initdat
   * bcm4318 WLAN work
   */
  #ifdef CONFIG_SSB_PCIHOST
@@ -17,7 +17,7 @@
        .revision               = 0x02,
        .board_rev              = 0x17,
        .country_code           = 0x0,
-@@ -3386,6 +3387,7 @@ static struct ssb_sprom bcm63xx_sprom =
+@@ -3388,6 +3389,7 @@ static struct ssb_sprom bcm63xx_sprom =
        .boardflags_lo          = 0x2848,
        .boardflags_hi          = 0x0000,
  };