From b89c15ddbab53fe0fbd9c86a3b19dd0ada715a60 Mon Sep 17 00:00:00 2001 From: Christian Lamparter Date: Sun, 1 Jul 2012 01:51:08 +0200 Subject: [PATCH] carl9170 firmware: fix BAR -> BA handling 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 --- carlfw/src/wlan.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/carlfw/src/wlan.c b/carlfw/src/wlan.c index 50c48f9..cc25055 100644 --- a/carlfw/src/wlan.c +++ b/carlfw/src/wlan.c @@ -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; } -- 2.31.1