Skip to content

Commit 6f48101

Browse files
Luis R. Rodriguezlinvjw
authored andcommitted
ath9k_hw: disabled PAPRD for AR9003
AR9003's PAPRD was enabled prematurely, and is causing some large discrepancies on throughput and network connectivity. For example downlink (RX) throughput against an AR9280 AP can vary widlely from 43-73 Mbit/s while disabling this gets AR9382 (2x2) up to around 93 Mbit/s in a 2.4 GHz HT20 setup. Cc: stable@kernel.org Cc: Paul Shaw <paul.shaw@atheros.com> Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
1 parent 239712e commit 6f48101

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

drivers/net/wireless/ath/ath9k/hw.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,9 @@ static void ath9k_hw_init_config(struct ath_hw *ah)
369369
else
370370
ah->config.ht_enable = 0;
371371

372+
/* PAPRD needs some more work to be enabled */
373+
ah->config.paprd_disable = 1;
374+
372375
ah->config.rx_intr_mitigation = true;
373376
ah->config.pcieSerDesWrite = true;
374377

@@ -1933,7 +1936,8 @@ int ath9k_hw_fill_cap_info(struct ath_hw *ah)
19331936
pCap->rx_status_len = sizeof(struct ar9003_rxs);
19341937
pCap->tx_desc_len = sizeof(struct ar9003_txc);
19351938
pCap->txs_len = sizeof(struct ar9003_txs);
1936-
if (ah->eep_ops->get_eeprom(ah, EEP_PAPRD))
1939+
if (!ah->config.paprd_disable &&
1940+
ah->eep_ops->get_eeprom(ah, EEP_PAPRD))
19371941
pCap->hw_caps |= ATH9K_HW_CAP_PAPRD;
19381942
} else {
19391943
pCap->tx_desc_len = sizeof(struct ath_desc);

drivers/net/wireless/ath/ath9k/hw.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,7 @@ struct ath9k_ops_config {
225225
u32 pcie_waen;
226226
u8 analog_shiftreg;
227227
u8 ht_enable;
228+
u8 paprd_disable;
228229
u32 ofdm_trig_low;
229230
u32 ofdm_trig_high;
230231
u32 cck_trig_high;

0 commit comments

Comments
 (0)