OSDN Git Service

ath5k: use ctl settings based on current regdomain
authorBob Copeland <me@bobcopeland.com>
Thu, 30 Apr 2009 19:55:51 +0000 (15:55 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 6 May 2009 19:14:56 +0000 (15:14 -0400)
Update ath5k to use the ctl settings for tx power based on current
regulatory domain.

Signed-off-by: Bob Copeland <me@bobcopeland.com>
Acked-by: Nick Kossifidis <mickflemm@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath5k/phy.c

index 6737ba0..d0d1c35 100644 (file)
@@ -2158,8 +2158,6 @@ done:
  * Get the max edge power for this channel if
  * we have such data from EEPROM's Conformance Test
  * Limits (CTL), and limit max power if needed.
- *
- * FIXME: Only works for world regulatory domains
  */
 static void
 ath5k_get_max_ctl_power(struct ath5k_hw *ah,
@@ -2175,26 +2173,23 @@ ath5k_get_max_ctl_power(struct ath5k_hw *ah,
        u8 ctl_idx = 0xFF;
        u32 target = channel->center_freq;
 
-       /* Find out a CTL for our mode that's not mapped
-        * on a specific reg domain.
-        *
-        * TODO: Map our current reg domain to one of the 3 available
-        * reg domain ids so that we can support more CTLs. */
+       ctl_mode = ath_regd_get_band_ctl(&ah->ah_regulatory, channel->band);
+
        switch (channel->hw_value & CHANNEL_MODES) {
        case CHANNEL_A:
-               ctl_mode = AR5K_CTL_11A | AR5K_CTL_NO_REGDOMAIN;
+               ctl_mode |= AR5K_CTL_11A;
                break;
        case CHANNEL_G:
-               ctl_mode = AR5K_CTL_11G | AR5K_CTL_NO_REGDOMAIN;
+               ctl_mode |= AR5K_CTL_11G;
                break;
        case CHANNEL_B:
-               ctl_mode = AR5K_CTL_11B | AR5K_CTL_NO_REGDOMAIN;
+               ctl_mode |= AR5K_CTL_11B;
                break;
        case CHANNEL_T:
-               ctl_mode = AR5K_CTL_TURBO | AR5K_CTL_NO_REGDOMAIN;
+               ctl_mode |= AR5K_CTL_TURBO;
                break;
        case CHANNEL_TG:
-               ctl_mode = AR5K_CTL_TURBOG | AR5K_CTL_NO_REGDOMAIN;
+               ctl_mode |= AR5K_CTL_TURBOG;
                break;
        case CHANNEL_XR:
                /* Fall through */