carl9170 firmware: fix CAB queue delivery
authorChristian Lamparter <chunkeey@googlemail.com>
Mon, 3 Jan 2011 21:22:51 +0000 (22:22 +0100)
committerChristian Lamparter <chunkeey@googlemail.com>
Mon, 3 Jan 2011 21:22:51 +0000 (22:22 +0100)
This patch fixes a problem were frames - destined for
after-DTIM delivery - would just skip the waiting stage.

However, DELAYED_TX is not enabled by default. So, only
the few people who use a custom, non-standard firmware
will be affected.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
carlfw/src/wlan.c

index 8c8c7a84c05a1d60cb510f29290be070cbed4c8b..36d4b86bf776ed898bb401ea54b64c84f114b398 100644 (file)
@@ -426,13 +426,6 @@ void __hot wlan_tx(struct dma_desc *desc)
        super->s.cnt = 1;
        hide_super(desc);
 
-#ifdef CONFIG_CARL9170FW_DELAYED_TX
-       if (!queue_empty(&fw.wlan.tx_queue[super->s.queue])) {
-               dma_put(&fw.wlan.tx_delay[super->s.queue], desc);
-               return;
-       }
-#endif /* CONFIG_CARL9170FW_DELAYED_TX */
-
 #ifdef CONFIG_CARL9170FW_CAB_QUEUE
        if (unlikely(super->s.cab)) {
                fw.wlan.cab_queue_len[super->s.vif_id]++;
@@ -441,6 +434,13 @@ void __hot wlan_tx(struct dma_desc *desc)
        }
 #endif /* CONFIG_CARL9170FW_CAB_QUEUE */
 
+#ifdef CONFIG_CARL9170FW_DELAYED_TX
+       if (!queue_empty(&fw.wlan.tx_queue[super->s.queue])) {
+               dma_put(&fw.wlan.tx_delay[super->s.queue], desc);
+               return;
+       }
+#endif /* CONFIG_CARL9170FW_DELAYED_TX */
+
        _wlan_tx(desc);
 }