[][MAC80211][mt76][Rework tx antenna setting in testmode for litepoint]
[Description]
Change tx antenna setting in testmode for merlin (3T3R) to run on litepoint test
[Release-log]
N/A
Change-Id: I55d42003778ab21d98e1da6a0025fac08dc4ceda
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/6449430
diff --git a/autobuild_mac80211_release/package/kernel/mt76/patches/0002-mt76-testmode-rework-tx-antenna-setting.patch b/autobuild_mac80211_release/package/kernel/mt76/patches/0002-mt76-testmode-rework-tx-antenna-setting.patch
index 5ec911f..4600e99 100644
--- a/autobuild_mac80211_release/package/kernel/mt76/patches/0002-mt76-testmode-rework-tx-antenna-setting.patch
+++ b/autobuild_mac80211_release/package/kernel/mt76/patches/0002-mt76-testmode-rework-tx-antenna-setting.patch
@@ -1,19 +1,19 @@
-From e9dd6f5f862331f44f81d95a786f04bbea6f08f2 Mon Sep 17 00:00:00 2001
+From 29fbf66158df1596d043ed568933f1af424ee2d4 Mon Sep 17 00:00:00 2001
From: Shayne Chen <shayne.chen@mediatek.com>
Date: Fri, 25 Feb 2022 09:36:01 +0800
-Subject: [PATCH 02/12] mt76: testmode: rework tx antenna setting
+Subject: [PATCH 2/8] mt76: testmode: rework tx antenna setting
---
- mt7915/mcu.c | 7 +------
- mt7915/testmode.c | 9 +--------
- testmode.c | 4 ++--
- 3 files changed, 4 insertions(+), 16 deletions(-)
+ mt7915/mcu.c | 7 +------
+ mt7915/testmode.c | 12 +++++-------
+ testmode.c | 3 +--
+ 3 files changed, 7 insertions(+), 15 deletions(-)
diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 552352d..f513005 100644
+index 7767bfe..e3123f2 100644
--- a/mt7915/mcu.c
+++ b/mt7915/mcu.c
-@@ -2637,14 +2637,9 @@ int mt7915_mcu_set_chan_info(struct mt7915_phy *phy, int cmd)
+@@ -2640,14 +2640,9 @@ int mt7915_mcu_set_chan_info(struct mt7915_phy *phy, int cmd)
#ifdef CONFIG_NL80211_TESTMODE
if (phy->mt76->test.tx_antenna_mask &&
@@ -30,7 +30,7 @@
#endif
diff --git a/mt7915/testmode.c b/mt7915/testmode.c
-index 20c593d..b8c1da1 100644
+index 0186602..9d46d69 100644
--- a/mt7915/testmode.c
+++ b/mt7915/testmode.c
@@ -474,11 +474,7 @@ mt7915_tm_set_tx_frames(struct mt7915_phy *phy, bool en)
@@ -46,28 +46,38 @@
}
}
-@@ -729,9 +725,6 @@ mt7915_tm_set_params(struct mt76_phy *mphy, struct nlattr **tb,
+@@ -720,8 +716,9 @@ mt7915_tm_set_params(struct mt76_phy *mphy, struct nlattr **tb,
+ {
+ struct mt76_testmode_data *td = &mphy->test;
+ struct mt7915_phy *phy = mphy->priv;
+- u32 changed = 0;
++ u32 chainmask = mphy->chainmask, changed = 0;
+ int i;
++ bool ext_phy = phy != &dev->phy;
+
+ BUILD_BUG_ON(NUM_TM_CHANGED >= 32);
+
+@@ -729,7 +726,8 @@ mt7915_tm_set_params(struct mt76_phy *mphy, struct nlattr **tb,
td->state == MT76_TM_STATE_OFF)
return 0;
- if (td->tx_antenna_mask & ~mphy->chainmask)
-- return -EINVAL;
--
++ chainmask = ext_phy ? chainmask >> dev->chainshift : chainmask;
++ if (td->tx_antenna_mask > chainmask)
+ return -EINVAL;
+
for (i = 0; i < ARRAY_SIZE(tm_change_map); i++) {
- if (tb[tm_change_map[i]])
- changed |= BIT(i);
diff --git a/testmode.c b/testmode.c
-index 382b456..7cd0079 100644
+index 71fd3fb..74a46e9 100644
--- a/testmode.c
+++ b/testmode.c
-@@ -446,8 +446,8 @@ int mt76_testmode_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -443,8 +443,7 @@ int mt76_testmode_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
mt76_tm_get_u8(tb[MT76_TM_ATTR_TX_RATE_LDPC], &td->tx_rate_ldpc, 0, 1) ||
mt76_tm_get_u8(tb[MT76_TM_ATTR_TX_RATE_STBC], &td->tx_rate_stbc, 0, 1) ||
mt76_tm_get_u8(tb[MT76_TM_ATTR_TX_LTF], &td->tx_ltf, 0, 2) ||
- mt76_tm_get_u8(tb[MT76_TM_ATTR_TX_ANTENNA],
- &td->tx_antenna_mask, 0, 0xff) ||
-+ mt76_tm_get_u8(tb[MT76_TM_ATTR_TX_ANTENNA], &td->tx_antenna_mask,
-+ 1, phy->antenna_mask) ||
++ mt76_tm_get_u8(tb[MT76_TM_ATTR_TX_ANTENNA], &td->tx_antenna_mask, 1, 0xff) ||
mt76_tm_get_u8(tb[MT76_TM_ATTR_TX_SPE_IDX], &td->tx_spe_idx, 0, 27) ||
mt76_tm_get_u8(tb[MT76_TM_ATTR_TX_DUTY_CYCLE],
&td->tx_duty_cycle, 0, 99) ||