rtw89: Skip useless dig gain and igi related settings for 8852C
authorJohnson Lin <johnson.lin@realtek.com>
Fri, 8 Apr 2022 00:13:48 +0000 (08:13 +0800)
committerKalle Valo <kvalo@kernel.org>
Tue, 12 Apr 2022 13:34:39 +0000 (16:34 +0300)
Separated DIG RX gain, IGI configurations from not supportted HW using
"support_igi" capability flag.

Signed-off-by: Johnson Lin <johnson.lin@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/20220408001353.17188-9-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/phy.c
drivers/net/wireless/realtek/rtw89/rtw8852c.c

index 994869f..eed6dbd 100644 (file)
@@ -2930,6 +2930,9 @@ static void rtw89_phy_dig_update_gain_para(struct rtw89_dev *rtwdev)
        u32 tmp;
        u8 i;
 
+       if (!rtwdev->hal.support_igi)
+               return;
+
        tmp = rtw89_phy_read32_mask(rtwdev, R_PATH0_IB_PKPW,
                                    B_PATH0_IB_PKPW_MSK);
        dig->ib_pkpwr = sign_extend32(tmp >> DIG_GAIN_SHIFT, U8_MAX_BIT);
@@ -3184,6 +3187,9 @@ static void rtw89_phy_dig_config_igi(struct rtw89_dev *rtwdev)
 {
        struct rtw89_dig_info *dig = &rtwdev->dig;
 
+       if (!rtwdev->hal.support_igi)
+               return;
+
        if (dig->force_gaincode_idx_en) {
                rtw89_phy_dig_set_igi_cr(rtwdev, dig->force_gaincode);
                rtw89_debug(rtwdev, RTW89_DBG_DIG,
@@ -3309,8 +3315,7 @@ void rtw89_phy_dig(struct rtw89_dev *rtwdev)
                    dig->igi_rssi, dig->dyn_igi_max, dig->dyn_igi_min,
                    dig->igi_fa_rssi);
 
-       if (rtwdev->hal.support_igi)
-               rtw89_phy_dig_config_igi(rtwdev);
+       rtw89_phy_dig_config_igi(rtwdev);
 
        rtw89_phy_dig_dyn_pd_th(rtwdev, dig->igi_fa_rssi, dig->dyn_pd_th_en);
 
index 9689fc5..ca25433 100644 (file)
@@ -598,6 +598,7 @@ const struct rtw89_chip_info rtw8852c_chip_info = {
        .rf_base_addr           = {0xe000, 0xf000},
        .pwr_on_seq             = NULL,
        .pwr_off_seq            = NULL,
+       .dig_table              = NULL,
        .hw_sec_hdr             = true,
        .sec_ctrl_efuse_size    = 4,
        .physical_efuse_size    = 1216,