Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
authorJohn W. Linville <linville@tuxdriver.com>
Mon, 28 Jan 2013 18:54:03 +0000 (13:54 -0500)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 28 Jan 2013 18:54:03 +0000 (13:54 -0500)
Conflicts:
drivers/net/wireless/ath/ath9k/main.c
drivers/net/wireless/iwlwifi/dvm/tx.c

29 files changed:
1  2 
drivers/net/wireless/ath/ath9k/ar9003_calib.c
drivers/net/wireless/ath/ath9k/ar9003_hw.c
drivers/net/wireless/ath/ath9k/ar9003_phy.c
drivers/net/wireless/ath/ath9k/ath9k.h
drivers/net/wireless/ath/ath9k/beacon.c
drivers/net/wireless/ath/ath9k/debug.c
drivers/net/wireless/ath/ath9k/debug.h
drivers/net/wireless/ath/ath9k/hw.h
drivers/net/wireless/ath/ath9k/main.c
drivers/net/wireless/ath/ath9k/recv.c
drivers/net/wireless/ath/carl9170/fw.c
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
drivers/net/wireless/iwlegacy/3945-mac.c
drivers/net/wireless/iwlegacy/common.c
drivers/net/wireless/iwlwifi/dvm/tx.c
drivers/net/wireless/iwlwifi/pcie/rx.c
drivers/net/wireless/mwifiex/cfg80211.c
drivers/net/wireless/mwifiex/pcie.c
drivers/net/wireless/mwl8k.c
drivers/net/wireless/rtlwifi/rtl8192de/trx.c
drivers/net/wireless/rtlwifi/rtl8192se/trx.c
drivers/net/wireless/rtlwifi/rtl8723ae/trx.c
drivers/ssb/Kconfig
net/mac80211/cfg.c
net/mac80211/ieee80211_i.h
net/mac80211/mesh_hwmp.c
net/mac80211/offchannel.c
net/mac80211/scan.c
net/mac80211/tx.c

index 9221f32a322e0c25ddfdff1205fb3181fd0379e0,56317b0fb6b692f3f9ae20b8ba681ec18371788f..4cc13940c8950d2a7ad2a3fdf1a092ac3736a7d5
@@@ -1022,7 -971,13 +1022,9 @@@ static bool ar9003_hw_init_cal(struct a
        u32 agc_ctrl = 0, agc_supp_cals = AR_PHY_AGC_CONTROL_OFFSET_CAL |
                                          AR_PHY_AGC_CONTROL_FLTR_CAL   |
                                          AR_PHY_AGC_CONTROL_PKDET_CAL;
 -      int i, j;
 -      u32 cl_idx[AR9300_MAX_CHAINS] = { AR_PHY_CL_TAB_0,
 -                                        AR_PHY_CL_TAB_1,
 -                                        AR_PHY_CL_TAB_2 };
  
+       ar9003_hw_set_chain_masks(ah, ah->caps.rx_chainmask, ah->caps.tx_chainmask);
        if (rtt) {
                if (!ar9003_hw_rtt_restore(ah, chan))
                        run_rtt_cal = true;
index 885affd28f6ee23e6928380beced1ae45f026d7e,42794c546a4068ac91b47c1252153b9040362555..b2d6c18d1678961a9efe838f43ed1bffb3216a23
@@@ -314,9 -317,9 +314,8 @@@ struct ath_rx 
        u32 *rxlink;
        u32 num_pkts;
        unsigned int rxfilter;
-       spinlock_t rxbuflock;
        struct list_head rxbuf;
        struct ath_descdma rxdma;
 -      struct ath_buf *rx_bufptr;
        struct ath_rx_edma rx_edma[ATH9K_RX_QUEUE_MAX];
  
        struct sk_buff *frag;
index 0a3a1af007f74708dafccffc107f3f4981f9f1e5,9d26fc56ca56a6bf7d4e8ac0ed91366df0de50cd..784e81ccb9031ed6dd3d2f29ad1dcda0faa9f4f7
@@@ -1096,9 -1066,10 +1096,10 @@@ void ar9003_paprd_setup_gain_table(stru
  int ar9003_paprd_init_table(struct ath_hw *ah);
  bool ar9003_paprd_is_done(struct ath_hw *ah);
  bool ar9003_is_paprd_enabled(struct ath_hw *ah);
+ void ar9003_hw_set_chain_masks(struct ath_hw *ah, u8 rx, u8 tx);
  
  /* Hardware family op attach helpers */
 -void ar5008_hw_attach_phy_ops(struct ath_hw *ah);
 +int ar5008_hw_attach_phy_ops(struct ath_hw *ah);
  void ar9002_hw_attach_phy_ops(struct ath_hw *ah);
  void ar9003_hw_attach_phy_ops(struct ath_hw *ah);
  
index 3e5082c5f5f0f8aaaa779450ec178f4e0396af75,dd91f8fdc01c3ea44c922bbbbd14bee2df4fd6db..4b72b660f1800d25d9416668649260996afc411a
@@@ -182,7 -182,7 +182,7 @@@ static void ath_restart_work(struct ath
        ath_start_ani(sc);
  }
  
- static bool ath_prepare_reset(struct ath_softc *sc, bool flush)
 -static bool ath_prepare_reset(struct ath_softc *sc, bool retry_tx)
++static bool ath_prepare_reset(struct ath_softc *sc)
  {
        struct ath_hw *ah = sc->sc_ah;
        bool ret = true;
        ath9k_debug_samp_bb_mac(sc);
        ath9k_hw_disable_interrupts(ah);
  
 -      if (!ath_stoprecv(sc))
 +      if (!ath_drain_all_txq(sc))
                ret = false;
  
 -      if (!ath_drain_all_txq(sc, retry_tx))
 +      if (!ath_stoprecv(sc))
                ret = false;
  
-       if (!flush) {
-               if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA)
-                       ath_rx_tasklet(sc, 1, true);
-               ath_rx_tasklet(sc, 1, false);
-       } else {
-               ath_flushrecv(sc);
-       }
        return ret;
  }
  
@@@ -278,8 -271,7 +270,7 @@@ static int ath_reset_internal(struct at
                hchan = ah->curchan;
        }
  
-       if (!ath_prepare_reset(sc, flush))
 -      if (!ath_prepare_reset(sc, retry_tx))
++      if (!ath_prepare_reset(sc))
                fastcc = false;
  
        ath_dbg(common, CONFIG, "Reset to %u MHz, HT40: %d fastcc: %d\n",
@@@ -801,7 -797,7 +794,7 @@@ static void ath9k_stop(struct ieee80211
                ath9k_hw_cfg_gpio_input(ah, ah->led_pin);
        }
  
-       ath_prepare_reset(sc, true);
 -      ath_prepare_reset(sc, false);
++      ath_prepare_reset(sc);
  
        if (sc->rx.frag) {
                dev_kfree_skb_any(sc->rx.frag);
Simple merge
index b0aad71c12a0e0410b757e3e1df5baaa6b99cb75,31534f7c05488ba38d4c65c7ce0209a43712fd51..6b01fc1959406016d761699bd298c5628719d174
@@@ -1205,8 -1218,14 +1210,15 @@@ int iwlagn_rx_reply_tx(struct iwl_priv 
                        freed++;
                }
  
 -              WARN_ON(!is_agg && freed != 1);
+               if (tid != IWL_TID_NON_QOS) {
+                       priv->tid_data[sta_id][tid].next_reclaimed =
+                               next_reclaimed;
+                       IWL_DEBUG_TX_REPLY(priv, "Next reclaimed packet:%d\n",
+                                          next_reclaimed);
+               }
 +              if (!is_agg && freed != 1)
 +                      IWL_ERR(priv, "Q: %d, freed %d\n", txq_id, freed);
  
                /*
                 * An offchannel frame can be send only on the AUX queue, where
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge