diff options
author | Jes Sorensen <Jes.Sorensen@redhat.com> | 2016-08-19 17:46:39 -0400 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2016-09-03 12:57:29 -0400 |
commit | 99afaac4278c9581cef17ddc0c842b51f9b6206d (patch) | |
tree | 9fc355958b6fc8d8b2f260c6a45dbc6ac5fdadbd /drivers/net/wireless/realtek | |
parent | 3972cc579140e48e8390fff5e94f6e9e78c3dd87 (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/wireless/realtek')
-rw-r--r-- | drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 12 |
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 | ||