Skip to content

Commit

Permalink
ath9k: Use the Beacon TX rate from mac80211
Browse files Browse the repository at this point in the history
Instead of hardcoding the lowest rate for Beacon frames, use the rate
index specified in the mac80211 TX info in AP mode.

Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Jouni Malinen authored and John W. Linville committed Feb 16, 2010
1 parent bef5d1c commit 64b8401
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions drivers/net/wireless/ath/ath9k/beacon.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ int ath_beaconq_config(struct ath_softc *sc)
* Beacons are always sent out at the lowest rate, and are not retried.
*/
static void ath_beacon_setup(struct ath_softc *sc, struct ath_vif *avp,
struct ath_buf *bf)
struct ath_buf *bf, int rateidx)
{
struct sk_buff *skb = bf->bf_mpdu;
struct ath_hw *ah = sc->sc_ah;
Expand Down Expand Up @@ -96,9 +96,9 @@ static void ath_beacon_setup(struct ath_softc *sc, struct ath_vif *avp,
ds->ds_data = bf->bf_buf_addr;

sband = &sc->sbands[common->hw->conf.channel->band];
rate = sband->bitrates[0].hw_value;
rate = sband->bitrates[rateidx].hw_value;
if (sc->sc_flags & SC_OP_PREAMBLE_SHORT)
rate |= sband->bitrates[0].hw_value_short;
rate |= sband->bitrates[rateidx].hw_value_short;

ath9k_hw_set11n_txdesc(ah, ds, skb->len + FCS_LEN,
ATH9K_PKT_TYPE_BEACON,
Expand Down Expand Up @@ -206,7 +206,7 @@ static struct ath_buf *ath_beacon_generate(struct ieee80211_hw *hw,
}
}

ath_beacon_setup(sc, avp, bf);
ath_beacon_setup(sc, avp, bf, info->control.rates[0].idx);

while (skb) {
ath_tx_cabq(hw, skb);
Expand Down Expand Up @@ -237,7 +237,7 @@ static void ath_beacon_start_adhoc(struct ath_softc *sc,
bf = avp->av_bcbuf;
skb = bf->bf_mpdu;

ath_beacon_setup(sc, avp, bf);
ath_beacon_setup(sc, avp, bf, 0);

/* NB: caller is known to have already stopped tx dma */
ath9k_hw_puttxbuf(ah, sc->beacon.beaconq, bf->bf_daddr);
Expand Down

0 comments on commit 64b8401

Please sign in to comment.