[][MAC80211][mt76][Fix eBF 160MHz issue]

[Description]
Fix eBF 160MHz cannot be applied due to wrong BW definition
Fix iwpriv ATECTRLBANDIDX issue in AX8400

[Release-log]
N/A

Change-Id: I61d56f3fa14ef49b23e4be09c2da21ee41bc4157
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/6954232
diff --git a/autobuild_mac80211_release/package/kernel/mt76/patches/1116-mt76-testmode-add-iBF-eBF-cal-and-cert-commands-with.patch b/autobuild_mac80211_release/package/kernel/mt76/patches/1116-mt76-testmode-add-iBF-eBF-cal-and-cert-commands-with.patch
index 47f5fac..264bb50 100644
--- a/autobuild_mac80211_release/package/kernel/mt76/patches/1116-mt76-testmode-add-iBF-eBF-cal-and-cert-commands-with.patch
+++ b/autobuild_mac80211_release/package/kernel/mt76/patches/1116-mt76-testmode-add-iBF-eBF-cal-and-cert-commands-with.patch
@@ -1,8 +1,7 @@
-From 315b1e8f38eac8bfd96b7dc3e34ac48400267446 Mon Sep 17 00:00:00 2001
+From acc136bc397c9417ca42de7642ede1c35745dae3 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Thu, 15 Dec 2022 19:45:18 +0800
-Subject: [PATCH 1116/1131] mt76: testmode: add iBF/eBF cal and cert commands
- with golden
+Subject: [PATCH] mt76: testmode: add iBF/eBF cal and cert commands with golden
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 ---
@@ -17,12 +16,12 @@
  mt7915/mtk_debugfs.c |  35 ++++
  mt7915/mtk_mcu.c     | 246 ++++++++++++++++++++++-
  mt7915/regs.h        |   4 +
- mt7915/testmode.c    | 458 ++++++++++++++++++++++++++++---------------
+ mt7915/testmode.c    | 460 ++++++++++++++++++++++++++++---------------
  mt7915/testmode.h    | 134 +------------
  testmode.c           |   1 +
  testmode.h           |   9 +
  tools/fields.c       |   9 +
- 16 files changed, 855 insertions(+), 323 deletions(-)
+ 16 files changed, 856 insertions(+), 324 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
 index 2bacc1b..c6aefbf 100644
@@ -858,7 +857,7 @@
  #define MT_WF_RMAC_BASE(_band)		((_band) ? 0x820f5000 : 0x820e5000)
  #define MT_WF_RMAC(_band, ofs)		(MT_WF_RMAC_BASE(_band) + (ofs))
 diff --git a/mt7915/testmode.c b/mt7915/testmode.c
-index 2ae6c07..70382b9 100644
+index 2ae6c07..e4af5e1 100644
 --- a/mt7915/testmode.c
 +++ b/mt7915/testmode.c
 @@ -53,6 +53,8 @@ struct reg_band {
@@ -932,8 +931,8 @@
 -		ndp_rate = 16;
 -	else
 -		ndp_rate = 24;
-+	/* TODO: check 160Hz */
-+	bf_bw = mt7915_tm_chan_bw(phy->mt76->chandef.width);
++	/* BF use CMD_CBW instead of TM_CBW */
++	bf_bw = mt76_connac_chan_bw(&phy->mt76->chandef);
  
  	skb = mt76_connac_mcu_alloc_sta_req(&dev->mt76, &mvif->mt76,
  					    &msta->wcid);
@@ -994,8 +993,8 @@
  {
 +#define EBF_BBP_RX_OFFSET	0x10280
 +#define EBF_BBP_RX_ENABLE	(BIT(0) | BIT(15))
-+#define WF1			BIT(1)
-+#define WF2			BIT(2)
++#define WF1			1
++#define WF2			2
  	struct mt76_testmode_data *td = &phy->mt76->test;
  	struct mt7915_dev *dev = phy->dev;
 +	struct mt76_phy *mphy = phy->mt76;
@@ -1064,7 +1063,7 @@
 +	mt7915_init_vif(phy, td->second_vif, td->bf_en);
 +
 +	if (td->ebf && !td->is_txbf_dut) {
-+		bool is_160hz = val[1];
++		u8 is_160hz = val[1];
 +
 +		/* Turn On BBP CR for RX */
 +		mt76_set(dev, EBF_BBP_RX_OFFSET, EBF_BBP_RX_ENABLE);
@@ -1074,7 +1073,7 @@
 +		td->tx_antenna_mask = 1;
 +		if (is_mt7915(&dev->mt76)) {
 +			/* Add WF1/WF2 for dbdc/single band in BW 160 */
-+			td->tx_antenna_mask |= is_160hz & (dev->dbdc_support ? WF1 : WF2);
++			td->tx_antenna_mask |= is_160hz << (dev->dbdc_support ? WF1 : WF2);
 +			/* Shift to WF2/WF3 for dbdc band 1 */
 +			td->tx_antenna_mask <<= 2 * phy->mt76->band_idx;
 +		}
@@ -1185,7 +1184,7 @@
 -	rate.type = MT_PHY_TYPE_HT;
 -	rate.bw = mt7915_tm_chan_bw(phy->mt76->chandef.width);
 +	rate.type = mt7915_tm_rate_to_phy(td->tx_rate_mode);
-+	rate.bw = mt7915_tm_chan_bw(phy->mt76->chandef.width);		/* TODO: check 160Hz */
++	rate.bw = mt76_connac_chan_bw(&phy->mt76->chandef);
  	rate.nss = ed->tx_rate_nss;
  	rate.mcs = ed->tx_rate_idx;
  	rate.ldpc = (rate.bw || ed->tx_rate_ldpc) * GENMASK(2, 0);
@@ -1233,7 +1232,7 @@
  	u8 pfmu_idx = val[0], nc = val[2], nr;
  	bool is_atenl = val[6];
  	int ret;
-@@ -729,11 +821,15 @@ mt7915_tm_txbf_profile_update(struct mt7915_phy *phy, u16 *val, bool ebf)
+@@ -729,18 +821,22 @@ mt7915_tm_txbf_profile_update(struct mt7915_phy *phy, u16 *val, bool ebf)
  	tag->t1.nr = nr;
  	tag->t1.nc = nc;
  	tag->t1.invalid_prof = true;
@@ -1242,7 +1241,7 @@
 -	tag->t1.snr_sts5 = 0xff;
 -	tag->t1.snr_sts6 = 0xff;
 -	tag->t1.snr_sts7 = 0xff;
-+	tag->t1.data_bw = mt7915_tm_chan_bw(phy->mt76->chandef.width); /* TODO: check 160Hz */
++	tag->t1.data_bw = mt76_connac_chan_bw(&phy->mt76->chandef);
 +	tag->t2.se_idx = td->tx_spe_idx;
 +
 +	if (is_atenl) {
@@ -1254,6 +1253,14 @@
  
  	if (ebf) {
  		tag->t1.row_id1 = 0;
+ 		tag->t1.row_id2 = 1;
+ 		tag->t1.row_id3 = 2;
+ 		tag->t1.row_id4 = 3;
+-		tag->t1.lm = mode_to_lm[MT76_TM_TX_MODE_HT];
++		tag->t1.lm = mode_to_lm[td->tx_rate_mode];
+ 	} else {
+ 		tag->t1.row_id1 = 4;
+ 		tag->t1.row_id2 = 5;
 @@ -761,6 +857,19 @@ mt7915_tm_txbf_profile_update(struct mt7915_phy *phy, u16 *val, bool ebf)
  	if (ret)
  		return ret;
@@ -1905,5 +1912,5 @@
  
  static const char * const testmode_offchan_bw[] = {
 -- 
-2.36.1
+2.18.0
 
diff --git a/feed/atenl/files/iwpriv.sh b/feed/atenl/files/iwpriv.sh
index 949c371..f1162ba 100755
--- a/feed/atenl/files/iwpriv.sh
+++ b/feed/atenl/files/iwpriv.sh
@@ -126,7 +126,9 @@
         fi
     elif [ "${band_idx}" = "1" ]; then
         if [[ $1 == "rai"* ]]; then
-            phy_idx=1
+            # AX8400: mt7915 remain phy0
+            # AX7800: mt7916 becomes phy1
+            phy_idx=$((start_idx_7986-1))
         elif [[ $1 == "ra"* ]]; then
             phy_idx=$((start_idx_7986+1))
         fi