aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00
diff options
context:
space:
mode:
authorStanislaw Gruszka <sgruszka@redhat.com>2012-10-05 07:44:12 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-10-19 15:53:12 -0400
commitd9bceaeb174fe70c62933e1bf608500c614c5130 (patch)
tree73c630bec83b083837a0ed83d5687ea5c4ae6c62 /drivers/net/wireless/rt2x00
parentde2493c58573214b0cc235c32f9ac59aa8a89c44 (diff)
rt2800: use eeprom OFDM 6M TX power as criterion
Don use TX_PWR_CFG_0 register value of OFDM 6M tx power as criterion since it can be changed. The same do vendor driver (see AsicAdjustSingleSkuTxPower and AsicGetTxPowerOffset functions from 2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO). Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> Acked-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00')
-rw-r--r--drivers/net/wireless/rt2x00/rt2800lib.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
index 2db684283419..b5e646f70e8b 100644
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -2524,7 +2524,6 @@ static u8 rt2800_compensate_txpower(struct rt2x00_dev *rt2x00dev, int is_rate_b,
2524 enum ieee80211_band band, int power_level, 2524 enum ieee80211_band band, int power_level,
2525 u8 txpower, int delta) 2525 u8 txpower, int delta)
2526{ 2526{
2527 u32 reg;
2528 u16 eeprom; 2527 u16 eeprom;
2529 u8 criterion; 2528 u8 criterion;
2530 u8 eirp_txpower; 2529 u8 eirp_txpower;
@@ -2539,11 +2538,13 @@ static u8 rt2800_compensate_txpower(struct rt2x00_dev *rt2x00dev, int is_rate_b,
2539 * .11b data rate need add additional 4dbm 2538 * .11b data rate need add additional 4dbm
2540 * when calculating eirp txpower. 2539 * when calculating eirp txpower.
2541 */ 2540 */
2542 rt2800_register_read(rt2x00dev, TX_PWR_CFG_0, &reg); 2541 rt2x00_eeprom_read(rt2x00dev, EEPROM_TXPOWER_BYRATE + 1,
2543 criterion = rt2x00_get_field32(reg, TX_PWR_CFG_0_6MBS); 2542 &eeprom);
2543 criterion = rt2x00_get_field16(eeprom,
2544 EEPROM_TXPOWER_BYRATE_RATE0);
2544 2545
2545 rt2x00_eeprom_read(rt2x00dev, 2546 rt2x00_eeprom_read(rt2x00dev, EEPROM_EIRP_MAX_TX_POWER,
2546 EEPROM_EIRP_MAX_TX_POWER, &eeprom); 2547 &eeprom);
2547 2548
2548 if (band == IEEE80211_BAND_2GHZ) 2549 if (band == IEEE80211_BAND_2GHZ)
2549 eirp_txpower_criterion = rt2x00_get_field16(eeprom, 2550 eirp_txpower_criterion = rt2x00_get_field16(eeprom,