]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: rtw88: Make txagc_remnant_ofdm an array
authorBitterblue Smith <rtl8821cerfe2@gmail.com>
Wed, 23 Oct 2024 14:10:54 +0000 (17:10 +0300)
committerPing-Ke Shih <pkshih@realtek.com>
Tue, 29 Oct 2024 03:59:03 +0000 (11:59 +0800)
txagc_remnant_ofdm member of struct rtw_dm_info should be different for
each RF path, so make it an array of size RTW_RF_PATH_MAX (4).

Until now all the chips using this had only one RF path, but RTL8812AU
has two, and RTL8814AU has four.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/68571ba9-e504-4b2d-bfa1-62f468753649@gmail.com
drivers/net/wireless/realtek/rtw88/main.h
drivers/net/wireless/realtek/rtw88/phy.c
drivers/net/wireless/realtek/rtw88/rtw8703b.c
drivers/net/wireless/realtek/rtw88/rtw8723d.c

index 64bc43cdd2097786f54ee7b75db0eb57f9915521..45f0e8fff4538356f30af2f71715c38235eb138f 100644 (file)
@@ -1715,7 +1715,7 @@ struct rtw_dm_info {
        bool pwr_trk_init_trigger;
        struct ewma_thermal avg_thermal[RTW_RF_PATH_MAX];
        s8 txagc_remnant_cck;
-       s8 txagc_remnant_ofdm;
+       s8 txagc_remnant_ofdm[RTW_RF_PATH_MAX];
        u8 rx_cck_agc_report_type;
 
        /* backup dack results for each path and I/Q */
index db36276ccabc96ac3bdb0641d3bee233041324fd..d7b8efbd0d3c6cf3630f769aff26ed464c4fef6d 100644 (file)
@@ -2169,8 +2169,8 @@ void rtw_get_tx_power_params(struct rtw_dev *rtwdev, u8 path, u8 rate, u8 bw,
 
        *limit = rtw_phy_get_tx_power_limit(rtwdev, band, bw, path,
                                            rate, ch, regd);
-       *remnant = (rate <= DESC_RATE11M ? dm_info->txagc_remnant_cck :
-                   dm_info->txagc_remnant_ofdm);
+       *remnant = rate <= DESC_RATE11M ? dm_info->txagc_remnant_cck :
+                                         dm_info->txagc_remnant_ofdm[path];
        *sar = rtw_phy_get_tx_power_sar(rtwdev, hal->sar_band, path, rate);
 }
 
index f6f6635b46e18e23be3fc01ac693f42f220b631c..dec0cec4ca22d95a29892475f1177756f58a73dc 100644 (file)
@@ -637,7 +637,7 @@ static void rtw8703b_pwrtrack_init(struct rtw_dev *rtwdev)
        dm_info->pwr_trk_init_trigger = true;
        dm_info->thermal_meter_k = rtwdev->efuse.thermal_meter_k;
        dm_info->txagc_remnant_cck = 0;
-       dm_info->txagc_remnant_ofdm = 0;
+       dm_info->txagc_remnant_ofdm[RF_PATH_A] = 0;
 }
 
 static void rtw8703b_phy_set_param(struct rtw_dev *rtwdev)
@@ -1589,7 +1589,7 @@ static void rtw8703b_pwrtrack_set_ofdm_pwr(struct rtw_dev *rtwdev, s8 swing_idx,
 {
        struct rtw_dm_info *dm_info = &rtwdev->dm_info;
 
-       dm_info->txagc_remnant_ofdm = txagc_idx;
+       dm_info->txagc_remnant_ofdm[RF_PATH_A] = txagc_idx;
 
        /* Only path A is calibrated for rtl8703b */
        rtw8703b_set_iqk_matrix(rtwdev, swing_idx, RF_PATH_A);
index a0bf37a5863237064620bbcfb1269e85f492c312..1d99bb89ef1df7c1090593179f1cf846a40ac047 100644 (file)
@@ -79,7 +79,7 @@ static void rtw8723d_pwrtrack_init(struct rtw_dev *rtwdev)
        dm_info->pwr_trk_init_trigger = true;
        dm_info->thermal_meter_k = rtwdev->efuse.thermal_meter_k;
        dm_info->txagc_remnant_cck = 0;
-       dm_info->txagc_remnant_ofdm = 0;
+       dm_info->txagc_remnant_ofdm[RF_PATH_A] = 0;
 }
 
 static void rtw8723d_phy_set_param(struct rtw_dev *rtwdev)
@@ -1265,7 +1265,7 @@ static void rtw8723d_pwrtrack_set_ofdm_pwr(struct rtw_dev *rtwdev, s8 swing_idx,
 {
        struct rtw_dm_info *dm_info = &rtwdev->dm_info;
 
-       dm_info->txagc_remnant_ofdm = txagc_idx;
+       dm_info->txagc_remnant_ofdm[RF_PATH_A] = txagc_idx;
 
        rtw8723d_set_iqk_matrix(rtwdev, swing_idx, RF_PATH_A);
        rtw8723d_set_iqk_matrix(rtwdev, swing_idx, RF_PATH_B);