Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
authorJohn W. Linville <linville@tuxdriver.com>
Fri, 28 Jan 2011 21:23:14 +0000 (16:23 -0500)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 28 Jan 2011 21:23:14 +0000 (16:23 -0500)
Conflicts:
drivers/net/wireless/ath/ath9k/init.c

15 files changed:
1  2 
MAINTAINERS
drivers/net/wireless/ath/ath5k/base.c
drivers/net/wireless/ath/ath9k/ar9002_calib.c
drivers/net/wireless/ath/ath9k/htc.h
drivers/net/wireless/ath/ath9k/htc_drv_init.c
drivers/net/wireless/ath/ath9k/htc_drv_main.c
drivers/net/wireless/ath/ath9k/hw.c
drivers/net/wireless/ath/ath9k/hw.h
drivers/net/wireless/ath/ath9k/init.c
drivers/net/wireless/ath/ath9k/main.c
drivers/net/wireless/ath/ath9k/xmit.c
drivers/net/wireless/iwlwifi/iwl-4965.c
net/mac80211/agg-rx.c
net/mac80211/main.c
net/mac80211/tx.c

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index c1e15921906533d077494f2f3d885f33e4dfac39,087a6a95edd5893a8a9282646a4ebc0a3dda40a3..e5c1eead98a201fb85e41cc2a4f1dff4023f6620
@@@ -821,6 -819,17 +816,8 @@@ void ath9k_deinit_device(struct ath_sof
        wiphy_rfkill_stop_polling(sc->hw->wiphy);
        ath_deinit_leds(sc);
  
 -      for (i = 0; i < sc->num_sec_wiphy; i++) {
 -              struct ath_wiphy *aphy = sc->sec_wiphy[i];
 -              if (aphy == NULL)
 -                      continue;
 -              sc->sec_wiphy[i] = NULL;
 -              ieee80211_unregister_hw(aphy->hw);
 -              ieee80211_free_hw(aphy->hw);
 -      }
 -
+       ath9k_ps_restore(sc);
        ieee80211_unregister_hw(hw);
        pm_qos_remove_request(&sc->pm_qos_req);
        ath_rx_cleanup(sc);
index 91af57c48581c80b7ef5a6f4e8c12d3e303cd520,568f7be2ec75f7217a26fb5f9e0a0a4b83e2b68e..20c70ba45753c30e7564416d15fad448e58a7aec
@@@ -618,18 -597,10 +616,18 @@@ void ath9k_tasklet(unsigned long data
                return;
        }
  
+       ath9k_ps_wakeup(sc);
        spin_lock(&sc->sc_pcu_lock);
  
 -      if (!ath9k_hw_check_alive(ah))
 +      /*
 +       * Only run the baseband hang check if beacons stop working in AP or
 +       * IBSS mode, because it has a high false positive rate. For station
 +       * mode it should not be necessary, since the upper layers will detect
 +       * this through a beacon miss automatically and the following channel
 +       * change will trigger a hardware reset anyway
 +       */
 +      if (ath9k_hw_numtxpending(ah, sc->beacon.beaconq) != 0 &&
 +          !ath9k_hw_check_alive(ah))
                ieee80211_queue_work(sc->hw, &sc->hw_check_work);
  
        if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA)
@@@ -1704,13 -1705,21 +1711,15 @@@ static int ath9k_config(struct ieee8021
                        ath_update_survey_nf(sc, old_pos);
        }
  
 -skip_chan_change:
        if (changed & IEEE80211_CONF_CHANGE_POWER) {
                sc->config.txpowlimit = 2 * conf->power_level;
+               ath9k_ps_wakeup(sc);
                ath_update_txpow(sc);
+               ath9k_ps_restore(sc);
        }
  
 -      spin_lock_bh(&sc->wiphy_lock);
 -      disable_radio = ath9k_all_wiphys_idle(sc);
 -      spin_unlock_bh(&sc->wiphy_lock);
 -
        if (disable_radio) {
                ath_dbg(common, ATH_DBG_CONFIG, "idle: disabling radio\n");
 -              sc->ps_idle = true;
                ath_radio_disable(sc, hw);
        }
  
Simple merge
index 1f51f41624264387d276ccfe2d3bc1fa4428bf4e,227ca82eef72178253b3f4adf831ce5ae297dd28..0c9d0c07eae6cae6ffc6f3ef1f0e91ae64107e2b
@@@ -231,17 -229,9 +229,12 @@@ void ieee80211_process_addba_request(st
                goto end_no_lock;
        }
        /* determine default buffer size */
-       if (buf_size == 0) {
-               struct ieee80211_supported_band *sband;
-               sband = local->hw.wiphy->bands[conf->channel->band];
-               buf_size = IEEE80211_MIN_AMPDU_BUF;
-               buf_size = buf_size << sband->ht_cap.ampdu_factor;
-       }
+       if (buf_size == 0)
+               buf_size = IEEE80211_MAX_AMPDU_BUF;
  
 +      /* make sure the size doesn't exceed the maximum supported by the hw */
 +      if (buf_size > local->hw.max_rx_aggregation_subframes)
 +              buf_size = local->hw.max_rx_aggregation_subframes;
  
        /* examine state machine */
        mutex_lock(&sta->ampdu_mlme.mtx);
Simple merge
Simple merge