|
@@ -2724,6 +2724,16 @@ static void rt2800_iq_calibrate(struct rt2x00_dev *rt2x00dev, int channel)
|
|
|
rt2800_bbp_write(rt2x00dev, 159, cal != 0xff ? cal : 0);
|
|
|
}
|
|
|
|
|
|
+static char rt2800_txpower_to_dev(struct rt2x00_dev *rt2x00dev,
|
|
|
+ unsigned int channel,
|
|
|
+ char txpower)
|
|
|
+{
|
|
|
+ if (channel <= 14)
|
|
|
+ return clamp_t(char, txpower, MIN_G_TXPOWER, MAX_G_TXPOWER);
|
|
|
+ else
|
|
|
+ return clamp_t(char, txpower, MIN_A_TXPOWER, MAX_A_TXPOWER);
|
|
|
+}
|
|
|
+
|
|
|
static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
|
|
|
struct ieee80211_conf *conf,
|
|
|
struct rf_channel *rf,
|
|
@@ -2733,13 +2743,10 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
|
|
|
unsigned int tx_pin;
|
|
|
u8 bbp, rfcsr;
|
|
|
|
|
|
- if (rf->channel <= 14) {
|
|
|
- info->default_power1 = TXPOWER_G_TO_DEV(info->default_power1);
|
|
|
- info->default_power2 = TXPOWER_G_TO_DEV(info->default_power2);
|
|
|
- } else {
|
|
|
- info->default_power1 = TXPOWER_A_TO_DEV(info->default_power1);
|
|
|
- info->default_power2 = TXPOWER_A_TO_DEV(info->default_power2);
|
|
|
- }
|
|
|
+ info->default_power1 = rt2800_txpower_to_dev(rt2x00dev, rf->channel,
|
|
|
+ info->default_power1);
|
|
|
+ info->default_power2 = rt2800_txpower_to_dev(rt2x00dev, rf->channel,
|
|
|
+ info->default_power2);
|
|
|
|
|
|
switch (rt2x00dev->chip.rf) {
|
|
|
case RF2020:
|