diff options
| author | Lorenzo Bianconi <lorenzo.bianconi83@gmail.com> | 2013-12-09 17:37:49 -0500 |
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2013-12-11 10:56:22 -0500 |
| commit | 55957fb7a0b61d8ab6ff3f04e279b8fc22b738fa (patch) | |
| tree | 88f4e1626c9091533f4e020f90cff300c0848aa0 | |
| parent | 22d072f60884edaa68f1665576e8983118f59ead (diff) | |
ath9k: initialize retry chain flags in tx99 code
Initialize first chain flags in ath9k_build_tx99_skb() according to
configured channel mode and channel width
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
| -rw-r--r-- | drivers/net/wireless/ath/ath9k/tx99.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/tx99.c b/drivers/net/wireless/ath/ath9k/tx99.c index 57d775783ec8..b686a7498450 100644 --- a/drivers/net/wireless/ath/ath9k/tx99.c +++ b/drivers/net/wireless/ath/ath9k/tx99.c | |||
| @@ -48,7 +48,9 @@ static struct sk_buff *ath9k_build_tx99_skb(struct ath_softc *sc) | |||
| 48 | 0x02, 0x23, 0x23, 0xab, 0x63, 0x89, 0x51, 0xb3, | 48 | 0x02, 0x23, 0x23, 0xab, 0x63, 0x89, 0x51, 0xb3, |
| 49 | 0xe7, 0x8b, 0x72, 0x90, 0x4c, 0xe8, 0xfb, 0xc0}; | 49 | 0xe7, 0x8b, 0x72, 0x90, 0x4c, 0xe8, 0xfb, 0xc0}; |
| 50 | u32 len = 1200; | 50 | u32 len = 1200; |
| 51 | struct ieee80211_tx_rate *rate; | ||
| 51 | struct ieee80211_hw *hw = sc->hw; | 52 | struct ieee80211_hw *hw = sc->hw; |
| 53 | struct ath_hw *ah = sc->sc_ah; | ||
| 52 | struct ieee80211_hdr *hdr; | 54 | struct ieee80211_hdr *hdr; |
| 53 | struct ieee80211_tx_info *tx_info; | 55 | struct ieee80211_tx_info *tx_info; |
| 54 | struct sk_buff *skb; | 56 | struct sk_buff *skb; |
| @@ -73,10 +75,16 @@ static struct sk_buff *ath9k_build_tx99_skb(struct ath_softc *sc) | |||
| 73 | 75 | ||
| 74 | tx_info = IEEE80211_SKB_CB(skb); | 76 | tx_info = IEEE80211_SKB_CB(skb); |
| 75 | memset(tx_info, 0, sizeof(*tx_info)); | 77 | memset(tx_info, 0, sizeof(*tx_info)); |
| 78 | rate = &tx_info->control.rates[0]; | ||
| 76 | tx_info->band = hw->conf.chandef.chan->band; | 79 | tx_info->band = hw->conf.chandef.chan->band; |
| 77 | tx_info->flags = IEEE80211_TX_CTL_NO_ACK; | 80 | tx_info->flags = IEEE80211_TX_CTL_NO_ACK; |
| 78 | tx_info->control.vif = sc->tx99_vif; | 81 | tx_info->control.vif = sc->tx99_vif; |
| 79 | tx_info->control.rates[0].count = 1; | 82 | rate->count = 1; |
| 83 | if (ah->curchan && IS_CHAN_HT(ah->curchan)) { | ||
| 84 | rate->flags |= IEEE80211_TX_RC_MCS; | ||
| 85 | if (IS_CHAN_HT40(ah->curchan)) | ||
| 86 | rate->flags |= IEEE80211_TX_RC_40_MHZ_WIDTH; | ||
| 87 | } | ||
| 80 | 88 | ||
| 81 | memcpy(skb->data + sizeof(*hdr), PN9Data, sizeof(PN9Data)); | 89 | memcpy(skb->data + sizeof(*hdr), PN9Data, sizeof(PN9Data)); |
| 82 | 90 | ||
