rtw89: disabled IGI configuration for unsupported hardware
authorJohnson Lin <johnson.lin@realtek.com>
Fri, 18 Mar 2022 02:32:09 +0000 (10:32 +0800)
committerKalle Valo <kvalo@kernel.org>
Wed, 6 Apr 2022 07:48:15 +0000 (10:48 +0300)
Bypass IGI, known as Rx gain, adjustment flow for incompatible hardware
architectures.

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/20220318023214.32411-7-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/core.c
drivers/net/wireless/realtek/rtw89/core.h
drivers/net/wireless/realtek/rtw89/phy.c

index c610613..bce4834 100644 (file)
@@ -2752,6 +2752,8 @@ static void rtw89_core_setup_phycap(struct rtw89_dev *rtwdev)
        rtwdev->hal.support_cckpd =
                !(rtwdev->chip->chip_id == RTL8852A && rtwdev->hal.cv <= CHIP_CBV) &&
                !(rtwdev->chip->chip_id == RTL8852B && rtwdev->hal.cv <= CHIP_CAV);
+       rtwdev->hal.support_igi =
+               rtwdev->chip->chip_id == RTL8852A && rtwdev->hal.cv <= CHIP_CBV;
 }
 
 static int rtw89_chip_efuse_info_setup(struct rtw89_dev *rtwdev)
index 5900cbc..725484b 100644 (file)
@@ -2489,6 +2489,7 @@ struct rtw89_hal {
        u8 tx_nss;
        u8 rx_nss;
        bool support_cckpd;
+       bool support_igi;
 };
 
 #define RTW89_MAX_MAC_ID_NUM 128
index c27148a..193afb1 100644 (file)
@@ -3309,7 +3309,8 @@ void rtw89_phy_dig(struct rtw89_dev *rtwdev)
                    dig->igi_rssi, dig->dyn_igi_max, dig->dyn_igi_min,
                    dig->igi_fa_rssi);
 
-       rtw89_phy_dig_config_igi(rtwdev);
+       if (rtwdev->hal.support_igi)
+               rtw89_phy_dig_config_igi(rtwdev);
 
        rtw89_phy_dig_dyn_pd_th(rtwdev, dig->igi_fa_rssi, dig->dyn_pd_th_en);