aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath9k/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/ath9k/main.c')
-rw-r--r--drivers/net/wireless/ath9k/main.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k/main.c
index 9e8f954877c9..a25dcf949f36 100644
--- a/drivers/net/wireless/ath9k/main.c
+++ b/drivers/net/wireless/ath9k/main.c
@@ -2168,8 +2168,10 @@ static int ath9k_add_interface(struct ieee80211_hw *hw,
2168 avp->av_opmode = ic_opmode; 2168 avp->av_opmode = ic_opmode;
2169 avp->av_bslot = -1; 2169 avp->av_bslot = -1;
2170 2170
2171 if (ic_opmode == NL80211_IFTYPE_AP) 2171 if (ic_opmode == NL80211_IFTYPE_AP) {
2172 ath9k_hw_set_tsfadjust(sc->sc_ah, 1); 2172 ath9k_hw_set_tsfadjust(sc->sc_ah, 1);
2173 sc->sc_flags |= SC_OP_TSF_RESET;
2174 }
2173 2175
2174 sc->vifs[0] = conf->vif; 2176 sc->vifs[0] = conf->vif;
2175 sc->nvifs++; 2177 sc->nvifs++;
@@ -2291,6 +2293,16 @@ static int ath9k_config(struct ieee80211_hw *hw, u32 changed)
2291 if (changed & IEEE80211_CONF_CHANGE_POWER) 2293 if (changed & IEEE80211_CONF_CHANGE_POWER)
2292 sc->config.txpowlimit = 2 * conf->power_level; 2294 sc->config.txpowlimit = 2 * conf->power_level;
2293 2295
2296 /*
2297 * The HW TSF has to be reset when the beacon interval changes.
2298 * We set the flag here, and ath_beacon_config_ap() would take this
2299 * into account when it gets called through the subsequent
2300 * config_interface() call - with IFCC_BEACON in the changed field.
2301 */
2302
2303 if (changed & IEEE80211_CONF_CHANGE_BEACON_INTERVAL)
2304 sc->sc_flags |= SC_OP_TSF_RESET;
2305
2294 mutex_unlock(&sc->mutex); 2306 mutex_unlock(&sc->mutex);
2295 2307
2296 return 0; 2308 return 0;