rtlwifi: btcoex: Remove 23b 1ant configuration parameter
In file halbtc8723b1ant.c, there are directives that depend on an undocumented configuration parameter BT_AUTO_REPORT_ONLY_8723B_1ANT that cannot be set from Kconfig. This parameter is replaced by a boolean in the main structure used by all routines. It still cannot be changed dynamically, but it is easier to document. The following routines are restored: halbtc8723b1ant_bt_auto_report() halbtc8723b1ant_set_bt_auto_report() halbtc8723b1ant_action_wifi_only() halbtc8723b1ant_monitor_bt_enable_disable() Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Cc: Yan-Hsuan Chuang <yhchuang@realtek.com> 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
aef9ae4607
commit
f66509e3d7
@ -333,6 +333,35 @@ static void halbtc8723b1ant_update_bt_link_info(struct btc_coexist *btcoexist)
|
|||||||
bt_link_info->hid_only = false;
|
bt_link_info->hid_only = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void halbtc8723b1ant_set_bt_auto_report(struct btc_coexist *btcoexist,
|
||||||
|
bool enable_auto_report)
|
||||||
|
{
|
||||||
|
u8 h2c_parameter[1] = {0};
|
||||||
|
|
||||||
|
h2c_parameter[0] = 0;
|
||||||
|
|
||||||
|
if (enable_auto_report)
|
||||||
|
h2c_parameter[0] |= BIT(0);
|
||||||
|
|
||||||
|
btcoexist->btc_fill_h2c(btcoexist, 0x68, 1, h2c_parameter);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void halbtc8723b1ant_bt_auto_report(struct btc_coexist *btcoexist,
|
||||||
|
bool force_exec,
|
||||||
|
bool enable_auto_report)
|
||||||
|
{
|
||||||
|
coex_dm->cur_bt_auto_report = enable_auto_report;
|
||||||
|
|
||||||
|
if (!force_exec) {
|
||||||
|
if (coex_dm->pre_bt_auto_report == coex_dm->cur_bt_auto_report)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
halbtc8723b1ant_set_bt_auto_report(btcoexist,
|
||||||
|
coex_dm->cur_bt_auto_report);
|
||||||
|
|
||||||
|
coex_dm->pre_bt_auto_report = coex_dm->cur_bt_auto_report;
|
||||||
|
}
|
||||||
|
|
||||||
static void btc8723b1ant_set_sw_pen_tx_rate_adapt(struct btc_coexist *btcoexist,
|
static void btc8723b1ant_set_sw_pen_tx_rate_adapt(struct btc_coexist *btcoexist,
|
||||||
bool low_penalty_ra)
|
bool low_penalty_ra)
|
||||||
{
|
{
|
||||||
@ -1099,6 +1128,57 @@ static void halbtc8723b1ant_power_save_state(struct btc_coexist *btcoexist,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void halbtc8723b1ant_action_wifi_only(struct btc_coexist *btcoexist)
|
||||||
|
{
|
||||||
|
halbtc8723b1ant_coex_table_with_type(btcoexist, FORCE_EXEC, 0);
|
||||||
|
halbtc8723b1ant_ps_tdma(btcoexist, FORCE_EXEC, false, 8);
|
||||||
|
halbtc8723b1ant_set_ant_path(btcoexist, false, false, BTC_ANT_PATH_PTA);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* check if BT is disabled */
|
||||||
|
static void halbtc8723b1ant_monitor_bt_enable_disable(struct btc_coexist
|
||||||
|
*btcoexist)
|
||||||
|
{
|
||||||
|
struct rtl_priv *rtlpriv = btcoexist->adapter;
|
||||||
|
static u32 bt_disable_cnt;
|
||||||
|
bool bt_active = true, bt_disabled;
|
||||||
|
|
||||||
|
if (coex_sta->high_priority_tx == 0 &&
|
||||||
|
coex_sta->high_priority_rx == 0 && coex_sta->low_priority_tx == 0 &&
|
||||||
|
coex_sta->low_priority_rx == 0)
|
||||||
|
bt_active = false;
|
||||||
|
if (coex_sta->high_priority_tx == 0xffff &&
|
||||||
|
coex_sta->high_priority_rx == 0xffff &&
|
||||||
|
coex_sta->low_priority_tx == 0xffff &&
|
||||||
|
coex_sta->low_priority_rx == 0xffff)
|
||||||
|
bt_active = false;
|
||||||
|
if (bt_active) {
|
||||||
|
bt_disable_cnt = 0;
|
||||||
|
bt_disabled = false;
|
||||||
|
} else {
|
||||||
|
bt_disable_cnt++;
|
||||||
|
if (bt_disable_cnt >= 2)
|
||||||
|
bt_disabled = true;
|
||||||
|
}
|
||||||
|
if (coex_sta->bt_disabled != bt_disabled) {
|
||||||
|
RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
|
||||||
|
"[BTCoex], BT is from %s to %s!!\n",
|
||||||
|
(coex_sta->bt_disabled ? "disabled" : "enabled"),
|
||||||
|
(bt_disabled ? "disabled" : "enabled"));
|
||||||
|
|
||||||
|
coex_sta->bt_disabled = bt_disabled;
|
||||||
|
btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_DISABLE,
|
||||||
|
&bt_disabled);
|
||||||
|
if (bt_disabled) {
|
||||||
|
halbtc8723b1ant_action_wifi_only(btcoexist);
|
||||||
|
btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS,
|
||||||
|
NULL);
|
||||||
|
btcoexist->btc_set(btcoexist, BTC_SET_ACT_NORMAL_LPS,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************
|
/*****************************************************
|
||||||
*
|
*
|
||||||
* Non-Software Coex Mechanism start
|
* Non-Software Coex Mechanism start
|
||||||
@ -1638,6 +1718,7 @@ static void halbtc8723b1ant_init_hw_config(struct btc_coexist *btcoexist,
|
|||||||
void ex_halbtc8723b1ant_init_hwconfig(struct btc_coexist *btcoexist)
|
void ex_halbtc8723b1ant_init_hwconfig(struct btc_coexist *btcoexist)
|
||||||
{
|
{
|
||||||
halbtc8723b1ant_init_hw_config(btcoexist, true);
|
halbtc8723b1ant_init_hw_config(btcoexist, true);
|
||||||
|
btcoexist->auto_report_1ant = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ex_halbtc8723b1ant_init_coex_dm(struct btc_coexist *btcoexist)
|
void ex_halbtc8723b1ant_init_coex_dm(struct btc_coexist *btcoexist)
|
||||||
@ -1926,9 +2007,8 @@ void ex_halbtc8723b1ant_display_coex_info(struct btc_coexist *btcoexist)
|
|||||||
RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "\r\n %-35s = %d/ %d",
|
RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "\r\n %-35s = %d/ %d",
|
||||||
"0x774(low-pri rx/tx)", coex_sta->low_priority_rx,
|
"0x774(low-pri rx/tx)", coex_sta->low_priority_rx,
|
||||||
coex_sta->low_priority_tx);
|
coex_sta->low_priority_tx);
|
||||||
#if (BT_AUTO_REPORT_ONLY_8723B_1ANT == 1)
|
if (btcoexist->auto_report_1ant)
|
||||||
halbtc8723b1ant_monitor_bt_ctr(btcoexist);
|
halbtc8723b1ant_monitor_bt_ctr(btcoexist);
|
||||||
#endif
|
|
||||||
btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_COEX_STATISTICS);
|
btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_COEX_STATISTICS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2247,14 +2327,15 @@ void ex_halbtc8723b1ant_bt_info_notify(struct btc_coexist *btcoexist,
|
|||||||
} else {
|
} else {
|
||||||
/* BT already NOT ignore Wlan active, do nothing here.*/
|
/* BT already NOT ignore Wlan active, do nothing here.*/
|
||||||
}
|
}
|
||||||
#if (BT_AUTO_REPORT_ONLY_8723B_1ANT == 0)
|
if (!btcoexist->auto_report_1ant) {
|
||||||
if (coex_sta->bt_info_ext & BIT4) {
|
if (coex_sta->bt_info_ext & BIT4) {
|
||||||
/* BT auto report already enabled, do nothing */
|
/* BT auto report already enabled, do nothing */
|
||||||
} else {
|
} else {
|
||||||
halbtc8723b1ant_bt_auto_report(btcoexist, FORCE_EXEC,
|
halbtc8723b1ant_bt_auto_report(btcoexist,
|
||||||
true);
|
FORCE_EXEC,
|
||||||
|
true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check BIT2 first ==> check if bt is under inquiry or page scan */
|
/* check BIT2 first ==> check if bt is under inquiry or page scan */
|
||||||
@ -2425,16 +2506,15 @@ void ex_halbtc8723b1ant_periodical(struct btc_coexist *btcoexist)
|
|||||||
"[BTCoex], ****************************************************************\n");
|
"[BTCoex], ****************************************************************\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (BT_AUTO_REPORT_ONLY_8723B_1ANT == 0)
|
if (!btcoexist->auto_report_1ant) {
|
||||||
halbtc8723b1ant_query_bt_info(btcoexist);
|
halbtc8723b1ant_query_bt_info(btcoexist);
|
||||||
halbtc8723b1ant_monitor_bt_ctr(btcoexist);
|
halbtc8723b1ant_monitor_bt_ctr(btcoexist);
|
||||||
halbtc8723b1ant_monitor_bt_enable_disable(btcoexist);
|
halbtc8723b1ant_monitor_bt_enable_disable(btcoexist);
|
||||||
#else
|
} else {
|
||||||
if (btc8723b1ant_is_wifi_status_changed(btcoexist) ||
|
if (btc8723b1ant_is_wifi_status_changed(btcoexist) ||
|
||||||
coex_dm->auto_tdma_adjust) {
|
coex_dm->auto_tdma_adjust) {
|
||||||
halbtc8723b1ant_run_coexist_mechanism(btcoexist);
|
halbtc8723b1ant_run_coexist_mechanism(btcoexist);
|
||||||
|
}
|
||||||
|
coex_sta->special_pkt_period_cnt++;
|
||||||
}
|
}
|
||||||
|
|
||||||
coex_sta->special_pkt_period_cnt++;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
@ -25,8 +25,6 @@
|
|||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* The following is for 8723B 1ANT BT Co-exist definition
|
* The following is for 8723B 1ANT BT Co-exist definition
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
#define BT_AUTO_REPORT_ONLY_8723B_1ANT 1
|
|
||||||
|
|
||||||
#define BT_INFO_8723B_1ANT_B_FTP BIT7
|
#define BT_INFO_8723B_1ANT_B_FTP BIT7
|
||||||
#define BT_INFO_8723B_1ANT_B_A2DP BIT6
|
#define BT_INFO_8723B_1ANT_B_A2DP BIT6
|
||||||
#define BT_INFO_8723B_1ANT_B_HID BIT5
|
#define BT_INFO_8723B_1ANT_B_HID BIT5
|
||||||
@ -138,6 +136,7 @@ struct coex_dm_8723b_1ant {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct coex_sta_8723b_1ant {
|
struct coex_sta_8723b_1ant {
|
||||||
|
bool bt_disabled;
|
||||||
bool bt_link_exist;
|
bool bt_link_exist;
|
||||||
bool sco_exist;
|
bool sco_exist;
|
||||||
bool a2dp_exist;
|
bool a2dp_exist;
|
||||||
|
Loading…
Reference in New Issue
Block a user