projects
/
open-ath9k-htc-firmware.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #163 from cloudswei/ctlframe_injection
[open-ath9k-htc-firmware.git]
/
target_firmware
/
wlan
/
if_owl.c
diff --git
a/target_firmware/wlan/if_owl.c
b/target_firmware/wlan/if_owl.c
index f2280691efc9ee538b075457ab4d4ccbb604f5b8..919a4784f9e0c4339f751b7ff0666b0938cc4068 100755
(executable)
--- a/
target_firmware/wlan/if_owl.c
+++ b/
target_firmware/wlan/if_owl.c
@@
-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 {
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[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));
mrcs[0].tries = 1;
mrcs[0].flags = 0;
ath_hal_memcpy(bf->bf_rcs, mrcs, sizeof(mrcs));
@@
-1104,7
+1108,6
@@
ath_tgt_send_mgt(struct ath_softc_tgt *sc,adf_nbuf_t hdr_buf, adf_nbuf_t skb,
hdrlen = ieee80211_anyhdrsize(wh);
pktlen = len;
keyix = HAL_TXKEYIX_INVALID;
hdrlen = ieee80211_anyhdrsize(wh);
pktlen = len;
keyix = HAL_TXKEYIX_INVALID;
- pktlen -= (hdrlen & 3);
pktlen += IEEE80211_CRC_LEN;
if (iswep)
pktlen += IEEE80211_CRC_LEN;
if (iswep)
@@
-1138,6
+1141,8
@@
ath_tgt_send_mgt(struct ath_softc_tgt *sc,adf_nbuf_t hdr_buf, adf_nbuf_t skb,
atype = HAL_PKT_TYPE_NORMAL;
break;
atype = HAL_PKT_TYPE_NORMAL;
break;
+ case IEEE80211_FC0_TYPE_CTL:
+ flags |= HAL_TXDESC_NOACK;
default:
atype = HAL_PKT_TYPE_NORMAL;
break;
default:
atype = HAL_PKT_TYPE_NORMAL;
break;