package/devel/binutils: Update to 2.27
[openwrt/staging/yousong.git] / package / kernel / mac80211 / patches / 653-0015-rtl8xxxu-Simplify-calculating-of-hw-value-used-for-s.patch
1 From be49b1f111c76ce20a60a90587e2b8e8ab809a06 Mon Sep 17 00:00:00 2001
2 From: Jes Sorensen <Jes.Sorensen@redhat.com>
3 Date: Fri, 19 Aug 2016 17:46:37 -0400
4 Subject: [PATCH] rtl8xxxu: Simplify calculating of hw value used for setting
5 TX rate
6
7 Calculating the value in one place rather than using one calculation
8 in one place and a different one for management frames in another
9 location makes little sense.
10
11 Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
12 Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
13 ---
14 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 7 ++++---
15 1 file changed, 4 insertions(+), 3 deletions(-)
16
17 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
18 +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
19 @@ -4848,7 +4848,8 @@ static void rtl8xxxu_tx(struct ieee80211
20 }
21 }
22
23 - if (rate_flag & IEEE80211_TX_RC_MCS)
24 + if (rate_flag & IEEE80211_TX_RC_MCS &&
25 + !ieee80211_is_mgmt(hdr->frame_control))
26 rate = tx_info->control.rates[0].idx + DESC_RATE_MCS0;
27 else
28 rate = tx_rate->hw_value;
29 @@ -4869,7 +4870,7 @@ static void rtl8xxxu_tx(struct ieee80211
30 tx_desc->txdw1 |= cpu_to_le32(TXDESC32_AGG_BREAK);
31
32 if (ieee80211_is_mgmt(hdr->frame_control)) {
33 - tx_desc->txdw5 = cpu_to_le32(tx_rate->hw_value);
34 + tx_desc->txdw5 = cpu_to_le32(rate);
35 tx_desc->txdw4 |=
36 cpu_to_le32(TXDESC32_USE_DRIVER_RATE);
37 tx_desc->txdw5 |=
38 @@ -4923,7 +4924,7 @@ static void rtl8xxxu_tx(struct ieee80211
39 tx_desc40->txdw2 |= cpu_to_le32(TXDESC40_AGG_BREAK);
40
41 if (ieee80211_is_mgmt(hdr->frame_control)) {
42 - tx_desc40->txdw4 = cpu_to_le32(tx_rate->hw_value);
43 + tx_desc40->txdw4 = cpu_to_le32(rate);
44 tx_desc40->txdw3 |=
45 cpu_to_le32(TXDESC40_USE_DRIVER_RATE);
46 tx_desc40->txdw4 |=