aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorJes Sorensen <Jes.Sorensen@redhat.com>2016-08-19 17:46:39 -0400
committerKalle Valo <kvalo@codeaurora.org>2016-09-03 12:57:29 -0400
commit99afaac4278c9581cef17ddc0c842b51f9b6206d (patch)
tree9fc355958b6fc8d8b2f260c6a45dbc6ac5fdadbd /drivers/net
parent3972cc579140e48e8390fff5e94f6e9e78c3dd87 (diff)
rtl8xxxu: Determine need for shore preamble before updating TX descriptors
Another patch to move this detection out of the code handling the TX descriptor update. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
index 6dc3f52d0aaf..cfb2dfd54277 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
@@ -4770,7 +4770,7 @@ static void rtl8xxxu_tx(struct ieee80211_hw *hw,
4770 u16 rate_flag = tx_info->control.rates[0].flags; 4770 u16 rate_flag = tx_info->control.rates[0].flags;
4771 int tx_desc_size = priv->fops->tx_desc_size; 4771 int tx_desc_size = priv->fops->tx_desc_size;
4772 int ret; 4772 int ret;
4773 bool usedesc40, ampdu_enable, sgi = false; 4773 bool usedesc40, ampdu_enable, sgi = false, short_preamble = false;
4774 4774
4775 if (skb_headroom(skb) < tx_desc_size) { 4775 if (skb_headroom(skb) < tx_desc_size) {
4776 dev_warn(dev, 4776 dev_warn(dev,
@@ -4860,6 +4860,10 @@ static void rtl8xxxu_tx(struct ieee80211_hw *hw,
4860 (IEEE80211_HT_CAP_SGI_40 | IEEE80211_HT_CAP_SGI_20))) 4860 (IEEE80211_HT_CAP_SGI_40 | IEEE80211_HT_CAP_SGI_20)))
4861 sgi = true; 4861 sgi = true;
4862 4862
4863 if (rate_flag & IEEE80211_TX_RC_USE_SHORT_PREAMBLE ||
4864 (sta && vif && vif->bss_conf.use_short_preamble))
4865 short_preamble = true;
4866
4863 seq_number = IEEE80211_SEQ_TO_SN(le16_to_cpu(hdr->seq_ctrl)); 4867 seq_number = IEEE80211_SEQ_TO_SN(le16_to_cpu(hdr->seq_ctrl));
4864 if (!usedesc40) { 4868 if (!usedesc40) {
4865 tx_desc->txdw5 = cpu_to_le32(rate); 4869 tx_desc->txdw5 = cpu_to_le32(rate);
@@ -4888,8 +4892,7 @@ static void rtl8xxxu_tx(struct ieee80211_hw *hw,
4888 if (ieee80211_is_data_qos(hdr->frame_control)) 4892 if (ieee80211_is_data_qos(hdr->frame_control))
4889 tx_desc->txdw4 |= cpu_to_le32(TXDESC32_QOS); 4893 tx_desc->txdw4 |= cpu_to_le32(TXDESC32_QOS);
4890 4894
4891 if (rate_flag & IEEE80211_TX_RC_USE_SHORT_PREAMBLE || 4895 if (short_preamble)
4892 (sta && vif && vif->bss_conf.use_short_preamble))
4893 tx_desc->txdw4 |= cpu_to_le32(TXDESC32_SHORT_PREAMBLE); 4896 tx_desc->txdw4 |= cpu_to_le32(TXDESC32_SHORT_PREAMBLE);
4894 4897
4895 if (sgi) 4898 if (sgi)
@@ -4935,8 +4938,7 @@ static void rtl8xxxu_tx(struct ieee80211_hw *hw,
4935 cpu_to_le32(TXDESC40_RETRY_LIMIT_ENABLE); 4938 cpu_to_le32(TXDESC40_RETRY_LIMIT_ENABLE);
4936 } 4939 }
4937 4940
4938 if (rate_flag & IEEE80211_TX_RC_USE_SHORT_PREAMBLE || 4941 if (short_preamble)
4939 (sta && vif && vif->bss_conf.use_short_preamble))
4940 tx_desc40->txdw5 |= 4942 tx_desc40->txdw5 |=
4941 cpu_to_le32(TXDESC40_SHORT_PREAMBLE); 4943 cpu_to_le32(TXDESC40_SHORT_PREAMBLE);
4942 4944