[][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) ||