ar9170: 40mhz fixes
authorChristian Lamparter <chunkeey@web.de>
Mon, 1 Jun 2009 19:41:50 +0000 (21:41 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 3 Jun 2009 18:05:12 +0000 (14:05 -0400)
This patch replace a few constant magics which may affected
the device when operating in a 40MHz channel.

Signed-off-by: Christian Lamparter <chunkeey@web.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ar9170/phy.c

index 6ce20754b8e7b180161965e3a1d2fb4ee2812421..df86f70cd817ac8a7d1f819e8981a79eb26f1b21 100644 (file)
@@ -401,7 +401,7 @@ int ar9170_init_phy(struct ar9170 *ar, enum ieee80211_band band)
        int i, err;
        u32 val;
        bool is_2ghz = band == IEEE80211_BAND_2GHZ;
-       bool is_40mhz = false; /* XXX: for now */
+       bool is_40mhz = conf_is_ht40(&ar->hw->conf);
 
        ar9170_regwrite_begin(ar);
 
@@ -1200,7 +1200,7 @@ int ar9170_set_channel(struct ar9170 *ar, struct ieee80211_channel *channel,
                return -ENOSYS;
        }
 
-       if (0 /* 2 streams capable */)
+       if (ar->eeprom.tx_mask != 1)
                tmp |= 0x100;
 
        err = ar9170_write_reg(ar, 0x1c5804, tmp);
@@ -1214,7 +1214,7 @@ int ar9170_set_channel(struct ar9170 *ar, struct ieee80211_channel *channel,
        freqpar = ar9170_get_hw_dyn_params(channel, bw);
 
        vals[0] = cpu_to_le32(channel->center_freq * 1000);
-       vals[1] = cpu_to_le32(bw == AR9170_BW_20 ? 0 : 1);
+       vals[1] = cpu_to_le32(conf_is_ht40(&ar->hw->conf));
        vals[2] = cpu_to_le32(offs << 2 | 1);
        vals[3] = cpu_to_le32(freqpar->coeff_exp);
        vals[4] = cpu_to_le32(freqpar->coeff_man);