carl9170 firmware: fix BAR -> BA handling
authorChristian Lamparter <chunkeey@googlemail.com>
Sat, 30 Jun 2012 23:51:08 +0000 (01:51 +0200)
committerChristian Lamparter <chunkeey@googlemail.com>
Sat, 30 Jun 2012 23:58:12 +0000 (01:58 +0200)
 1. fix a regression which was introduced by accident by:
carl9170 firmware: initial WoWLAN support
The BlockACK should not be a NULLFUNC

 2. remove superfluous control | 1.
No idea, why the original firmware had that set.

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

index 50c48f9d27d5f440bb5e6a9d5c14eb1719cb7448..cc2505538884a73d210efea0f6a8b0cacce84038 100644 (file)
@@ -554,7 +554,7 @@ static void wlan_send_buffered_ba(void)
        baf->f.hdr.phy.mcs = AR9170_TXRX_PHY_RATE_OFDM_6M;
 
        /* format outgoing BA */
-       ba->frame_control = cpu_to_le16(IEEE80211_FTYPE_CTL | IEEE80211_STYPE_NULLFUNC);
+       ba->frame_control = cpu_to_le16(IEEE80211_FTYPE_CTL | IEEE80211_STYPE_BACK);
        ba->duration = cpu_to_le16(0);
        memcpy(ba->ta, ctx->ta, 6);
        memcpy(ba->ra, ctx->ra, 6);
@@ -566,11 +566,7 @@ static void wlan_send_buffered_ba(void)
         */
        memset(ba->bitmap, 0x0, sizeof(ba->bitmap));
 
-       /*
-        * NB:
-        * not entirely sure if this is 100% correct?!
-        */
-       ba->control = ctx->control | cpu_to_le16(1);
+       ba->control = ctx->control;
        ba->start_seq_num = ctx->start_seq_num;
        wlan_tx_fw(&baf->s, NULL);
 }
@@ -625,13 +621,7 @@ static void handle_bar(struct dma_desc *desc __unused, struct ieee80211_hdr *hdr
        /* Brilliant! The BAR provides all necessary MACs! */
        memcpy(ctx->ra, bar->ta, 6);
        memcpy(ctx->ta, bar->ra, 6);
-
-       /*
-        * NB:
-        * not entirely sure if this is 100% correct to force the
-        * imm ack bit or not...
-        */
-       ctx->control = bar->control | cpu_to_le16(1);
+       ctx->control = bar->control;
        ctx->start_seq_num = bar->start_seq_num;
 }