ath9k: add some cleanups and minor fixes
[openwrt/svn-archive/archive.git] / package / kernel / mac80211 / patches / 521-ath9k_cur_txpower.patch
index 9167903f1c2166e565e3b5e254c215e94cfd61dd..e101b249a345a2585c2b387df09ec16d77c88fdc 100644 (file)
@@ -1,15 +1,20 @@
 --- a/drivers/net/wireless/ath/ath9k/main.c
 +++ b/drivers/net/wireless/ath/ath9k/main.c
 --- a/drivers/net/wireless/ath/ath9k/main.c
 +++ b/drivers/net/wireless/ath/ath9k/main.c
-@@ -1269,6 +1269,8 @@ int ath9k_config(struct ieee80211_hw *hw
-                       return -EINVAL;
-               }
+@@ -296,8 +296,12 @@ static int ath_reset_internal(struct ath
+           (sc->hw->conf.flags & IEEE80211_CONF_OFFCHANNEL))
+               ath9k_mci_set_txpower(sc, true, false);
  
  
-+              hw->cur_power_level = sc->curtxpow / 2;
+-      if (!ath_complete_reset(sc, true))
++      if (!ath_complete_reset(sc, true)) {
+               r = -EIO;
++              goto out;
++      }
 +
 +
-               /*
-                * The most recent snapshot of channel->noisefloor for the old
-                * channel is only available after the hardware reset. Copy it to
-@@ -1305,6 +1307,7 @@ int ath9k_config(struct ieee80211_hw *hw
++      sc->hw->cur_power_level = sc->curtxpow / 2;
+ out:
+       spin_unlock_bh(&sc->sc_pcu_lock);
+@@ -1285,6 +1289,7 @@ static int ath9k_config(struct ieee80211
                sc->config.txpowlimit = 2 * conf->power_level;
                ath9k_cmn_update_txpow(ah, sc->curtxpow,
                                       sc->config.txpowlimit, &sc->curtxpow);
                sc->config.txpowlimit = 2 * conf->power_level;
                ath9k_cmn_update_txpow(ah, sc->curtxpow,
                                       sc->config.txpowlimit, &sc->curtxpow);