Procházet zdrojové kódy

better lantiq support in madwifi

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 <[email protected]>

SVN-Revision: 27662
John Crispin před 14 roky
rodič
revize
a6ceecd973

+ 3 - 1
package/madwifi/patches/353-devid.patch

@@ -1,9 +1,10 @@
 --- a/ath/if_ath_pci.c
 --- a/ath/if_ath_pci.c
 +++ b/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, 0x0023, PCI_ANY_ID, PCI_ANY_ID },
  	{ 0x168c, 0x0024, PCI_ANY_ID, PCI_ANY_ID },
  	{ 0x168c, 0x0024, PCI_ANY_ID, PCI_ANY_ID },
  	{ 0x168c, 0x9013, PCI_ANY_ID, PCI_ANY_ID }, /* sonicwall */
  	{ 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 },
 +	{ 0x168c, 0xff1a, PCI_ANY_ID, PCI_ANY_ID },
  	{ 0 }
  	{ 0 }
  };
  };
@@ -11,6 +12,7 @@
  static u16 ath_devidmap[][2] = {
  static u16 ath_devidmap[][2] = {
 -	{ 0x9013, 0x0013 }
 -	{ 0x9013, 0x0013 }
 +	{ 0x9013, 0x0013 },
 +	{ 0x9013, 0x0013 },
++	{ 0xff16, 0x0013 },
 +	{ 0xff1a, 0x001a }
 +	{ 0xff1a, 0x001a }
  };
  };
  
  

+ 5 - 4
package/madwifi/patches/354-ifxmips_eeprom.patch

@@ -1,12 +1,13 @@
 --- a/ath_hal/ah_os.c
 --- a/ath_hal/ah_os.c
 +++ b/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
   * NB: see the comments in ah_osdep.h about byte-swapping register
   *     reads and writes to understand what's going on below.
   *     reads and writes to understand what's going on below.
   */
   */
 +
 +
 +#ifdef CONFIG_LANTIQ
 +#ifdef CONFIG_LANTIQ
 +extern int lantiq_emulate_madwifi_eep;
 +extern int lantiq_emulate_madwifi_eep;
++extern unsigned long long lantiq_madwifi_eep_addr;
 +#define EEPROM_EMULATION 1
 +#define EEPROM_EMULATION 1
 +#endif
 +#endif
 +
 +
@@ -31,7 +32,7 @@
 +				val = 0x00000002;
 +				val = 0x00000002;
 +			break;
 +			break;
 +		case 0x6004:
 +		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
 +			/* this forces the regdomain to 0x00 (worldwide), as the original setting
 +			 * causes issues with the HAL */
 +			 * causes issues with the HAL */
 +			if (addrsel == 0x17e)
 +			if (addrsel == 0x17e)
@@ -46,7 +47,7 @@
  void __ahdecl
  void __ahdecl
  ath_hal_reg_write(struct ath_hal *ah, u_int reg, u_int32_t val)
  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_printf(ah, "%s: WRITE 0x%x <= 0x%x\n", 
  				(ath_hal_func ?: "unknown"), reg, val);
  				(ath_hal_func ?: "unknown"), reg, val);
  #endif
  #endif
@@ -84,7 +85,7 @@
  				(ath_hal_func ?: "unknown"), reg, val);
  				(ath_hal_func ?: "unknown"), reg, val);
  #endif
  #endif
  	return val;
  	return val;
-@@ -581,7 +633,6 @@
+@@ -581,7 +634,6 @@ init_ath_hal(void)
  {
  {
  	const char *sep;
  	const char *sep;
  	int i;
  	int i;