aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/main.c
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2010-08-25 14:51:42 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-08-25 14:51:42 -0400
commite569aa78ba01f7f66e016a4d57310fd041524d17 (patch)
treeeaedc03d42ee2bf6200fc07b080a99bad103def3 /drivers/net/wireless/ath/ath9k/main.c
parent4562487a00445eab96311365ba15c41dc4d043cd (diff)
parent268bae0b6879f238ba57f5f801958d1254e136f7 (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem
Conflicts: drivers/net/wireless/libertas/if_sdio.c
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/main.c')
-rw-r--r--drivers/net/wireless/ath/ath9k/main.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index 3caa32316e7b..1165f909ef04 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -226,9 +226,10 @@ int ath_set_channel(struct ath_softc *sc, struct ieee80211_hw *hw,
226 caldata = &aphy->caldata; 226 caldata = &aphy->caldata;
227 227
228 ath_print(common, ATH_DBG_CONFIG, 228 ath_print(common, ATH_DBG_CONFIG,
229 "(%u MHz) -> (%u MHz), conf_is_ht40: %d\n", 229 "(%u MHz) -> (%u MHz), conf_is_ht40: %d fastcc: %d\n",
230 sc->sc_ah->curchan->channel, 230 sc->sc_ah->curchan->channel,
231 channel->center_freq, conf_is_ht40(conf)); 231 channel->center_freq, conf_is_ht40(conf),
232 fastcc);
232 233
233 spin_lock_bh(&sc->sc_resetlock); 234 spin_lock_bh(&sc->sc_resetlock);
234 235
@@ -395,7 +396,12 @@ void ath_ani_calibrate(unsigned long data)
395 bool shortcal = false; 396 bool shortcal = false;
396 bool aniflag = false; 397 bool aniflag = false;
397 unsigned int timestamp = jiffies_to_msecs(jiffies); 398 unsigned int timestamp = jiffies_to_msecs(jiffies);
398 u32 cal_interval, short_cal_interval; 399 u32 cal_interval, short_cal_interval, long_cal_interval;
400
401 if (ah->caldata && ah->caldata->nfcal_interference)
402 long_cal_interval = ATH_LONG_CALINTERVAL_INT;
403 else
404 long_cal_interval = ATH_LONG_CALINTERVAL;
399 405
400 short_cal_interval = (ah->opmode == NL80211_IFTYPE_AP) ? 406 short_cal_interval = (ah->opmode == NL80211_IFTYPE_AP) ?
401 ATH_AP_SHORT_CALINTERVAL : ATH_STA_SHORT_CALINTERVAL; 407 ATH_AP_SHORT_CALINTERVAL : ATH_STA_SHORT_CALINTERVAL;
@@ -407,7 +413,7 @@ void ath_ani_calibrate(unsigned long data)
407 ath9k_ps_wakeup(sc); 413 ath9k_ps_wakeup(sc);
408 414
409 /* Long calibration runs independently of short calibration. */ 415 /* Long calibration runs independently of short calibration. */
410 if ((timestamp - common->ani.longcal_timer) >= ATH_LONG_CALINTERVAL) { 416 if ((timestamp - common->ani.longcal_timer) >= long_cal_interval) {
411 longcal = true; 417 longcal = true;
412 ath_print(common, ATH_DBG_ANI, "longcal @%lu\n", jiffies); 418 ath_print(common, ATH_DBG_ANI, "longcal @%lu\n", jiffies);
413 common->ani.longcal_timer = timestamp; 419 common->ani.longcal_timer = timestamp;
@@ -1776,9 +1782,10 @@ static int ath9k_set_key(struct ieee80211_hw *hw,
1776 key->hw_key_idx = ret; 1782 key->hw_key_idx = ret;
1777 /* push IV and Michael MIC generation to stack */ 1783 /* push IV and Michael MIC generation to stack */
1778 key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV; 1784 key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV;
1779 if (key->alg == ALG_TKIP) 1785 if (key->cipher == WLAN_CIPHER_SUITE_TKIP)
1780 key->flags |= IEEE80211_KEY_FLAG_GENERATE_MMIC; 1786 key->flags |= IEEE80211_KEY_FLAG_GENERATE_MMIC;
1781 if (sc->sc_ah->sw_mgmt_crypto && key->alg == ALG_CCMP) 1787 if (sc->sc_ah->sw_mgmt_crypto &&
1788 key->cipher == WLAN_CIPHER_SUITE_CCMP)
1782 key->flags |= IEEE80211_KEY_FLAG_SW_MGMT; 1789 key->flags |= IEEE80211_KEY_FLAG_SW_MGMT;
1783 ret = 0; 1790 ret = 0;
1784 } 1791 }