|
@@ -1629,7 +1629,6 @@ static int ath9k_config(struct ieee80211_hw *hw, u32 changed)
|
|
|
|
|
|
if (changed & IEEE80211_CONF_CHANGE_CHANNEL) {
|
|
|
struct ieee80211_channel *curchan = hw->conf.channel;
|
|
|
- struct ath9k_channel old_chan;
|
|
|
int pos = curchan->hw_value;
|
|
|
int old_pos = -1;
|
|
|
unsigned long flags;
|
|
@@ -1654,11 +1653,8 @@ static int ath9k_config(struct ieee80211_hw *hw, u32 changed)
|
|
|
* Preserve the current channel values, before updating
|
|
|
* the same channel
|
|
|
*/
|
|
|
- if (old_pos == pos) {
|
|
|
- memcpy(&old_chan, &sc->sc_ah->channels[pos],
|
|
|
- sizeof(struct ath9k_channel));
|
|
|
- ah->curchan = &old_chan;
|
|
|
- }
|
|
|
+ if (ah->curchan && (old_pos == pos))
|
|
|
+ ath9k_hw_getnf(ah, ah->curchan);
|
|
|
|
|
|
ath9k_cmn_update_ichannel(&sc->sc_ah->channels[pos],
|
|
|
curchan, conf->channel_type);
|