diff options
Diffstat (limited to 'drivers/net/wireless/ath9k/main.c')
-rw-r--r-- | drivers/net/wireless/ath9k/main.c | 14 |
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; |