rtw88: 8821c: correct 2.4G tx power for type 2/4 NIC
authorGuo-Feng Fan <vincent_fann@realtek.com>
Wed, 22 Sep 2021 02:36:37 +0000 (10:36 +0800)
committerKalle Valo <kvalo@codeaurora.org>
Fri, 24 Sep 2021 11:22:33 +0000 (14:22 +0300)
NIC card saves calibrated TX power index in the efuse(ROM).
Driver loads TX power idex when interface is up.

The problem is type2/4 NICs loads 2.4G TX power index
from wrong position. This patch corrects the offsets.
So, driver loads real 2.4G TX power index for type 2/4 NICs.

2.4G performance increased when using correct TX power index.

Signed-off-by: Guo-Feng Fan <vincent_fann@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20210922023637.9357-2-pkshih@realtek.com
drivers/net/wireless/realtek/rtw88/rtw8821c.c

index 3effdf9..80a6f4d 100644 (file)
@@ -61,6 +61,9 @@ static int rtw8821c_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
        for (i = 0; i < 4; i++)
                efuse->txpwr_idx_table[i] = map->txpwr_idx_table[i];
 
+       if (rtwdev->efuse.rfe_option == 2 || rtwdev->efuse.rfe_option == 4)
+               efuse->txpwr_idx_table[0].pwr_idx_2g = map->txpwr_idx_table[1].pwr_idx_2g;
+
        switch (rtw_hci_type(rtwdev)) {
        case RTW_HCI_TYPE_PCIE:
                rtw8821ce_efuse_parsing(efuse, map);