Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 259755
b: refs/heads/master
c: 94daaf7
h: refs/heads/master
i:
  259753: 84a4e01
  259751: 85d80f3
v: v3
  • Loading branch information
Roland Vossen authored and Greg Kroah-Hartman committed Jul 5, 2011
1 parent 3ec8504 commit 9b02996
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b15c75830d235fce61d0ee8e326e758cd50e7af4
refs/heads/master: 94daaf708bf9d9e642a142b64852f8e60154a890
30 changes: 23 additions & 7 deletions trunk/drivers/staging/brcm80211/brcmsmac/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -4370,8 +4370,18 @@ brcms_c_dotxstatus(struct brcms_c_info *wlc, tx_status_t *txs, u32 frm_tx2)
if (!lastframe) {
wiphy_err(wlc->wiphy, "Not last frame!\n");
} else {
u16 sfbl, lfbl;
ieee80211_tx_info_clear_status(tx_info);
/*
* Set information to be consumed by Minstrel ht.
*
* The "fallback limit" is the number of tx attempts a given
* MPDU is sent at the "primary" rate. Tx attempts beyond that
* limit are sent at the "secondary" rate.
* A 'short frame' does not exceed RTS treshold.
*/
u16 sfbl, /* Short Frame Rate Fallback Limit */
lfbl, /* Long Frame Rate Fallback Limit */
fbl;

if (queue < AC_COUNT) {
sfbl = WLC_WME_RETRY_SFB_GET(wlc, wme_fifo2ac[queue]);
lfbl = WLC_WME_RETRY_LFB_GET(wlc, wme_fifo2ac[queue]);
Expand All @@ -4381,14 +4391,20 @@ brcms_c_dotxstatus(struct brcms_c_info *wlc, tx_status_t *txs, u32 frm_tx2)
}

txrate = tx_info->status.rates;
/* FIXME: this should use a combination of sfbl, lfbl depending on frame length and RTS setting */
if ((tx_frame_count > sfbl) && (txrate[1].idx >= 0)) {
if (txrate[0].flags & IEEE80211_TX_RC_USE_RTS_CTS)
fbl = lfbl;
else
fbl = sfbl;

ieee80211_tx_info_clear_status(tx_info);

if ((tx_frame_count > fbl) && (txrate[1].idx >= 0)) {
/* rate selection requested a fallback rate and we used it */
txrate->count = lfbl;
txrate[1].count = tx_frame_count - lfbl;
txrate[0].count = fbl;
txrate[1].count = tx_frame_count - fbl;
} else {
/* rate selection did not request fallback rate, or we didn't need it */
txrate->count = tx_frame_count;
txrate[0].count = tx_frame_count;
/* rc80211_minstrel.c:minstrel_tx_status() expects unused rates to be marked with idx = -1 */
txrate[1].idx = -1;
txrate[1].count = 0;
Expand Down

0 comments on commit 9b02996

Please sign in to comment.