carl9170 firmware: fix CAB queue delivery
[carl9170fw.git] / carlfw / src / wlan.c
index 61976b05d6b3311ca96d905907f55eedbc52406e..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);
 }
 
@@ -601,13 +601,11 @@ static unsigned int wlan_rx_filter(struct dma_desc *desc)
        data_len = ar9170_get_rx_mpdu_len(desc);
        mac_err = ar9170_get_rx_macstatus_error(desc);
 
-#define AR9170_RX_ERROR_BAD (AR9170_RX_ERROR_FCS | AR9170_RX_ERROR_PLCP | \
-                            AR9170_RX_ERROR_FATAL)
+#define AR9170_RX_ERROR_BAD (AR9170_RX_ERROR_FCS | AR9170_RX_ERROR_PLCP)
 
        if (unlikely(data_len < (4 + 6 + FCS_LEN) ||
            desc->totalLen > CONFIG_CARL9170FW_RX_FRAME_LEN) ||
            mac_err & AR9170_RX_ERROR_BAD) {
-
                /*
                 * This frame is too damaged to do anything
                 * useful with it.