Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
authorJohn W. Linville <linville@tuxdriver.com>
Thu, 5 Jan 2012 15:12:45 +0000 (10:12 -0500)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 5 Jan 2012 15:13:24 +0000 (10:13 -0500)
Conflicts:
drivers/net/wireless/b43legacy/dma.c

1  2 
drivers/net/wireless/ath/ath9k/xmit.c
drivers/net/wireless/b43/phy_n.c
drivers/net/wireless/b43legacy/dma.c
drivers/net/wireless/b43legacy/main.c
drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
drivers/net/wireless/mwl8k.c
drivers/net/wireless/rt2x00/rt2800usb.c
net/mac80211/scan.c

Simple merge
Simple merge
index 1ee31c55c7ba727ae8583f6f265d0ec0d083d220,aebef75a2c6289d71df2fd26d748cd3207847e13..f1f8bd09bd87fd378cb405d6aa56a38eafe4fb3c
@@@ -1186,8 -1180,10 +1180,10 @@@ int b43legacy_dma_tx(struct b43legacy_w
        if ((free_slots(ring) < SLOTS_PER_PACKET) ||
            should_inject_overflow(ring)) {
                /* This TX ring is full. */
-               ieee80211_stop_queue(dev->wl->hw, txring_to_priority(ring));
+               unsigned int skb_mapping = skb_get_queue_mapping(skb);
+               ieee80211_stop_queue(dev->wl->hw, skb_mapping);
+               dev->wl->tx_queue_stopped[skb_mapping] = 1;
 -              ring->stopped = 1;
 +              ring->stopped = true;
                if (b43legacy_debug(dev, B43legacy_DBG_DMAVERBOSE))
                        b43legacydbg(dev->wl, "Stopped TX ring %d\n",
                               ring->index);
@@@ -1285,14 -1293,21 +1293,21 @@@ void b43legacy_dma_handle_txstatus(stru
        dev->stats.last_tx = jiffies;
        if (ring->stopped) {
                B43legacy_WARN_ON(free_slots(ring) < SLOTS_PER_PACKET);
-               ieee80211_wake_queue(dev->wl->hw, txring_to_priority(ring));
 -              ring->stopped = 0;
 +              ring->stopped = false;
+       }
+       if (dev->wl->tx_queue_stopped[ring->queue_prio]) {
+               dev->wl->tx_queue_stopped[ring->queue_prio] = 0;
+       } else {
+               /* If the driver queue is running wake the corresponding
+                * mac80211 queue. */
+               ieee80211_wake_queue(dev->wl->hw, ring->queue_prio);
                if (b43legacy_debug(dev, B43legacy_DBG_DMAVERBOSE))
                        b43legacydbg(dev->wl, "Woke up TX ring %d\n",
-                              ring->index);
+                                    ring->index);
        }
-       spin_unlock(&ring->lock);
+       /* Add work to the queue. */
+       ieee80211_queue_work(dev->wl->hw, &dev->wl->tx_work);
  }
  
  static void dma_rx(struct b43legacy_dmaring *ring,
Simple merge
index 036491f08e9b3c2bb7945263b97f1c0b22671d21,8ea701261c619d44432303346c66c77d818b7e8b..7becea3dec654de21ab5090fc55b8a5068b7703f
  
  #define MWL8K_DESC    "Marvell TOPDOG(R) 802.11 Wireless Network Driver"
  #define MWL8K_NAME    KBUILD_MODNAME
- #define MWL8K_VERSION "0.12"
+ #define MWL8K_VERSION "0.13"
  
  /* Module parameters */
 -static unsigned ap_mode_default;
 +static bool ap_mode_default;
  module_param(ap_mode_default, bool, 0);
  MODULE_PARM_DESC(ap_mode_default,
                 "Set to 1 to make ap mode the default instead of sta mode");
Simple merge