Commit 6fbbc82a authored by Yan-Hsuan Chuang's avatar Yan-Hsuan Chuang Committed by Kalle Valo

rtlwifi: btcoex: settings before firmware is downloaded

The btcoex is sometimes unstable because there are some unexpected
behaviors before the firmware has been downloaded successfully.

Therefore we force the antenna path settings to avoid this, then let the
firmware control the btcoexistence when the firmware is ready.
Signed-off-by: default avatarYan-Hsuan Chuang <yhchuang@realtek.com>
Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Cc: Ping-Ke Shih <pkshih@realtek.com>
Cc: Birming Chiu <birming@realtek.com>
Cc: Shaofu <shaofu@realtek.com>
Cc: Steven Ting <steventing@realtek.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 753c953b
...@@ -196,5 +196,6 @@ void ex_btc8723b2ant_bt_info_notify(struct btc_coexist *btcoexist, ...@@ -196,5 +196,6 @@ void ex_btc8723b2ant_bt_info_notify(struct btc_coexist *btcoexist,
void ex_btc8723b2ant_halt_notify(struct btc_coexist *btcoexist); void ex_btc8723b2ant_halt_notify(struct btc_coexist *btcoexist);
void ex_btc8723b2ant_periodical(struct btc_coexist *btcoexist); void ex_btc8723b2ant_periodical(struct btc_coexist *btcoexist);
void ex_btc8723b2ant_display_coex_info(struct btc_coexist *btcoexist); void ex_btc8723b2ant_display_coex_info(struct btc_coexist *btcoexist);
void ex_btc8723b2ant_pre_load_firmware(struct btc_coexist *btcoexist);
#endif #endif
...@@ -228,3 +228,5 @@ void ...@@ -228,3 +228,5 @@ void
ex_btc8821a2ant_display_coex_info( ex_btc8821a2ant_display_coex_info(
struct btc_coexist *btcoexist struct btc_coexist *btcoexist
); );
void ex_btc8821a2ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state);
void ex_btc8821a2ant_pre_load_firmware(struct btc_coexist *btcoexist);
...@@ -690,6 +690,19 @@ bool exhalbtc_initlize_variables(struct rtl_priv *adapter) ...@@ -690,6 +690,19 @@ bool exhalbtc_initlize_variables(struct rtl_priv *adapter)
return true; return true;
} }
void exhalbtc_pre_load_firmware(struct btc_coexist *btcoexist)
{
if (!halbtc_is_bt_coexist_available(btcoexist))
return;
btcoexist->statistics.cnt_pre_load_firmware++;
if (IS_HARDWARE_TYPE_8723B(btcoexist->adapter)) {
if (btcoexist->board_info.btdm_ant_num == 2)
ex_btc8723b2ant_pre_load_firmware(btcoexist);
}
}
void exhalbtc_init_hw_config(struct btc_coexist *btcoexist) void exhalbtc_init_hw_config(struct btc_coexist *btcoexist)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter; struct rtl_priv *rtlpriv = btcoexist->adapter;
......
...@@ -486,6 +486,7 @@ struct btc_statistics { ...@@ -486,6 +486,7 @@ struct btc_statistics {
u32 cnt_coex_dm_switch; u32 cnt_coex_dm_switch;
u32 cnt_stack_operation_notify; u32 cnt_stack_operation_notify;
u32 cnt_dbg_ctrl; u32 cnt_dbg_ctrl;
u32 cnt_pre_load_firmware;
}; };
struct btc_bt_link_info { struct btc_bt_link_info {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment