[rdkb][common][bsp][Refactor and sync wifi from openwrt]
[Description]
c7470cd7 [MAC80211][misc][Refactor WiFi7 MLO Script change into patch files]
e4aa1c1d [MAC80211][WiFi6][mt76][fix rx filter cr]
75b0445f [MAC80211][WiFi6][mt76][Fix inconsistent QoS mapping between SW and HW for STA IFs]
1ef858e8 [MAC80211][WiFi6][core][Fix inconsistent QoS mapping between AP and AP_VLAN VIFs]
[Release-log]
Change-Id: Ic8bcc0d6031b69788092f644860b98c6c035bfe5
diff --git a/recipes-wifi/linux-mt76/files/patches/0017-wifi-mt76-mt7915-fix-inconsistent-QoS-mapping-betwee.patch b/recipes-wifi/linux-mt76/files/patches/0017-wifi-mt76-mt7915-fix-inconsistent-QoS-mapping-betwee.patch
index d4d3d2e..88b589a 100644
--- a/recipes-wifi/linux-mt76/files/patches/0017-wifi-mt76-mt7915-fix-inconsistent-QoS-mapping-betwee.patch
+++ b/recipes-wifi/linux-mt76/files/patches/0017-wifi-mt76-mt7915-fix-inconsistent-QoS-mapping-betwee.patch
@@ -1,4 +1,4 @@
-From 9c6e5082d5552ac2cefe5b4857da4b29b0c76685 Mon Sep 17 00:00:00 2001
+From 0a59757ea8e0ea066053cb6b58da3570a4092c09 Mon Sep 17 00:00:00 2001
From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
Date: Thu, 25 Apr 2024 17:17:13 +0800
Subject: [PATCH] wifi: mt76: mt7915: fix inconsistent QoS mapping between SW
@@ -10,10 +10,10 @@
Signed-off-by: Benjamin Lin <benjamin-jw.lin@mediatek.com>
---
mt76_connac_mcu.h | 1 +
- mt7915/main.c | 3 +++
+ mt7915/main.c | 5 +++++
mt7915/mcu.c | 37 +++++++++++++++++++++++++++++++++++++
- mt7915/mt7915.h | 1 +
- 4 files changed, 42 insertions(+)
+ mt7915/mt7915.h | 3 +++
+ 4 files changed, 46 insertions(+)
diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
index 1dd8244..0936c1c 100644
@@ -28,21 +28,23 @@
enum {
diff --git a/mt7915/main.c b/mt7915/main.c
-index 5ed84bc..26f9a5a 100644
+index 5ed84bc..c6880ca 100644
--- a/mt7915/main.c
+++ b/mt7915/main.c
-@@ -646,6 +646,9 @@ static void mt7915_bss_info_changed(struct ieee80211_hw *hw,
- }
- }
+@@ -1697,6 +1697,11 @@ mt7915_net_fill_forward_path(struct ieee80211_hw *hw,
-+ if (changed & BSS_CHANGED_QOS)
+ ctx->dev = NULL;
+
++ if (!mvif->qos_map_enabled) {
+ mt7915_mcu_set_qos_map(dev, vif);
++ mvif->qos_map_enabled = true;
++ }
+
- /* ensure that enable txcmd_mode after bss_info */
- if (changed & (BSS_CHANGED_QOS | BSS_CHANGED_BEACON_ENABLED))
- mt7915_mcu_set_tx(dev, vif);
+ return 0;
+ }
+ #endif
diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 446c512..3d7fc6d 100644
+index 446c512..64d2710 100644
--- a/mt7915/mcu.c
+++ b/mt7915/mcu.c
@@ -4212,3 +4212,40 @@ int mt7915_mcu_rf_regval(struct mt7915_dev *dev, u32 regidx, u32 *val, bool set)
@@ -84,13 +86,22 @@
+ rcu_read_unlock();
+
+ return mt76_mcu_send_msg(&dev->mt76, MCU_WA_EXT_CMD(SET_QOS_MAP), &req,
-+ sizeof(req), true);
++ sizeof(req), false);
+}
diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 74cd8ca..66d87d7 100644
+index 74cd8ca..c813433 100644
--- a/mt7915/mt7915.h
+++ b/mt7915/mt7915.h
-@@ -521,6 +521,7 @@ int mt7915_mcu_fw_dbg_ctrl(struct mt7915_dev *dev, u32 module, u8 level);
+@@ -175,6 +175,8 @@ struct mt7915_vif {
+
+ struct ieee80211_tx_queue_params queue_params[IEEE80211_NUM_ACS];
+ struct cfg80211_bitrate_mask bitrate_mask;
++
++ bool qos_map_enabled;
+ };
+
+ /* crash-dump */
+@@ -521,6 +523,7 @@ int mt7915_mcu_fw_dbg_ctrl(struct mt7915_dev *dev, u32 module, u8 level);
void mt7915_mcu_rx_event(struct mt7915_dev *dev, struct sk_buff *skb);
void mt7915_mcu_exit(struct mt7915_dev *dev);
void mt7915_mcu_wmm_pbc_work(struct work_struct *work);