From: Ping-Ke Shih <pks...@realtek.com>

HIQ has higher priority to transmit after TBTT or beacon.

Signed-off-by: Ping-Ke Shih <pks...@realtek.com>
Signed-off-by: Larry Finger <larry.fin...@lwfinger.net>
Cc: Yan-Hsuan Chuang <yhchu...@realtek.com>
Cc: Birming Chiu <birm...@realtek.com>
Cc: Shaofu <sha...@realtek.com>
Cc: Steven Ting <stevent...@realtek.com>
---
 drivers/net/wireless/realtek/rtlwifi/pci.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/net/wireless/realtek/rtlwifi/pci.c 
b/drivers/net/wireless/realtek/rtlwifi/pci.c
index e544f4bcfae9..0a2766385ca2 100644
--- a/drivers/net/wireless/realtek/rtlwifi/pci.c
+++ b/drivers/net/wireless/realtek/rtlwifi/pci.c
@@ -59,6 +59,7 @@ static u8 _rtl_mac_to_hwqueue(struct ieee80211_hw *hw, struct 
sk_buff *skb)
        struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
        __le16 fc = rtl_get_fc(skb);
        u8 queue_index = skb_get_queue_mapping(skb);
+       struct ieee80211_hdr *hdr;
 
        if (unlikely(ieee80211_is_beacon(fc)))
                return BEACON_QUEUE;
@@ -67,6 +68,13 @@ static u8 _rtl_mac_to_hwqueue(struct ieee80211_hw *hw, 
struct sk_buff *skb)
        if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192SE)
                if (ieee80211_is_nullfunc(fc))
                        return HIGH_QUEUE;
+       if (rtlhal->hw_type == HARDWARE_TYPE_RTL8822BE) {
+               hdr = rtl_get_hdr(skb);
+
+               if (is_multicast_ether_addr(hdr->addr1) ||
+                   is_broadcast_ether_addr(hdr->addr1))
+                       return HIGH_QUEUE;
+       }
 
        return ac_to_hwq[queue_index];
 }
-- 
2.14.3

Reply via email to