rtw89: 8852c: add TX power track tables
authorZong-Zhe Yang <kevin_yang@realtek.com>
Thu, 14 Apr 2022 06:20:17 +0000 (14:20 +0800)
committerKalle Valo <kvalo@kernel.org>
Sat, 23 Apr 2022 12:44:49 +0000 (15:44 +0300)
TX power track tables are used to do TX power compensation according to
thermal value. In order to work in existing and new chip, add new 6G
entries, and change type from u8 to s8.

Internal version table is HALRF_027_00_031.

Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220414062027.62638-4-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/phy.h
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
drivers/net/wireless/realtek/rtw89/rtw8852a_table.c
drivers/net/wireless/realtek/rtw89/rtw8852c_table.c
drivers/net/wireless/realtek/rtw89/rtw8852c_table.h

index adcfcb4c242961ba449115e41562eb814e1dfc6b..9c97e77d97072d78cc529050837836eb7ea7ad85 100644 (file)
@@ -233,18 +233,22 @@ struct rtw89_txpwr_byrate_cfg {
 #define DELTA_SWINGIDX_SIZE 30
 
 struct rtw89_txpwr_track_cfg {
-       const u8 (*delta_swingidx_5gb_n)[DELTA_SWINGIDX_SIZE];
-       const u8 (*delta_swingidx_5gb_p)[DELTA_SWINGIDX_SIZE];
-       const u8 (*delta_swingidx_5ga_n)[DELTA_SWINGIDX_SIZE];
-       const u8 (*delta_swingidx_5ga_p)[DELTA_SWINGIDX_SIZE];
-       const u8 *delta_swingidx_2gb_n;
-       const u8 *delta_swingidx_2gb_p;
-       const u8 *delta_swingidx_2ga_n;
-       const u8 *delta_swingidx_2ga_p;
-       const u8 *delta_swingidx_2g_cck_b_n;
-       const u8 *delta_swingidx_2g_cck_b_p;
-       const u8 *delta_swingidx_2g_cck_a_n;
-       const u8 *delta_swingidx_2g_cck_a_p;
+       const s8 (*delta_swingidx_6gb_n)[DELTA_SWINGIDX_SIZE];
+       const s8 (*delta_swingidx_6gb_p)[DELTA_SWINGIDX_SIZE];
+       const s8 (*delta_swingidx_6ga_n)[DELTA_SWINGIDX_SIZE];
+       const s8 (*delta_swingidx_6ga_p)[DELTA_SWINGIDX_SIZE];
+       const s8 (*delta_swingidx_5gb_n)[DELTA_SWINGIDX_SIZE];
+       const s8 (*delta_swingidx_5gb_p)[DELTA_SWINGIDX_SIZE];
+       const s8 (*delta_swingidx_5ga_n)[DELTA_SWINGIDX_SIZE];
+       const s8 (*delta_swingidx_5ga_p)[DELTA_SWINGIDX_SIZE];
+       const s8 *delta_swingidx_2gb_n;
+       const s8 *delta_swingidx_2gb_p;
+       const s8 *delta_swingidx_2ga_n;
+       const s8 *delta_swingidx_2ga_p;
+       const s8 *delta_swingidx_2g_cck_b_n;
+       const s8 *delta_swingidx_2g_cck_b_p;
+       const s8 *delta_swingidx_2g_cck_a_n;
+       const s8 *delta_swingidx_2g_cck_a_p;
 };
 
 struct rtw89_phy_dig_gain_cfg {
index ad272854c442f2aece30b80b7ec334e8f2ca2dda..aa782534e76bea9d205050d98595343ceb0f4b2c 100644 (file)
@@ -2907,10 +2907,10 @@ static void _tssi_set_tmeter_tbl(struct rtw89_dev *rtwdev, enum rtw89_phy_idx ph
        struct rtw89_tssi_info *tssi_info = &rtwdev->tssi;
        u8 ch = rtwdev->hal.current_channel;
        u8 subband = rtwdev->hal.current_subband;
-       const u8 *thm_up_a = NULL;
-       const u8 *thm_down_a = NULL;
-       const u8 *thm_up_b = NULL;
-       const u8 *thm_down_b = NULL;
+       const s8 *thm_up_a = NULL;
+       const s8 *thm_down_a = NULL;
+       const s8 *thm_up_b = NULL;
+       const s8 *thm_down_b = NULL;
        u8 thermal = 0xff;
        s8 thm_ofst[64] = {0};
        u32 tmp = 0;
index 8c4749f1064119385751a8ffc93592c5136d6189..99479bbb093998f8f2ea2b522799eb336acb7d45 100644 (file)
@@ -43313,7 +43313,7 @@ static const struct rtw89_txpwr_byrate_cfg rtw89_8852a_txpwr_byrate[] = {
        { 1, 0, 4, 0, 4, 0x00000000, },
 };
 
-static const u8 _txpwr_track_delta_swingidx_5gb_n[][DELTA_SWINGIDX_SIZE] = {
+static const s8 _txpwr_track_delta_swingidx_5gb_n[][DELTA_SWINGIDX_SIZE] = {
        {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7,
         7, 7, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11},
        {0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4,
@@ -43322,7 +43322,7 @@ static const u8 _txpwr_track_delta_swingidx_5gb_n[][DELTA_SWINGIDX_SIZE] = {
         5, 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9},
 };
 
-static const u8 _txpwr_track_delta_swingidx_5gb_p[][DELTA_SWINGIDX_SIZE] = {
+static const s8 _txpwr_track_delta_swingidx_5gb_p[][DELTA_SWINGIDX_SIZE] = {
        {0, 1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 6, 6,
         6, 7, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11},
        {0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4,
@@ -43331,7 +43331,7 @@ static const u8 _txpwr_track_delta_swingidx_5gb_p[][DELTA_SWINGIDX_SIZE] = {
         5, 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9},
 };
 
-static const u8 _txpwr_track_delta_swingidx_5ga_n[][DELTA_SWINGIDX_SIZE] = {
+static const s8 _txpwr_track_delta_swingidx_5ga_n[][DELTA_SWINGIDX_SIZE] = {
        {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7,
         7, 7, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11},
        {0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4,
@@ -43340,7 +43340,7 @@ static const u8 _txpwr_track_delta_swingidx_5ga_n[][DELTA_SWINGIDX_SIZE] = {
         5, 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9},
 };
 
-static const u8 _txpwr_track_delta_swingidx_5ga_p[][DELTA_SWINGIDX_SIZE] = {
+static const s8 _txpwr_track_delta_swingidx_5ga_p[][DELTA_SWINGIDX_SIZE] = {
        {0, 1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 6, 6,
         6, 7, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11},
        {0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4,
@@ -43349,35 +43349,35 @@ static const u8 _txpwr_track_delta_swingidx_5ga_p[][DELTA_SWINGIDX_SIZE] = {
         5, 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9},
 };
 
-static const u8 _txpwr_track_delta_swingidx_2gb_n[] = {
+static const s8 _txpwr_track_delta_swingidx_2gb_n[] = {
        0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4,
         4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7};
 
-static const u8 _txpwr_track_delta_swingidx_2gb_p[] = {
+static const s8 _txpwr_track_delta_swingidx_2gb_p[] = {
        0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
         2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3};
 
-static const u8 _txpwr_track_delta_swingidx_2ga_n[] = {
+static const s8 _txpwr_track_delta_swingidx_2ga_n[] = {
        0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3,
         3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5};
 
-static const u8 _txpwr_track_delta_swingidx_2ga_p[] = {
+static const s8 _txpwr_track_delta_swingidx_2ga_p[] = {
        0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5,
         6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10};
 
-static const u8 _txpwr_track_delta_swingidx_2g_cck_b_n[] = {
+static const s8 _txpwr_track_delta_swingidx_2g_cck_b_n[] = {
        0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4,
         4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7};
 
-static const u8 _txpwr_track_delta_swingidx_2g_cck_b_p[] = {
+static const s8 _txpwr_track_delta_swingidx_2g_cck_b_p[] = {
        0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
         2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3};
 
-static const u8 _txpwr_track_delta_swingidx_2g_cck_a_n[] = {
+static const s8 _txpwr_track_delta_swingidx_2g_cck_a_n[] = {
        0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3,
         3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5};
 
-static const u8 _txpwr_track_delta_swingidx_2g_cck_a_p[] = {
+static const s8 _txpwr_track_delta_swingidx_2g_cck_a_p[] = {
        0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5,
         6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10};
 
index bd0c4ff5ca4ddba5f175fe6c4e801eea55af60de..e7852d28613796cf54e579e4ed131a871f94efb1 100644 (file)
@@ -13702,6 +13702,126 @@ static const struct rtw89_txpwr_byrate_cfg rtw89_8852c_txpwr_byrate[] = {
        { 2, 0, 4, 0, 4, 0x00000000, },
 };
 
+static const s8 _txpwr_track_delta_swingidx_6gb_n[][DELTA_SWINGIDX_SIZE] = {
+       {0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5,
+        6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10},
+       {0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5,
+        6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10},
+       {0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5,
+        6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10},
+       {0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5,
+        6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10},
+};
+
+static const s8 _txpwr_track_delta_swingidx_6gb_p[][DELTA_SWINGIDX_SIZE] = {
+       {0, 1, 2, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 9, 10, 11,
+        11, 12, 12, 13, 14, 14, 15, 15, 16, 17, 17, 18},
+       {0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 9, 9, 10,
+        10, 11, 11, 12, 12, 13, 13, 14, 15, 15, 16, 16},
+       {0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 9, 9, 10,
+        10, 11, 11, 12, 12, 13, 13, 14, 15, 15, 16, 16},
+       {0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 9, 9, 10,
+        10, 11, 11, 12, 12, 13, 13, 14, 15, 15, 16, 16},
+};
+
+static const s8 _txpwr_track_delta_swingidx_6ga_n[][DELTA_SWINGIDX_SIZE] = {
+       {0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
+        4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6},
+       {0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
+        4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6},
+       {0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
+        4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6},
+       {0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
+        4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6},
+};
+
+static const s8 _txpwr_track_delta_swingidx_6ga_p[][DELTA_SWINGIDX_SIZE] = {
+       {0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
+        9, 9, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15},
+       {0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
+        9, 9, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15},
+       {0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
+        9, 9, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15},
+       {0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
+        9, 9, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15},
+};
+
+static const s8 _txpwr_track_delta_swingidx_5gb_n[][DELTA_SWINGIDX_SIZE] = {
+       {0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5,
+        6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10},
+       {0, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4,
+        5, 5, 5, 5, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8},
+       {0, 1, 1, 2, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 6, 7,
+        7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12},
+};
+
+static const s8 _txpwr_track_delta_swingidx_5gb_p[][DELTA_SWINGIDX_SIZE] = {
+       {0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 8, 8, 9, 9, 10,
+        10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 16},
+       {0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 8, 8, 9, 9, 10,
+        10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 16},
+       {0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 8, 8, 9, 9, 10,
+        10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 16},
+};
+
+static const s8 _txpwr_track_delta_swingidx_5ga_n[][DELTA_SWINGIDX_SIZE] = {
+       {0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
+        4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6},
+       {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
+        2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3},
+       {0, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4,
+        5, 5, 5, 5, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8},
+};
+
+static const s8 _txpwr_track_delta_swingidx_5ga_p[][DELTA_SWINGIDX_SIZE] = {
+       {0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8,
+        8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14},
+       {0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8,
+        8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14},
+       {0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8,
+        8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14},
+};
+
+static const s8 _txpwr_track_delta_swingidx_2gb_n[] = {
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
+};
+
+static const s8 _txpwr_track_delta_swingidx_2gb_p[] = {
+       0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2
+};
+
+static const s8 _txpwr_track_delta_swingidx_2ga_n[] = {
+       0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -2, -2,
+        -2, -2, -2, -2, -2, -2, -3, -3, -3, -3, -3, -3, -3
+};
+
+static const s8 _txpwr_track_delta_swingidx_2ga_p[] = {
+       0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3,
+        3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5
+};
+
+static const s8 _txpwr_track_delta_swingidx_2g_cck_b_n[] = {
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
+};
+
+static const s8 _txpwr_track_delta_swingidx_2g_cck_b_p[] = {
+       0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2
+};
+
+static const s8 _txpwr_track_delta_swingidx_2g_cck_a_n[] = {
+       0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -2, -2,
+        -2, -2, -2, -2, -2, -2, -3, -3, -3, -3, -3, -3, -3
+};
+
+static const s8 _txpwr_track_delta_swingidx_2g_cck_a_p[] = {
+       0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3,
+        3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5
+};
+
 const u8 rtw89_8852c_tx_shape[RTW89_BAND_MAX][RTW89_RS_TX_SHAPE_NUM]
                             [RTW89_REGD_NUM] = {
        [0][0][RTW89_ACMA] = 0,
@@ -19322,3 +19442,22 @@ const struct rtw89_txpwr_table rtw89_8852c_byr_table = {
        .size = ARRAY_SIZE(rtw89_8852c_txpwr_byrate),
        .load = rtw89_phy_load_txpwr_byrate,
 };
+
+const struct rtw89_txpwr_track_cfg rtw89_8852c_trk_cfg = {
+       .delta_swingidx_6gb_n = _txpwr_track_delta_swingidx_6gb_n,
+       .delta_swingidx_6gb_p = _txpwr_track_delta_swingidx_6gb_p,
+       .delta_swingidx_6ga_n = _txpwr_track_delta_swingidx_6ga_n,
+       .delta_swingidx_6ga_p = _txpwr_track_delta_swingidx_6ga_p,
+       .delta_swingidx_5gb_n = _txpwr_track_delta_swingidx_5gb_n,
+       .delta_swingidx_5gb_p = _txpwr_track_delta_swingidx_5gb_p,
+       .delta_swingidx_5ga_n = _txpwr_track_delta_swingidx_5ga_n,
+       .delta_swingidx_5ga_p = _txpwr_track_delta_swingidx_5ga_p,
+       .delta_swingidx_2gb_n = _txpwr_track_delta_swingidx_2gb_n,
+       .delta_swingidx_2gb_p = _txpwr_track_delta_swingidx_2gb_p,
+       .delta_swingidx_2ga_n = _txpwr_track_delta_swingidx_2ga_n,
+       .delta_swingidx_2ga_p = _txpwr_track_delta_swingidx_2ga_p,
+       .delta_swingidx_2g_cck_b_n = _txpwr_track_delta_swingidx_2g_cck_b_n,
+       .delta_swingidx_2g_cck_b_p = _txpwr_track_delta_swingidx_2g_cck_b_p,
+       .delta_swingidx_2g_cck_a_n = _txpwr_track_delta_swingidx_2g_cck_a_n,
+       .delta_swingidx_2g_cck_a_p = _txpwr_track_delta_swingidx_2g_cck_a_p,
+};
index 0c0df2ac8cff7949ca293b6e1b694d808d20239d..616282c9bb9861dd3f4b553d390d8efc1053d691 100644 (file)
@@ -13,6 +13,7 @@ extern const struct rtw89_phy_table rtw89_8852c_phy_radioa_table;
 extern const struct rtw89_phy_table rtw89_8852c_phy_radiob_table;
 extern const struct rtw89_phy_table rtw89_8852c_phy_nctl_table;
 extern const struct rtw89_txpwr_table rtw89_8852c_byr_table;
+extern const struct rtw89_txpwr_track_cfg rtw89_8852c_trk_cfg;
 extern const u8 rtw89_8852c_tx_shape[RTW89_BAND_MAX][RTW89_RS_TX_SHAPE_NUM]
                                    [RTW89_REGD_NUM];
 extern const s8 rtw89_8852c_txpwr_lmt_2g[RTW89_2G_BW_NUM][RTW89_NTX_NUM]