mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
rtlwifi: btcoex: 21a 2ant: fix PTA unstable problem when hw init
In the hardware initialisation stage, the PTA circuits may be unstable, so we reset it after 6 secs to fix the problem. dis_ver_info_cnt is used to indicate the time after init, and we can set PTA according to it. Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Cc: Pkshih <pkshih@realtek.com> Cc: Birming Chiu <birming@realtek.com> Cc: Shaofu <shaofu@realtek.com> Cc: Steven Ting <steventing@realtek.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
a3b2ba8666
commit
e7dc320333
@ -3598,6 +3598,7 @@ void ex_btc8821a2ant_init_hwconfig(struct btc_coexist *btcoexist)
|
||||
|
||||
/* Antenna config */
|
||||
btc8821a2ant_set_ant_path(btcoexist, BTC_ANT_WIFI_AT_MAIN, true, false);
|
||||
coex_sta->dis_ver_info_cnt = 0;
|
||||
|
||||
/* PTA parameter */
|
||||
btc8821a2ant_coex_table_with_type(btcoexist, FORCE_EXEC, 0);
|
||||
@ -4245,36 +4246,21 @@ void ex_btc8821a2ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state)
|
||||
void ex_btc8821a2ant_periodical(struct btc_coexist *btcoexist)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = btcoexist->adapter;
|
||||
static u8 dis_ver_info_cnt;
|
||||
struct btc_board_info *board_info = &btcoexist->board_info;
|
||||
struct btc_stack_info *stack_info = &btcoexist->stack_info;
|
||||
u32 fw_ver = 0, bt_patch_ver = 0;
|
||||
|
||||
RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
|
||||
"[BTCoex], ==========================Periodical===========================\n");
|
||||
|
||||
if (dis_ver_info_cnt <= 5) {
|
||||
dis_ver_info_cnt += 1;
|
||||
RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
|
||||
"[BTCoex], ****************************************************************\n");
|
||||
RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
|
||||
"[BTCoex], Ant PG Num/ Ant Mech/ Ant Pos = %d/ %d/ %d\n",
|
||||
board_info->pg_ant_num,
|
||||
board_info->btdm_ant_num,
|
||||
board_info->btdm_ant_pos);
|
||||
RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
|
||||
"[BTCoex], BT stack/ hci ext ver = %s / %d\n",
|
||||
stack_info->profile_notified ? "Yes" : "No",
|
||||
stack_info->hci_version);
|
||||
btcoexist->btc_get(btcoexist, BTC_GET_U4_BT_PATCH_VER,
|
||||
&bt_patch_ver);
|
||||
btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_FW_VER, &fw_ver);
|
||||
RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
|
||||
"[BTCoex], CoexVer/ FwVer/ PatchVer = %d_%x/ 0x%x/ 0x%x(%d)\n",
|
||||
glcoex_ver_date_8821a_2ant, glcoex_ver_8821a_2ant,
|
||||
fw_ver, bt_patch_ver, bt_patch_ver);
|
||||
RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
|
||||
"[BTCoex], ****************************************************************\n");
|
||||
if (coex_sta->dis_ver_info_cnt <= 5) {
|
||||
coex_sta->dis_ver_info_cnt += 1;
|
||||
if (coex_sta->dis_ver_info_cnt == 3) {
|
||||
/* Antenna config to set 0x765 = 0x0 (GNT_BT control by
|
||||
* PTA) after initial
|
||||
*/
|
||||
RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
|
||||
"[BTCoex], Set GNT_BT control by PTA\n");
|
||||
btc8821a2ant_set_ant_path(btcoexist,
|
||||
BTC_ANT_WIFI_AT_MAIN, false, false);
|
||||
}
|
||||
}
|
||||
|
||||
if (btcoexist->auto_report_2ant) {
|
||||
|
@ -168,6 +168,8 @@ struct coex_sta_8821a_2ant {
|
||||
|
||||
u8 coex_table_type;
|
||||
bool force_lps_on;
|
||||
|
||||
u8 dis_ver_info_cnt;
|
||||
};
|
||||
|
||||
/*===========================================
|
||||
|
Loading…
Reference in New Issue
Block a user