Skip to content

Commit

Permalink
rtw88: 8822c: fix lc calibration timing
Browse files Browse the repository at this point in the history
[ Upstream commit 05684fd ]

Before this patch, we use value from 2 seconds ago to decide
whether we should do lc calibration.
Although this don't happen frequently, fix flow to the way it should be.

Fixes: 7ae7784 ("rtw88: 8822c: add LC calibration for RTL8822C")
Signed-off-by: Po-Hao Huang <phhuang@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/20210426013252.5665-3-pkshih@realtek.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
Po-Hao Huang authored and gregkh committed Jul 14, 2021
1 parent 43b0593 commit 94d7a70
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions drivers/net/wireless/realtek/rtw88/rtw8822c.c
Expand Up @@ -3529,26 +3529,28 @@ static void rtw8822c_pwrtrack_set(struct rtw_dev *rtwdev, u8 rf_path)
}
}

static void rtw8822c_pwr_track_path(struct rtw_dev *rtwdev,
struct rtw_swing_table *swing_table,
u8 path)
static void rtw8822c_pwr_track_stats(struct rtw_dev *rtwdev, u8 path)
{
struct rtw_dm_info *dm_info = &rtwdev->dm_info;
u8 thermal_value, delta;
u8 thermal_value;

if (rtwdev->efuse.thermal_meter[path] == 0xff)
return;

thermal_value = rtw_read_rf(rtwdev, path, RF_T_METER, 0x7e);

rtw_phy_pwrtrack_avg(rtwdev, thermal_value, path);
}

delta = rtw_phy_pwrtrack_get_delta(rtwdev, path);
static void rtw8822c_pwr_track_path(struct rtw_dev *rtwdev,
struct rtw_swing_table *swing_table,
u8 path)
{
struct rtw_dm_info *dm_info = &rtwdev->dm_info;
u8 delta;

delta = rtw_phy_pwrtrack_get_delta(rtwdev, path);
dm_info->delta_power_index[path] =
rtw_phy_pwrtrack_get_pwridx(rtwdev, swing_table, path, path,
delta);

rtw8822c_pwrtrack_set(rtwdev, path);
}

Expand All @@ -3559,12 +3561,12 @@ static void __rtw8822c_pwr_track(struct rtw_dev *rtwdev)

rtw_phy_config_swing_table(rtwdev, &swing_table);

for (i = 0; i < rtwdev->hal.rf_path_num; i++)
rtw8822c_pwr_track_stats(rtwdev, i);
if (rtw_phy_pwrtrack_need_lck(rtwdev))
rtw8822c_do_lck(rtwdev);

for (i = 0; i < rtwdev->hal.rf_path_num; i++)
rtw8822c_pwr_track_path(rtwdev, &swing_table, i);

}

static void rtw8822c_pwr_track(struct rtw_dev *rtwdev)
Expand Down

0 comments on commit 94d7a70

Please sign in to comment.