carl9170 firmware: remove BAR->BA clutter
authorChristian Lamparter <chunkeey@googlemail.com>
Sat, 31 Mar 2012 22:36:22 +0000 (00:36 +0200)
committerChristian Lamparter <chunkeey@googlemail.com>
Sat, 31 Mar 2012 22:36:22 +0000 (00:36 +0200)
No need for a dynamic rate adjustment for this special
case of outgoing BAs. The original firmware didn't care
much for them either.

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

index 6dfdf3e56df000087a3e7acdde93ebb49182be64..d10a74e8064448eebbb60502a53b23c1bc7744ad 100644 (file)
@@ -39,7 +39,6 @@ struct carl9170_bar_ctx {
        uint8_t ra[6];
        __le16 start_seq_num;
        __le16 control;
-       __le32 phy;
 };
 
 #ifdef CONFIG_CARL9170FW_CAB_QUEUE
index 94ed62250d806ed262cdc86c316d2df4370fa35c..50c48f9d27d5f440bb5e6a9d5c14eb1719cb7448 100644 (file)
@@ -546,13 +546,12 @@ static void wlan_send_buffered_ba(void)
        baf->s.queue = AR9170_TXQ_VO;
        baf->f.hdr.length = sizeof(struct ieee80211_ba) + FCS_LEN;
 
-       /* HW Duration / Backoff */
-       baf->f.hdr.mac.backoff = 1;
-       baf->f.hdr.mac.hw_duration = 1;
+       baf->f.hdr.mac.no_ack = 1;
 
-       /* take the TX rate from the RX'd BAR */
-       baf->f.hdr.phy.set = ctx->phy;
-       baf->f.hdr.phy.tx_power = 29; /* 14.5 dBm */
+       baf->f.hdr.phy.modulation = 1; /* OFDM */
+       baf->f.hdr.phy.tx_power = 34; /* 17 dBm */
+       baf->f.hdr.phy.chains = 1;
+       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);
@@ -589,7 +588,7 @@ static struct carl9170_bar_ctx *wlan_get_bar_cache_buffer(void)
        return tmp;
 }
 
-static void handle_bar(struct dma_desc *desc, struct ieee80211_hdr *hdr,
+static void handle_bar(struct dma_desc *desc __unused, struct ieee80211_hdr *hdr,
                       unsigned int len, unsigned int mac_err)
 {
        struct ieee80211_bar *bar;
@@ -634,11 +633,6 @@ static void handle_bar(struct dma_desc *desc, struct ieee80211_hdr *hdr,
         */
        ctx->control = bar->control | cpu_to_le16(1);
        ctx->start_seq_num = bar->start_seq_num;
-       ctx->phy = ar9170_rx_to_phy(desc);
-       if (unlikely(!ctx->phy)) {
-               /* provide a backup, in case ar9170_rx_to_phy fails */
-               ctx->phy = cpu_to_le32(0x2cc301);
-       }
 }
 
 static void wlan_check_rx_overrun(void)