rtw88: 8822c: fix lc calibration timing
[ Upstream commit 05684fd583e1acc34dddea283838fbfbed4904a0 ] 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: 7ae7784ec2a8 ("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>
This commit is contained in:
parent
db2386fa43
commit
6cd23b5f40
@ -3510,26 +3510,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);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@ -3540,12 +3542,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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user