aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_paprd.c30
-rw-r--r--drivers/net/wireless/ath/ath9k/hw.h2
2 files changed, 32 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_paprd.c b/drivers/net/wireless/ath/ath9k/ar9003_paprd.c
index de1972307b0a..f80d1d633980 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_paprd.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_paprd.c
@@ -21,6 +21,36 @@ void ar9003_paprd_enable(struct ath_hw *ah, bool val)
21{ 21{
22 struct ath_regulatory *regulatory = ath9k_hw_regulatory(ah); 22 struct ath_regulatory *regulatory = ath9k_hw_regulatory(ah);
23 struct ath9k_channel *chan = ah->curchan; 23 struct ath9k_channel *chan = ah->curchan;
24 struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
25
26 /*
27 * 3 bits for modalHeader5G.papdRateMaskHt20
28 * is used for sub-band disabling of PAPRD.
29 * 5G band is divided into 3 sub-bands -- upper,
30 * middle, lower.
31 * if bit 30 of modalHeader5G.papdRateMaskHt20 is set
32 * -- disable PAPRD for upper band 5GHz
33 * if bit 29 of modalHeader5G.papdRateMaskHt20 is set
34 * -- disable PAPRD for middle band 5GHz
35 * if bit 28 of modalHeader5G.papdRateMaskHt20 is set
36 * -- disable PAPRD for lower band 5GHz
37 */
38
39 if (IS_CHAN_5GHZ(chan)) {
40 if (chan->channel >= UPPER_5G_SUB_BAND_START) {
41 if (le32_to_cpu(eep->modalHeader5G.papdRateMaskHt20)
42 & BIT(30))
43 val = false;
44 } else if (chan->channel >= MID_5G_SUB_BAND_START) {
45 if (le32_to_cpu(eep->modalHeader5G.papdRateMaskHt20)
46 & BIT(29))
47 val = false;
48 } else {
49 if (le32_to_cpu(eep->modalHeader5G.papdRateMaskHt20)
50 & BIT(28))
51 val = false;
52 }
53 }
24 54
25 if (val) { 55 if (val) {
26 ah->paprd_table_write_done = true; 56 ah->paprd_table_write_done = true;
diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
index 818acdd1ba90..a1c317455bc0 100644
--- a/drivers/net/wireless/ath/ath9k/hw.h
+++ b/drivers/net/wireless/ath/ath9k/hw.h
@@ -143,6 +143,8 @@
143#define AR_KEYTABLE_SIZE 128 143#define AR_KEYTABLE_SIZE 128
144#define POWER_UP_TIME 10000 144#define POWER_UP_TIME 10000
145#define SPUR_RSSI_THRESH 40 145#define SPUR_RSSI_THRESH 40
146#define UPPER_5G_SUB_BAND_START 5700
147#define MID_5G_SUB_BAND_START 5400
146 148
147#define CAB_TIMEOUT_VAL 10 149#define CAB_TIMEOUT_VAL 10
148#define BEACON_TIMEOUT_VAL 10 150#define BEACON_TIMEOUT_VAL 10