aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/eeprom_4k.c
diff options
context:
space:
mode:
authorRajkumar Manoharan <rmanohar@qca.qualcomm.com>2011-11-22 08:22:00 -0500
committerJohn W. Linville <linville@tuxdriver.com>2011-11-28 14:36:22 -0500
commita261f0e965b7e903873880cec1a70c9cbc776c76 (patch)
treea97b242f5c58bdd7be622ea72d21cbaa3fb2fa3f /drivers/net/wireless/ath/ath9k/eeprom_4k.c
parent4eb287a4048e4a2cb0400a6d972d97739ec8c799 (diff)
ath9k_hw: Fix minimum CTL power for each runtime mode
The conformance test limits (CTL) for each regulatory domains (FCC/ETSI/MKK) are programmed for each runtime modes (11B,11G, HT20 and HT40) in EEPROM. The lowest ctledge power value of a particular running mode should not be used while computing ctledge power for a different running mode.(i.e 11G's min ctledge power should not be used while computing ctledge power for HT20). Currently, the code does not handle this properly which would result in incorrect txpowers in certain cases. So reset the twiceMaxEdgePower to the default while computing min ctlegepower for every mode. Cc: David Quan <dquan@qca.qualcomm.com> Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/eeprom_4k.c')
-rw-r--r--drivers/net/wireless/ath/ath9k/eeprom_4k.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/net/wireless/ath/ath9k/eeprom_4k.c b/drivers/net/wireless/ath/ath9k/eeprom_4k.c
index 9a7520f987f..61fcab0e2d7 100644
--- a/drivers/net/wireless/ath/ath9k/eeprom_4k.c
+++ b/drivers/net/wireless/ath/ath9k/eeprom_4k.c
@@ -473,7 +473,7 @@ static void ath9k_hw_set_4k_power_per_rate_table(struct ath_hw *ah,
473 473
474 int i; 474 int i;
475 u16 twiceMinEdgePower; 475 u16 twiceMinEdgePower;
476 u16 twiceMaxEdgePower = MAX_RATE_POWER; 476 u16 twiceMaxEdgePower;
477 u16 scaledPower = 0, minCtlPower; 477 u16 scaledPower = 0, minCtlPower;
478 u16 numCtlModes; 478 u16 numCtlModes;
479 const u16 *pCtlMode; 479 const u16 *pCtlMode;
@@ -542,9 +542,7 @@ static void ath9k_hw_set_4k_power_per_rate_table(struct ath_hw *ah,
542 else 542 else
543 freq = centers.ctl_center; 543 freq = centers.ctl_center;
544 544
545 if (ah->eep_ops->get_eeprom_ver(ah) == 14 && 545 twiceMaxEdgePower = MAX_RATE_POWER;
546 ah->eep_ops->get_eeprom_rev(ah) <= 2)
547 twiceMaxEdgePower = MAX_RATE_POWER;
548 546
549 for (i = 0; (i < AR5416_EEP4K_NUM_CTLS) && 547 for (i = 0; (i < AR5416_EEP4K_NUM_CTLS) &&
550 pEepData->ctlIndex[i]; i++) { 548 pEepData->ctlIndex[i]; i++) {