better lantiq support in madwifi
authorJohn Crispin <john@openwrt.org>
Sun, 17 Jul 2011 19:27:14 +0000 (19:27 +0000)
committerJohn Crispin <john@openwrt.org>
Sun, 17 Jul 2011 19:27:14 +0000 (19:27 +0000)
Allow for each lantiq target (without wifi eeprom) to define where
wireless configuration data is on flash. Patch also adds support for
sx763 lantiq target.

Signed-off-by: Luka Perkov <openwrt@lukaperkov.net>
SVN-Revision: 27662

package/madwifi/patches/353-devid.patch
package/madwifi/patches/354-ifxmips_eeprom.patch

index bcc214b8fd622e741a3bc868935ca74ea4731c43..ee149ff0c2e2318a756778655cd8cfa43bf1b95f 100644 (file)
@@ -1,9 +1,10 @@
 --- a/ath/if_ath_pci.c
 +++ b/ath/if_ath_pci.c
-@@ -114,11 +114,13 @@ static struct pci_device_id ath_pci_id_t
+@@ -114,11 +114,15 @@ static struct pci_device_id ath_pci_id_t
        { 0x168c, 0x0023, PCI_ANY_ID, PCI_ANY_ID },
        { 0x168c, 0x0024, PCI_ANY_ID, PCI_ANY_ID },
        { 0x168c, 0x9013, PCI_ANY_ID, PCI_ANY_ID }, /* sonicwall */
++      { 0x168c, 0xff16, PCI_ANY_ID, PCI_ANY_ID },
 +      { 0x168c, 0xff1a, PCI_ANY_ID, PCI_ANY_ID },
        { 0 }
  };
@@ -11,6 +12,7 @@
  static u16 ath_devidmap[][2] = {
 -      { 0x9013, 0x0013 }
 +      { 0x9013, 0x0013 },
++      { 0xff16, 0x0013 },
 +      { 0xff1a, 0x001a }
  };
  
index 134253466d60f4c27bdb2faa4a4237438292eb68..59036b1b4bfeda72fc4d6560fb0478037964aabe 100644 (file)
@@ -1,12 +1,13 @@
 --- a/ath_hal/ah_os.c
 +++ b/ath_hal/ah_os.c
-@@ -343,6 +343,45 @@
+@@ -343,6 +343,46 @@ EXPORT_SYMBOL(ath_hal_func);
   * NB: see the comments in ah_osdep.h about byte-swapping register
   *     reads and writes to understand what's going on below.
   */
 +
 +#ifdef CONFIG_LANTIQ
 +extern int lantiq_emulate_madwifi_eep;
++extern unsigned long long lantiq_madwifi_eep_addr;
 +#define EEPROM_EMULATION 1
 +#endif
 +
@@ -31,7 +32,7 @@
 +                              val = 0x00000002;
 +                      break;
 +              case 0x6004:
-+                      val = cpu_to_le16(__raw_readw((u16 *) KSEG1ADDR(0xb07f0400 + addrsel)));
++                      val = cpu_to_le16(__raw_readw((u16 *) KSEG1ADDR(lantiq_madwifi_eep_addr + addrsel)));
 +                      /* this forces the regdomain to 0x00 (worldwide), as the original setting
 +                       * causes issues with the HAL */
 +                      if (addrsel == 0x17e)
@@ -46,7 +47,7 @@
  void __ahdecl
  ath_hal_reg_write(struct ath_hal *ah, u_int reg, u_int32_t val)
  {
-@@ -351,20 +390,33 @@
+@@ -351,20 +391,33 @@ ath_hal_reg_write(struct ath_hal *ah, u_
                ath_hal_printf(ah, "%s: WRITE 0x%x <= 0x%x\n", 
                                (ath_hal_func ?: "unknown"), reg, val);
  #endif
@@ -84,7 +85,7 @@
                                (ath_hal_func ?: "unknown"), reg, val);
  #endif
        return val;
-@@ -581,7 +633,6 @@
+@@ -581,7 +634,6 @@ init_ath_hal(void)
  {
        const char *sep;
        int i;