aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLorenzo Bianconi <lorenzo.bianconi83@gmail.com>2013-12-09 17:37:49 -0500
committerJohn W. Linville <linville@tuxdriver.com>2013-12-11 10:56:22 -0500
commit55957fb7a0b61d8ab6ff3f04e279b8fc22b738fa (patch)
tree88f4e1626c9091533f4e020f90cff300c0848aa0
parent22d072f60884edaa68f1665576e8983118f59ead (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.c10
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