Merge pull request #119 from olerem/rate-2016.12.16.1
authorAdrian Chadd <adrian.chadd@gmail.com>
Fri, 16 Dec 2016 19:49:28 +0000 (11:49 -0800)
committerGitHub <noreply@github.com>
Fri, 16 Dec 2016 19:49:28 +0000 (11:49 -0800)
use minimal unmasked rate for multicast frames.

target_firmware/wlan/if_ath.c
target_firmware/wlan/if_athvar.h
target_firmware/wlan/if_owl.c

index b31fbdb67e866d883732f14ca4171515015bbfbd..cf92262b10210ef2645b8e716d7ef65331e0877d 100755 (executable)
@@ -759,6 +759,7 @@ static void tgt_HTCRecvMessageHandler(HTC_ENDPOINT_ID EndPt,
 
        bf->bf_endpt = EndPt;
        bf->bf_cookie = dh->cookie;
+       bf->vap_index = dh->vap_index;
 
        if (tid->flag & TID_AGGR_ENABLED)
                ath_tgt_handle_aggr(sc, bf);
index 40f9ffe239b45cd79ec5d9a0fa47b058df99c480..782686967dbc88baf27e629301a5db881cb45126 100755 (executable)
@@ -225,6 +225,7 @@ struct ath_tx_buf
        HTC_ENDPOINT_ID       bf_endpt;
        a_uint16_t            al_delta;
        a_uint8_t             bf_cookie;
+       a_uint8_t                       vap_index;
 };
 
 struct ath_rx_buf
index f2280691efc9ee538b075457ab4d4ccbb604f5b8..6dda78cef6b11c340fada4b4b900a118bed2ee50 100755 (executable)
@@ -969,9 +969,13 @@ ath_tgt_tx_send_normal(struct ath_softc_tgt *sc, struct ath_tx_buf *bf)
                                      rcs, &isProbe);
                ath_hal_memcpy(bf->bf_rcs, rcs, sizeof(rcs));
        } else {
+               struct ath_vap_target *avp;
+
+               avp = &sc->sc_vap[bf->vap_index];
+
                mrcs[1].tries = mrcs[2].tries = mrcs[3].tries = 0;
                mrcs[1].rix = mrcs[2].rix = mrcs[3].rix = 0;
-               mrcs[0].rix   = 0;
+               mrcs[0].rix = ath_get_minrateidx(sc, avp);
                mrcs[0].tries = 1;
                mrcs[0].flags = 0;
                ath_hal_memcpy(bf->bf_rcs, mrcs, sizeof(mrcs));