ath9k: disable PA predistortion on AR93xx for now until it is properly fixed
authorFelix Fietkau <nbd@openwrt.org>
Fri, 21 Jan 2011 01:43:32 +0000 (01:43 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Fri, 21 Jan 2011 01:43:32 +0000 (01:43 +0000)
SVN-Revision: 25056

package/mac80211/patches/310-ath9k_pending_work.patch
package/mac80211/patches/403-ath9k-fix-invalid-mac-address-handling.patch
package/mac80211/patches/409-ath9k_platform_settings.patch
package/mac80211/patches/520-ath9k_intr_mitigation_tweak.patch

index 0a3372c467e73d6eea0dcd51c18b59e5a13cb85d..d0c2f39142ccb0ae43dc815588ea2ff1b020d43b 100644 (file)
        }
  }
  
+--- a/drivers/net/wireless/ath/ath9k/hw.c
++++ b/drivers/net/wireless/ath/ath9k/hw.c
+@@ -369,6 +369,9 @@ static void ath9k_hw_init_config(struct 
+       else
+               ah->config.ht_enable = 0;
++      /* PAPRD needs some more work to be enabled */
++      ah->config.paprd_disable = 1;
++
+       ah->config.rx_intr_mitigation = true;
+       ah->config.pcieSerDesWrite = true;
+@@ -1949,7 +1952,8 @@ int ath9k_hw_fill_cap_info(struct ath_hw
+               pCap->rx_status_len = sizeof(struct ar9003_rxs);
+               pCap->tx_desc_len = sizeof(struct ar9003_txc);
+               pCap->txs_len = sizeof(struct ar9003_txs);
+-              if (ah->eep_ops->get_eeprom(ah, EEP_PAPRD))
++              if (!ah->config.paprd_disable &&
++                  ah->eep_ops->get_eeprom(ah, EEP_PAPRD))
+                       pCap->hw_caps |= ATH9K_HW_CAP_PAPRD;
+       } else {
+               pCap->tx_desc_len = sizeof(struct ath_desc);
+--- a/drivers/net/wireless/ath/ath9k/hw.h
++++ b/drivers/net/wireless/ath/ath9k/hw.h
+@@ -228,6 +228,7 @@ struct ath9k_ops_config {
+       u32 pcie_waen;
+       u8 analog_shiftreg;
+       u8 ht_enable;
++      u8 paprd_disable;
+       u32 ofdm_trig_low;
+       u32 ofdm_trig_high;
+       u32 cck_trig_high;
index 700854d21c1d7c77ebf7a0998bebcb9df9389bd8..cf3f96bb171abe7b2b039752665befe482d1c1f6 100644 (file)
@@ -8,7 +8,7 @@
  #include <asm/unaligned.h>
  
  #include "hw.h"
-@@ -428,8 +429,16 @@ static int ath9k_hw_init_macaddr(struct 
+@@ -431,8 +432,16 @@ static int ath9k_hw_init_macaddr(struct 
                common->macaddr[2 * i] = eeval >> 8;
                common->macaddr[2 * i + 1] = eeval & 0xff;
        }
index 31de3e40920a1e90048939b260e98a391a7cc780..ba3479b5818702eaf7c544145bf052a566d1835c 100644 (file)
@@ -18,7 +18,7 @@
        common->ops = &ath9k_common_ops;
 --- a/drivers/net/wireless/ath/ath9k/hw.h
 +++ b/drivers/net/wireless/ath/ath9k/hw.h
-@@ -793,7 +793,7 @@ struct ath_hw {
+@@ -794,7 +794,7 @@ struct ath_hw {
        u32 originalGain[22];
        int initPDADC;
        int PDADCdelta;
index be17062ccb5481b8124d5c873dad6f17ae2b6e06..797c950f90922b502fb12d52b9d982039fb74396 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath9k/hw.c
 +++ b/drivers/net/wireless/ath/ath9k/hw.c
-@@ -1426,8 +1426,8 @@ int ath9k_hw_reset(struct ath_hw *ah, st
+@@ -1429,8 +1429,8 @@ int ath9k_hw_reset(struct ath_hw *ah, st
        REG_WRITE(ah, AR_OBS, 8);
  
        if (ah->config.rx_intr_mitigation) {