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
@@@ -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);
@@@ -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
@@@ -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