Commit dd192494 authored by Larry Finger's avatar Larry Finger Committed by Kalle Valo

rtlwifi: btcoexist: Convert halbtc8723b1ant.c to use standard debugging

The routines in btcoexist use different debugging routines than are used
in the other drivers. This patch converts halbtc8723b1ant.c to use the
standard routines.
Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Cc: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 258b93cc
...@@ -60,9 +60,11 @@ static u32 glcoex_ver_8723b_1ant = 0x47; ...@@ -60,9 +60,11 @@ static u32 glcoex_ver_8723b_1ant = 0x47;
/*************************************************************** /***************************************************************
* local function start with halbtc8723b1ant_ * local function start with halbtc8723b1ant_
***************************************************************/ ***************************************************************/
static u8 halbtc8723b1ant_bt_rssi_state(u8 level_num, u8 rssi_thresh, static u8 halbtc8723b1ant_bt_rssi_state(struct btc_coexist *btcoexist,
u8 level_num, u8 rssi_thresh,
u8 rssi_thresh1) u8 rssi_thresh1)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
s32 bt_rssi = 0; s32 bt_rssi = 0;
u8 bt_rssi_state = coex_sta->pre_bt_rssi_state; u8 bt_rssi_state = coex_sta->pre_bt_rssi_state;
...@@ -74,27 +76,27 @@ static u8 halbtc8723b1ant_bt_rssi_state(u8 level_num, u8 rssi_thresh, ...@@ -74,27 +76,27 @@ static u8 halbtc8723b1ant_bt_rssi_state(u8 level_num, u8 rssi_thresh,
if (bt_rssi >= rssi_thresh + if (bt_rssi >= rssi_thresh +
BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT) { BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT) {
bt_rssi_state = BTC_RSSI_STATE_HIGH; bt_rssi_state = BTC_RSSI_STATE_HIGH;
btc_alg_dbg(ALGO_BT_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT Rssi state switch to High\n"); "[BTCoex], BT Rssi state switch to High\n");
} else { } else {
bt_rssi_state = BTC_RSSI_STATE_STAY_LOW; bt_rssi_state = BTC_RSSI_STATE_STAY_LOW;
btc_alg_dbg(ALGO_BT_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT Rssi state stay at Low\n"); "[BTCoex], BT Rssi state stay at Low\n");
} }
} else { } else {
if (bt_rssi < rssi_thresh) { if (bt_rssi < rssi_thresh) {
bt_rssi_state = BTC_RSSI_STATE_LOW; bt_rssi_state = BTC_RSSI_STATE_LOW;
btc_alg_dbg(ALGO_BT_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT Rssi state switch to Low\n"); "[BTCoex], BT Rssi state switch to Low\n");
} else { } else {
bt_rssi_state = BTC_RSSI_STATE_STAY_HIGH; bt_rssi_state = BTC_RSSI_STATE_STAY_HIGH;
btc_alg_dbg(ALGO_BT_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT Rssi state stay at High\n"); "[BTCoex], BT Rssi state stay at High\n");
} }
} }
} else if (level_num == 3) { } else if (level_num == 3) {
if (rssi_thresh > rssi_thresh1) { if (rssi_thresh > rssi_thresh1) {
btc_alg_dbg(ALGO_BT_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT Rssi thresh error!!\n"); "[BTCoex], BT Rssi thresh error!!\n");
return coex_sta->pre_bt_rssi_state; return coex_sta->pre_bt_rssi_state;
} }
...@@ -104,11 +106,11 @@ static u8 halbtc8723b1ant_bt_rssi_state(u8 level_num, u8 rssi_thresh, ...@@ -104,11 +106,11 @@ static u8 halbtc8723b1ant_bt_rssi_state(u8 level_num, u8 rssi_thresh,
if (bt_rssi >= rssi_thresh + if (bt_rssi >= rssi_thresh +
BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT) { BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT) {
bt_rssi_state = BTC_RSSI_STATE_MEDIUM; bt_rssi_state = BTC_RSSI_STATE_MEDIUM;
btc_alg_dbg(ALGO_BT_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT Rssi state switch to Medium\n"); "[BTCoex], BT Rssi state switch to Medium\n");
} else { } else {
bt_rssi_state = BTC_RSSI_STATE_STAY_LOW; bt_rssi_state = BTC_RSSI_STATE_STAY_LOW;
btc_alg_dbg(ALGO_BT_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT Rssi state stay at Low\n"); "[BTCoex], BT Rssi state stay at Low\n");
} }
} else if ((coex_sta->pre_bt_rssi_state == } else if ((coex_sta->pre_bt_rssi_state ==
...@@ -118,25 +120,25 @@ static u8 halbtc8723b1ant_bt_rssi_state(u8 level_num, u8 rssi_thresh, ...@@ -118,25 +120,25 @@ static u8 halbtc8723b1ant_bt_rssi_state(u8 level_num, u8 rssi_thresh,
if (bt_rssi >= rssi_thresh1 + if (bt_rssi >= rssi_thresh1 +
BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT) { BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT) {
bt_rssi_state = BTC_RSSI_STATE_HIGH; bt_rssi_state = BTC_RSSI_STATE_HIGH;
btc_alg_dbg(ALGO_BT_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT Rssi state switch to High\n"); "[BTCoex], BT Rssi state switch to High\n");
} else if (bt_rssi < rssi_thresh) { } else if (bt_rssi < rssi_thresh) {
bt_rssi_state = BTC_RSSI_STATE_LOW; bt_rssi_state = BTC_RSSI_STATE_LOW;
btc_alg_dbg(ALGO_BT_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT Rssi state switch to Low\n"); "[BTCoex], BT Rssi state switch to Low\n");
} else { } else {
bt_rssi_state = BTC_RSSI_STATE_STAY_MEDIUM; bt_rssi_state = BTC_RSSI_STATE_STAY_MEDIUM;
btc_alg_dbg(ALGO_BT_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT Rssi state stay at Medium\n"); "[BTCoex], BT Rssi state stay at Medium\n");
} }
} else { } else {
if (bt_rssi < rssi_thresh1) { if (bt_rssi < rssi_thresh1) {
bt_rssi_state = BTC_RSSI_STATE_MEDIUM; bt_rssi_state = BTC_RSSI_STATE_MEDIUM;
btc_alg_dbg(ALGO_BT_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT Rssi state switch to Medium\n"); "[BTCoex], BT Rssi state switch to Medium\n");
} else { } else {
bt_rssi_state = BTC_RSSI_STATE_STAY_HIGH; bt_rssi_state = BTC_RSSI_STATE_STAY_HIGH;
btc_alg_dbg(ALGO_BT_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT Rssi state stay at High\n"); "[BTCoex], BT Rssi state stay at High\n");
} }
} }
...@@ -151,6 +153,7 @@ static u8 halbtc8723b1ant_wifi_rssi_state(struct btc_coexist *btcoexist, ...@@ -151,6 +153,7 @@ static u8 halbtc8723b1ant_wifi_rssi_state(struct btc_coexist *btcoexist,
u8 index, u8 level_num, u8 index, u8 level_num,
u8 rssi_thresh, u8 rssi_thresh1) u8 rssi_thresh, u8 rssi_thresh1)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
s32 wifi_rssi = 0; s32 wifi_rssi = 0;
u8 wifi_rssi_state = coex_sta->pre_wifi_rssi_state[index]; u8 wifi_rssi_state = coex_sta->pre_wifi_rssi_state[index];
...@@ -165,27 +168,27 @@ static u8 halbtc8723b1ant_wifi_rssi_state(struct btc_coexist *btcoexist, ...@@ -165,27 +168,27 @@ static u8 halbtc8723b1ant_wifi_rssi_state(struct btc_coexist *btcoexist,
if (wifi_rssi >= rssi_thresh + if (wifi_rssi >= rssi_thresh +
BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT) { BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT) {
wifi_rssi_state = BTC_RSSI_STATE_HIGH; wifi_rssi_state = BTC_RSSI_STATE_HIGH;
btc_alg_dbg(ALGO_WIFI_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], wifi RSSI state switch to High\n"); "[BTCoex], wifi RSSI state switch to High\n");
} else { } else {
wifi_rssi_state = BTC_RSSI_STATE_STAY_LOW; wifi_rssi_state = BTC_RSSI_STATE_STAY_LOW;
btc_alg_dbg(ALGO_WIFI_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], wifi RSSI state stay at Low\n"); "[BTCoex], wifi RSSI state stay at Low\n");
} }
} else { } else {
if (wifi_rssi < rssi_thresh) { if (wifi_rssi < rssi_thresh) {
wifi_rssi_state = BTC_RSSI_STATE_LOW; wifi_rssi_state = BTC_RSSI_STATE_LOW;
btc_alg_dbg(ALGO_WIFI_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], wifi RSSI state switch to Low\n"); "[BTCoex], wifi RSSI state switch to Low\n");
} else { } else {
wifi_rssi_state = BTC_RSSI_STATE_STAY_HIGH; wifi_rssi_state = BTC_RSSI_STATE_STAY_HIGH;
btc_alg_dbg(ALGO_WIFI_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], wifi RSSI state stay at High\n"); "[BTCoex], wifi RSSI state stay at High\n");
} }
} }
} else if (level_num == 3) { } else if (level_num == 3) {
if (rssi_thresh > rssi_thresh1) { if (rssi_thresh > rssi_thresh1) {
btc_alg_dbg(ALGO_WIFI_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], wifi RSSI thresh error!!\n"); "[BTCoex], wifi RSSI thresh error!!\n");
return coex_sta->pre_wifi_rssi_state[index]; return coex_sta->pre_wifi_rssi_state[index];
} }
...@@ -197,11 +200,11 @@ static u8 halbtc8723b1ant_wifi_rssi_state(struct btc_coexist *btcoexist, ...@@ -197,11 +200,11 @@ static u8 halbtc8723b1ant_wifi_rssi_state(struct btc_coexist *btcoexist,
if (wifi_rssi >= rssi_thresh + if (wifi_rssi >= rssi_thresh +
BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT) { BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT) {
wifi_rssi_state = BTC_RSSI_STATE_MEDIUM; wifi_rssi_state = BTC_RSSI_STATE_MEDIUM;
btc_alg_dbg(ALGO_WIFI_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], wifi RSSI state switch to Medium\n"); "[BTCoex], wifi RSSI state switch to Medium\n");
} else { } else {
wifi_rssi_state = BTC_RSSI_STATE_STAY_LOW; wifi_rssi_state = BTC_RSSI_STATE_STAY_LOW;
btc_alg_dbg(ALGO_WIFI_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], wifi RSSI state stay at Low\n"); "[BTCoex], wifi RSSI state stay at Low\n");
} }
} else if ((coex_sta->pre_wifi_rssi_state[index] == } else if ((coex_sta->pre_wifi_rssi_state[index] ==
...@@ -211,25 +214,25 @@ static u8 halbtc8723b1ant_wifi_rssi_state(struct btc_coexist *btcoexist, ...@@ -211,25 +214,25 @@ static u8 halbtc8723b1ant_wifi_rssi_state(struct btc_coexist *btcoexist,
if (wifi_rssi >= rssi_thresh1 + if (wifi_rssi >= rssi_thresh1 +
BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT) { BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT) {
wifi_rssi_state = BTC_RSSI_STATE_HIGH; wifi_rssi_state = BTC_RSSI_STATE_HIGH;
btc_alg_dbg(ALGO_WIFI_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], wifi RSSI state switch to High\n"); "[BTCoex], wifi RSSI state switch to High\n");
} else if (wifi_rssi < rssi_thresh) { } else if (wifi_rssi < rssi_thresh) {
wifi_rssi_state = BTC_RSSI_STATE_LOW; wifi_rssi_state = BTC_RSSI_STATE_LOW;
btc_alg_dbg(ALGO_WIFI_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], wifi RSSI state switch to Low\n"); "[BTCoex], wifi RSSI state switch to Low\n");
} else { } else {
wifi_rssi_state = BTC_RSSI_STATE_STAY_MEDIUM; wifi_rssi_state = BTC_RSSI_STATE_STAY_MEDIUM;
btc_alg_dbg(ALGO_WIFI_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], wifi RSSI state stay at Medium\n"); "[BTCoex], wifi RSSI state stay at Medium\n");
} }
} else { } else {
if (wifi_rssi < rssi_thresh1) { if (wifi_rssi < rssi_thresh1) {
wifi_rssi_state = BTC_RSSI_STATE_MEDIUM; wifi_rssi_state = BTC_RSSI_STATE_MEDIUM;
btc_alg_dbg(ALGO_WIFI_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], wifi RSSI state switch to Medium\n"); "[BTCoex], wifi RSSI state switch to Medium\n");
} else { } else {
wifi_rssi_state = BTC_RSSI_STATE_STAY_HIGH; wifi_rssi_state = BTC_RSSI_STATE_STAY_HIGH;
btc_alg_dbg(ALGO_WIFI_RSSI_STATE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], wifi RSSI state stay at High\n"); "[BTCoex], wifi RSSI state stay at High\n");
} }
} }
...@@ -418,13 +421,14 @@ static void halbtc8723b1ant_monitor_bt_ctr(struct btc_coexist *btcoexist) ...@@ -418,13 +421,14 @@ static void halbtc8723b1ant_monitor_bt_ctr(struct btc_coexist *btcoexist)
static void halbtc8723b1ant_query_bt_info(struct btc_coexist *btcoexist) static void halbtc8723b1ant_query_bt_info(struct btc_coexist *btcoexist)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
u8 h2c_parameter[1] = {0}; u8 h2c_parameter[1] = {0};
coex_sta->c2h_bt_info_req_sent = true; coex_sta->c2h_bt_info_req_sent = true;
h2c_parameter[0] |= BIT0; /* trigger*/ h2c_parameter[0] |= BIT0; /* trigger*/
btc_alg_dbg(ALGO_TRACE_FW_EXEC, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Query Bt Info, FW write 0x61 = 0x%x\n", "[BTCoex], Query Bt Info, FW write 0x61 = 0x%x\n",
h2c_parameter[0]); h2c_parameter[0]);
...@@ -513,6 +517,7 @@ static void halbtc8723b1ant_update_bt_link_info(struct btc_coexist *btcoexist) ...@@ -513,6 +517,7 @@ static void halbtc8723b1ant_update_bt_link_info(struct btc_coexist *btcoexist)
static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist) static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
bool bt_hs_on = false; bool bt_hs_on = false;
u8 algorithm = BT_8723B_1ANT_COEX_ALGO_UNDEFINED; u8 algorithm = BT_8723B_1ANT_COEX_ALGO_UNDEFINED;
...@@ -521,7 +526,7 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist) ...@@ -521,7 +526,7 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist)
btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
if (!bt_link_info->bt_link_exist) { if (!bt_link_info->bt_link_exist) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], No BT link exists!!!\n"); "[BTCoex], No BT link exists!!!\n");
return algorithm; return algorithm;
} }
...@@ -537,26 +542,28 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist) ...@@ -537,26 +542,28 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist)
if (numdiffprofile == 1) { if (numdiffprofile == 1) {
if (bt_link_info->sco_exist) { if (bt_link_info->sco_exist) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT Profile = SCO only\n"); "[BTCoex], BT Profile = SCO only\n");
algorithm = BT_8723B_1ANT_COEX_ALGO_SCO; algorithm = BT_8723B_1ANT_COEX_ALGO_SCO;
} else { } else {
if (bt_link_info->hid_exist) { if (bt_link_info->hid_exist) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT Profile = HID only\n"); "[BTCoex], BT Profile = HID only\n");
algorithm = BT_8723B_1ANT_COEX_ALGO_HID; algorithm = BT_8723B_1ANT_COEX_ALGO_HID;
} else if (bt_link_info->a2dp_exist) { } else if (bt_link_info->a2dp_exist) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT Profile = A2DP only\n"); "[BTCoex], BT Profile = A2DP only\n");
algorithm = BT_8723B_1ANT_COEX_ALGO_A2DP; algorithm = BT_8723B_1ANT_COEX_ALGO_A2DP;
} else if (bt_link_info->pan_exist) { } else if (bt_link_info->pan_exist) {
if (bt_hs_on) { if (bt_hs_on) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST,
DBG_LOUD,
"[BTCoex], BT Profile = PAN(HS) only\n"); "[BTCoex], BT Profile = PAN(HS) only\n");
algorithm = algorithm =
BT_8723B_1ANT_COEX_ALGO_PANHS; BT_8723B_1ANT_COEX_ALGO_PANHS;
} else { } else {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST,
DBG_LOUD,
"[BTCoex], BT Profile = PAN(EDR) only\n"); "[BTCoex], BT Profile = PAN(EDR) only\n");
algorithm = algorithm =
BT_8723B_1ANT_COEX_ALGO_PANEDR; BT_8723B_1ANT_COEX_ALGO_PANEDR;
...@@ -566,20 +573,22 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist) ...@@ -566,20 +573,22 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist)
} else if (numdiffprofile == 2) { } else if (numdiffprofile == 2) {
if (bt_link_info->sco_exist) { if (bt_link_info->sco_exist) {
if (bt_link_info->hid_exist) { if (bt_link_info->hid_exist) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT Profile = SCO + HID\n"); "[BTCoex], BT Profile = SCO + HID\n");
algorithm = BT_8723B_1ANT_COEX_ALGO_HID; algorithm = BT_8723B_1ANT_COEX_ALGO_HID;
} else if (bt_link_info->a2dp_exist) { } else if (bt_link_info->a2dp_exist) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT Profile = SCO + A2DP ==> SCO\n"); "[BTCoex], BT Profile = SCO + A2DP ==> SCO\n");
algorithm = BT_8723B_1ANT_COEX_ALGO_SCO; algorithm = BT_8723B_1ANT_COEX_ALGO_SCO;
} else if (bt_link_info->pan_exist) { } else if (bt_link_info->pan_exist) {
if (bt_hs_on) { if (bt_hs_on) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST,
DBG_LOUD,
"[BTCoex], BT Profile = SCO + PAN(HS)\n"); "[BTCoex], BT Profile = SCO + PAN(HS)\n");
algorithm = BT_8723B_1ANT_COEX_ALGO_SCO; algorithm = BT_8723B_1ANT_COEX_ALGO_SCO;
} else { } else {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST,
DBG_LOUD,
"[BTCoex], BT Profile = SCO + PAN(EDR)\n"); "[BTCoex], BT Profile = SCO + PAN(EDR)\n");
algorithm = algorithm =
BT_8723B_1ANT_COEX_ALGO_PANEDR_HID; BT_8723B_1ANT_COEX_ALGO_PANEDR_HID;
...@@ -588,18 +597,20 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist) ...@@ -588,18 +597,20 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist)
} else { } else {
if (bt_link_info->hid_exist && if (bt_link_info->hid_exist &&
bt_link_info->a2dp_exist) { bt_link_info->a2dp_exist) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT Profile = HID + A2DP\n"); "[BTCoex], BT Profile = HID + A2DP\n");
algorithm = BT_8723B_1ANT_COEX_ALGO_HID_A2DP; algorithm = BT_8723B_1ANT_COEX_ALGO_HID_A2DP;
} else if (bt_link_info->hid_exist && } else if (bt_link_info->hid_exist &&
bt_link_info->pan_exist) { bt_link_info->pan_exist) {
if (bt_hs_on) { if (bt_hs_on) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST,
DBG_LOUD,
"[BTCoex], BT Profile = HID + PAN(HS)\n"); "[BTCoex], BT Profile = HID + PAN(HS)\n");
algorithm = algorithm =
BT_8723B_1ANT_COEX_ALGO_HID_A2DP; BT_8723B_1ANT_COEX_ALGO_HID_A2DP;
} else { } else {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST,
DBG_LOUD,
"[BTCoex], BT Profile = HID + PAN(EDR)\n"); "[BTCoex], BT Profile = HID + PAN(EDR)\n");
algorithm = algorithm =
BT_8723B_1ANT_COEX_ALGO_PANEDR_HID; BT_8723B_1ANT_COEX_ALGO_PANEDR_HID;
...@@ -607,12 +618,14 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist) ...@@ -607,12 +618,14 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist)
} else if (bt_link_info->pan_exist && } else if (bt_link_info->pan_exist &&
bt_link_info->a2dp_exist) { bt_link_info->a2dp_exist) {
if (bt_hs_on) { if (bt_hs_on) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST,
DBG_LOUD,
"[BTCoex], BT Profile = A2DP + PAN(HS)\n"); "[BTCoex], BT Profile = A2DP + PAN(HS)\n");
algorithm = algorithm =
BT_8723B_1ANT_COEX_ALGO_A2DP_PANHS; BT_8723B_1ANT_COEX_ALGO_A2DP_PANHS;
} else { } else {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST,
DBG_LOUD,
"[BTCoex], BT Profile = A2DP + PAN(EDR)\n"); "[BTCoex], BT Profile = A2DP + PAN(EDR)\n");
algorithm = algorithm =
BT_8723B_1ANT_COEX_ALGO_PANEDR_A2DP; BT_8723B_1ANT_COEX_ALGO_PANEDR_A2DP;
...@@ -623,18 +636,20 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist) ...@@ -623,18 +636,20 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist)
if (bt_link_info->sco_exist) { if (bt_link_info->sco_exist) {
if (bt_link_info->hid_exist && if (bt_link_info->hid_exist &&
bt_link_info->a2dp_exist) { bt_link_info->a2dp_exist) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT Profile = SCO + HID + A2DP ==> HID\n"); "[BTCoex], BT Profile = SCO + HID + A2DP ==> HID\n");
algorithm = BT_8723B_1ANT_COEX_ALGO_HID; algorithm = BT_8723B_1ANT_COEX_ALGO_HID;
} else if (bt_link_info->hid_exist && } else if (bt_link_info->hid_exist &&
bt_link_info->pan_exist) { bt_link_info->pan_exist) {
if (bt_hs_on) { if (bt_hs_on) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST,
DBG_LOUD,
"[BTCoex], BT Profile = SCO + HID + PAN(HS)\n"); "[BTCoex], BT Profile = SCO + HID + PAN(HS)\n");
algorithm = algorithm =
BT_8723B_1ANT_COEX_ALGO_HID_A2DP; BT_8723B_1ANT_COEX_ALGO_HID_A2DP;
} else { } else {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST,
DBG_LOUD,
"[BTCoex], BT Profile = SCO + HID + PAN(EDR)\n"); "[BTCoex], BT Profile = SCO + HID + PAN(EDR)\n");
algorithm = algorithm =
BT_8723B_1ANT_COEX_ALGO_PANEDR_HID; BT_8723B_1ANT_COEX_ALGO_PANEDR_HID;
...@@ -642,11 +657,13 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist) ...@@ -642,11 +657,13 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist)
} else if (bt_link_info->pan_exist && } else if (bt_link_info->pan_exist &&
bt_link_info->a2dp_exist) { bt_link_info->a2dp_exist) {
if (bt_hs_on) { if (bt_hs_on) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST,
DBG_LOUD,
"[BTCoex], BT Profile = SCO + A2DP + PAN(HS)\n"); "[BTCoex], BT Profile = SCO + A2DP + PAN(HS)\n");
algorithm = BT_8723B_1ANT_COEX_ALGO_SCO; algorithm = BT_8723B_1ANT_COEX_ALGO_SCO;
} else { } else {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST,
DBG_LOUD,
"[BTCoex], BT Profile = SCO + A2DP + PAN(EDR) ==> HID\n"); "[BTCoex], BT Profile = SCO + A2DP + PAN(EDR) ==> HID\n");
algorithm = algorithm =
BT_8723B_1ANT_COEX_ALGO_PANEDR_HID; BT_8723B_1ANT_COEX_ALGO_PANEDR_HID;
...@@ -657,12 +674,14 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist) ...@@ -657,12 +674,14 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist)
bt_link_info->pan_exist && bt_link_info->pan_exist &&
bt_link_info->a2dp_exist) { bt_link_info->a2dp_exist) {
if (bt_hs_on) { if (bt_hs_on) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST,
DBG_LOUD,
"[BTCoex], BT Profile = HID + A2DP + PAN(HS)\n"); "[BTCoex], BT Profile = HID + A2DP + PAN(HS)\n");
algorithm = algorithm =
BT_8723B_1ANT_COEX_ALGO_HID_A2DP; BT_8723B_1ANT_COEX_ALGO_HID_A2DP;
} else { } else {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST,
DBG_LOUD,
"[BTCoex], BT Profile = HID + A2DP + PAN(EDR)\n"); "[BTCoex], BT Profile = HID + A2DP + PAN(EDR)\n");
algorithm = algorithm =
BT_8723B_1ANT_COEX_ALGO_HID_A2DP_PANEDR; BT_8723B_1ANT_COEX_ALGO_HID_A2DP_PANEDR;
...@@ -675,10 +694,12 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist) ...@@ -675,10 +694,12 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist)
bt_link_info->pan_exist && bt_link_info->pan_exist &&
bt_link_info->a2dp_exist) { bt_link_info->a2dp_exist) {
if (bt_hs_on) { if (bt_hs_on) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST,
DBG_LOUD,
"[BTCoex], Error!!! BT Profile = SCO + HID + A2DP + PAN(HS)\n"); "[BTCoex], Error!!! BT Profile = SCO + HID + A2DP + PAN(HS)\n");
} else { } else {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST,
DBG_LOUD,
"[BTCoex], BT Profile = SCO + HID + A2DP + PAN(EDR)==>PAN(EDR)+HID\n"); "[BTCoex], BT Profile = SCO + HID + A2DP + PAN(EDR)==>PAN(EDR)+HID\n");
algorithm = algorithm =
BT_8723B_1ANT_COEX_ALGO_PANEDR_HID; BT_8723B_1ANT_COEX_ALGO_PANEDR_HID;
...@@ -693,6 +714,7 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist) ...@@ -693,6 +714,7 @@ static u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist)
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)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
u8 h2c_parameter[6] = {0}; u8 h2c_parameter[6] = {0};
h2c_parameter[0] = 0x6; /* opCode, 0x6= Retry_Penalty */ h2c_parameter[0] = 0x6; /* opCode, 0x6= Retry_Penalty */
...@@ -706,7 +728,7 @@ static void btc8723b1ant_set_sw_pen_tx_rate_adapt(struct btc_coexist *btcoexist, ...@@ -706,7 +728,7 @@ static void btc8723b1ant_set_sw_pen_tx_rate_adapt(struct btc_coexist *btcoexist,
h2c_parameter[5] = 0xf9; /*MCS5 or OFDM36 */ h2c_parameter[5] = 0xf9; /*MCS5 or OFDM36 */
} }
btc_alg_dbg(ALGO_TRACE_FW_EXEC, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], set WiFi Low-Penalty Retry: %s", "[BTCoex], set WiFi Low-Penalty Retry: %s",
(low_penalty_ra ? "ON!!" : "OFF!!")); (low_penalty_ra ? "ON!!" : "OFF!!"));
...@@ -732,19 +754,21 @@ static void halbtc8723b1ant_set_coex_table(struct btc_coexist *btcoexist, ...@@ -732,19 +754,21 @@ static void halbtc8723b1ant_set_coex_table(struct btc_coexist *btcoexist,
u32 val0x6c0, u32 val0x6c4, u32 val0x6c0, u32 val0x6c4,
u32 val0x6c8, u8 val0x6cc) u32 val0x6c8, u8 val0x6cc)
{ {
btc_alg_dbg(ALGO_TRACE_SW_EXEC, struct rtl_priv *rtlpriv = btcoexist->adapter;
RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], set coex table, set 0x6c0 = 0x%x\n", val0x6c0); "[BTCoex], set coex table, set 0x6c0 = 0x%x\n", val0x6c0);
btcoexist->btc_write_4byte(btcoexist, 0x6c0, val0x6c0); btcoexist->btc_write_4byte(btcoexist, 0x6c0, val0x6c0);
btc_alg_dbg(ALGO_TRACE_SW_EXEC, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], set coex table, set 0x6c4 = 0x%x\n", val0x6c4); "[BTCoex], set coex table, set 0x6c4 = 0x%x\n", val0x6c4);
btcoexist->btc_write_4byte(btcoexist, 0x6c4, val0x6c4); btcoexist->btc_write_4byte(btcoexist, 0x6c4, val0x6c4);
btc_alg_dbg(ALGO_TRACE_SW_EXEC, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], set coex table, set 0x6c8 = 0x%x\n", val0x6c8); "[BTCoex], set coex table, set 0x6c8 = 0x%x\n", val0x6c8);
btcoexist->btc_write_4byte(btcoexist, 0x6c8, val0x6c8); btcoexist->btc_write_4byte(btcoexist, 0x6c8, val0x6c8);
btc_alg_dbg(ALGO_TRACE_SW_EXEC, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], set coex table, set 0x6cc = 0x%x\n", val0x6cc); "[BTCoex], set coex table, set 0x6cc = 0x%x\n", val0x6cc);
btcoexist->btc_write_1byte(btcoexist, 0x6cc, val0x6cc); btcoexist->btc_write_1byte(btcoexist, 0x6cc, val0x6cc);
} }
...@@ -754,7 +778,9 @@ static void halbtc8723b1ant_coex_table(struct btc_coexist *btcoexist, ...@@ -754,7 +778,9 @@ static void halbtc8723b1ant_coex_table(struct btc_coexist *btcoexist,
u32 val0x6c4, u32 val0x6c8, u32 val0x6c4, u32 val0x6c8,
u8 val0x6cc) u8 val0x6cc)
{ {
btc_alg_dbg(ALGO_TRACE_SW, struct rtl_priv *rtlpriv = btcoexist->adapter;
RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], %s write Coex Table 0x6c0 = 0x%x, 0x6c4 = 0x%x, 0x6cc = 0x%x\n", "[BTCoex], %s write Coex Table 0x6c0 = 0x%x, 0x6c4 = 0x%x, 0x6cc = 0x%x\n",
(force_exec ? "force to" : ""), (force_exec ? "force to" : ""),
val0x6c0, val0x6c4, val0x6cc); val0x6c0, val0x6c4, val0x6cc);
...@@ -823,12 +849,13 @@ static void halbtc8723b1ant_coex_table_with_type(struct btc_coexist *btcoexist, ...@@ -823,12 +849,13 @@ static void halbtc8723b1ant_coex_table_with_type(struct btc_coexist *btcoexist,
static void halbtc8723b1ant_SetFwIgnoreWlanAct(struct btc_coexist *btcoexist, static void halbtc8723b1ant_SetFwIgnoreWlanAct(struct btc_coexist *btcoexist,
bool enable) bool enable)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
u8 h2c_parameter[1] = {0}; u8 h2c_parameter[1] = {0};
if (enable) if (enable)
h2c_parameter[0] |= BIT0; /* function enable */ h2c_parameter[0] |= BIT0; /* function enable */
btc_alg_dbg(ALGO_TRACE_FW_EXEC, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], set FW for BT Ignore Wlan_Act, FW write 0x63 = 0x%x\n", "[BTCoex], set FW for BT Ignore Wlan_Act, FW write 0x63 = 0x%x\n",
h2c_parameter[0]); h2c_parameter[0]);
...@@ -838,13 +865,15 @@ static void halbtc8723b1ant_SetFwIgnoreWlanAct(struct btc_coexist *btcoexist, ...@@ -838,13 +865,15 @@ static void halbtc8723b1ant_SetFwIgnoreWlanAct(struct btc_coexist *btcoexist,
static void halbtc8723b1ant_ignore_wlan_act(struct btc_coexist *btcoexist, static void halbtc8723b1ant_ignore_wlan_act(struct btc_coexist *btcoexist,
bool force_exec, bool enable) bool force_exec, bool enable)
{ {
btc_alg_dbg(ALGO_TRACE_FW, struct rtl_priv *rtlpriv = btcoexist->adapter;
RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], %s turn Ignore WlanAct %s\n", "[BTCoex], %s turn Ignore WlanAct %s\n",
(force_exec ? "force to" : ""), (enable ? "ON" : "OFF")); (force_exec ? "force to" : ""), (enable ? "ON" : "OFF"));
coex_dm->cur_ignore_wlan_act = enable; coex_dm->cur_ignore_wlan_act = enable;
if (!force_exec) { if (!force_exec) {
btc_alg_dbg(ALGO_TRACE_FW_DETAIL, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], bPreIgnoreWlanAct = %d, bCurIgnoreWlanAct = %d!!\n", "[BTCoex], bPreIgnoreWlanAct = %d, bCurIgnoreWlanAct = %d!!\n",
coex_dm->pre_ignore_wlan_act, coex_dm->pre_ignore_wlan_act,
coex_dm->cur_ignore_wlan_act); coex_dm->cur_ignore_wlan_act);
...@@ -862,6 +891,7 @@ static void halbtc8723b1ant_set_fw_ps_tdma(struct btc_coexist *btcoexist, ...@@ -862,6 +891,7 @@ static void halbtc8723b1ant_set_fw_ps_tdma(struct btc_coexist *btcoexist,
u8 byte1, u8 byte2, u8 byte3, u8 byte1, u8 byte2, u8 byte3,
u8 byte4, u8 byte5) u8 byte4, u8 byte5)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
u8 h2c_parameter[5] = {0}; u8 h2c_parameter[5] = {0};
u8 real_byte1 = byte1, real_byte5 = byte5; u8 real_byte1 = byte1, real_byte5 = byte5;
bool ap_enable = false; bool ap_enable = false;
...@@ -871,7 +901,7 @@ static void halbtc8723b1ant_set_fw_ps_tdma(struct btc_coexist *btcoexist, ...@@ -871,7 +901,7 @@ static void halbtc8723b1ant_set_fw_ps_tdma(struct btc_coexist *btcoexist,
if (ap_enable) { if (ap_enable) {
if ((byte1 & BIT4) && !(byte1 & BIT5)) { if ((byte1 & BIT4) && !(byte1 & BIT5)) {
btc_iface_dbg(INTF_NOTIFY, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], FW for 1Ant AP mode\n"); "[BTCoex], FW for 1Ant AP mode\n");
real_byte1 &= ~BIT4; real_byte1 &= ~BIT4;
real_byte1 |= BIT5; real_byte1 |= BIT5;
...@@ -893,7 +923,7 @@ static void halbtc8723b1ant_set_fw_ps_tdma(struct btc_coexist *btcoexist, ...@@ -893,7 +923,7 @@ static void halbtc8723b1ant_set_fw_ps_tdma(struct btc_coexist *btcoexist,
coex_dm->ps_tdma_para[3] = byte4; coex_dm->ps_tdma_para[3] = byte4;
coex_dm->ps_tdma_para[4] = real_byte5; coex_dm->ps_tdma_para[4] = real_byte5;
btc_alg_dbg(ALGO_TRACE_FW_EXEC, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], PS-TDMA H2C cmd =0x%x%08x\n", "[BTCoex], PS-TDMA H2C cmd =0x%x%08x\n",
h2c_parameter[0], h2c_parameter[0],
h2c_parameter[1] << 24 | h2c_parameter[1] << 24 |
...@@ -918,20 +948,22 @@ static void halbtc8723b1ant_LpsRpwm(struct btc_coexist *btcoexist, ...@@ -918,20 +948,22 @@ static void halbtc8723b1ant_LpsRpwm(struct btc_coexist *btcoexist,
bool force_exec, bool force_exec,
u8 lps_val, u8 rpwm_val) u8 lps_val, u8 rpwm_val)
{ {
btc_alg_dbg(ALGO_TRACE_FW, struct rtl_priv *rtlpriv = btcoexist->adapter;
RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], %s set lps/rpwm = 0x%x/0x%x\n", "[BTCoex], %s set lps/rpwm = 0x%x/0x%x\n",
(force_exec ? "force to" : ""), lps_val, rpwm_val); (force_exec ? "force to" : ""), lps_val, rpwm_val);
coex_dm->cur_lps = lps_val; coex_dm->cur_lps = lps_val;
coex_dm->cur_rpwm = rpwm_val; coex_dm->cur_rpwm = rpwm_val;
if (!force_exec) { if (!force_exec) {
btc_alg_dbg(ALGO_TRACE_FW_DETAIL, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], LPS-RxBeaconMode = 0x%x , LPS-RPWM = 0x%x!!\n", "[BTCoex], LPS-RxBeaconMode = 0x%x , LPS-RPWM = 0x%x!!\n",
coex_dm->cur_lps, coex_dm->cur_rpwm); coex_dm->cur_lps, coex_dm->cur_rpwm);
if ((coex_dm->pre_lps == coex_dm->cur_lps) && if ((coex_dm->pre_lps == coex_dm->cur_lps) &&
(coex_dm->pre_rpwm == coex_dm->cur_rpwm)) { (coex_dm->pre_rpwm == coex_dm->cur_rpwm)) {
btc_alg_dbg(ALGO_TRACE_FW_DETAIL, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], LPS-RPWM_Last = 0x%x , LPS-RPWM_Now = 0x%x!!\n", "[BTCoex], LPS-RPWM_Last = 0x%x , LPS-RPWM_Now = 0x%x!!\n",
coex_dm->pre_rpwm, coex_dm->cur_rpwm); coex_dm->pre_rpwm, coex_dm->cur_rpwm);
...@@ -947,7 +979,9 @@ static void halbtc8723b1ant_LpsRpwm(struct btc_coexist *btcoexist, ...@@ -947,7 +979,9 @@ static void halbtc8723b1ant_LpsRpwm(struct btc_coexist *btcoexist,
static void halbtc8723b1ant_sw_mechanism(struct btc_coexist *btcoexist, static void halbtc8723b1ant_sw_mechanism(struct btc_coexist *btcoexist,
bool low_penalty_ra) bool low_penalty_ra)
{ {
btc_alg_dbg(ALGO_BT_MONITOR, struct rtl_priv *rtlpriv = btcoexist->adapter;
RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], SM[LpRA] = %d\n", low_penalty_ra); "[BTCoex], SM[LpRA] = %d\n", low_penalty_ra);
halbtc8723b1ant_low_penalty_ra(btcoexist, NORMAL_EXEC, low_penalty_ra); halbtc8723b1ant_low_penalty_ra(btcoexist, NORMAL_EXEC, low_penalty_ra);
...@@ -1153,6 +1187,7 @@ static void halbtc8723b1ant_SetAntPath(struct btc_coexist *btcoexist, ...@@ -1153,6 +1187,7 @@ static void halbtc8723b1ant_SetAntPath(struct btc_coexist *btcoexist,
static void halbtc8723b1ant_ps_tdma(struct btc_coexist *btcoexist, static void halbtc8723b1ant_ps_tdma(struct btc_coexist *btcoexist,
bool force_exec, bool turn_on, u8 type) bool force_exec, bool turn_on, u8 type)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
bool wifi_busy = false; bool wifi_busy = false;
u8 rssi_adjust_val = 0; u8 rssi_adjust_val = 0;
...@@ -1163,11 +1198,11 @@ static void halbtc8723b1ant_ps_tdma(struct btc_coexist *btcoexist, ...@@ -1163,11 +1198,11 @@ static void halbtc8723b1ant_ps_tdma(struct btc_coexist *btcoexist,
if (!force_exec) { if (!force_exec) {
if (coex_dm->cur_ps_tdma_on) if (coex_dm->cur_ps_tdma_on)
btc_alg_dbg(ALGO_TRACE_FW_DETAIL, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], ******** TDMA(on, %d) *********\n", "[BTCoex], ******** TDMA(on, %d) *********\n",
coex_dm->cur_ps_tdma); coex_dm->cur_ps_tdma);
else else
btc_alg_dbg(ALGO_TRACE_FW_DETAIL, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], ******** TDMA(off, %d) ********\n", "[BTCoex], ******** TDMA(off, %d) ********\n",
coex_dm->cur_ps_tdma); coex_dm->cur_ps_tdma);
...@@ -1374,6 +1409,7 @@ static void halbtc8723b1ant_ps_tdma(struct btc_coexist *btcoexist, ...@@ -1374,6 +1409,7 @@ static void halbtc8723b1ant_ps_tdma(struct btc_coexist *btcoexist,
static bool halbtc8723b1ant_is_common_action(struct btc_coexist *btcoexist) static bool halbtc8723b1ant_is_common_action(struct btc_coexist *btcoexist)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
bool commom = false, wifi_connected = false; bool commom = false, wifi_connected = false;
bool wifi_busy = false; bool wifi_busy = false;
...@@ -1383,44 +1419,44 @@ static bool halbtc8723b1ant_is_common_action(struct btc_coexist *btcoexist) ...@@ -1383,44 +1419,44 @@ static bool halbtc8723b1ant_is_common_action(struct btc_coexist *btcoexist)
if (!wifi_connected && if (!wifi_connected &&
BT_8723B_1ANT_BT_STATUS_NON_CONNECTED_IDLE == coex_dm->bt_status) { BT_8723B_1ANT_BT_STATUS_NON_CONNECTED_IDLE == coex_dm->bt_status) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Wifi non connected-idle + BT non connected-idle!!\n"); "[BTCoex], Wifi non connected-idle + BT non connected-idle!!\n");
halbtc8723b1ant_sw_mechanism(btcoexist, false); halbtc8723b1ant_sw_mechanism(btcoexist, false);
commom = true; commom = true;
} else if (wifi_connected && } else if (wifi_connected &&
(BT_8723B_1ANT_BT_STATUS_NON_CONNECTED_IDLE == (BT_8723B_1ANT_BT_STATUS_NON_CONNECTED_IDLE ==
coex_dm->bt_status)) { coex_dm->bt_status)) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Wifi connected + BT non connected-idle!!\n"); "[BTCoex], Wifi connected + BT non connected-idle!!\n");
halbtc8723b1ant_sw_mechanism(btcoexist, false); halbtc8723b1ant_sw_mechanism(btcoexist, false);
commom = true; commom = true;
} else if (!wifi_connected && } else if (!wifi_connected &&
(BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE == (BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE ==
coex_dm->bt_status)) { coex_dm->bt_status)) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Wifi non connected-idle + BT connected-idle!!\n"); "[BTCoex], Wifi non connected-idle + BT connected-idle!!\n");
halbtc8723b1ant_sw_mechanism(btcoexist, false); halbtc8723b1ant_sw_mechanism(btcoexist, false);
commom = true; commom = true;
} else if (wifi_connected && } else if (wifi_connected &&
(BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE == (BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE ==
coex_dm->bt_status)) { coex_dm->bt_status)) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Wifi connected + BT connected-idle!!\n"); "[BTCoex], Wifi connected + BT connected-idle!!\n");
halbtc8723b1ant_sw_mechanism(btcoexist, false); halbtc8723b1ant_sw_mechanism(btcoexist, false);
commom = true; commom = true;
} else if (!wifi_connected && } else if (!wifi_connected &&
(BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE != (BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE !=
coex_dm->bt_status)) { coex_dm->bt_status)) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Wifi non connected-idle + BT Busy!!\n"); "[BTCoex], Wifi non connected-idle + BT Busy!!\n");
halbtc8723b1ant_sw_mechanism(btcoexist, false); halbtc8723b1ant_sw_mechanism(btcoexist, false);
commom = true; commom = true;
} else { } else {
if (wifi_busy) if (wifi_busy)
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Wifi Connected-Busy + BT Busy!!\n"); "[BTCoex], Wifi Connected-Busy + BT Busy!!\n");
else else
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Wifi Connected-Idle + BT Busy!!\n"); "[BTCoex], Wifi Connected-Idle + BT Busy!!\n");
commom = false; commom = false;
...@@ -1432,6 +1468,7 @@ static bool halbtc8723b1ant_is_common_action(struct btc_coexist *btcoexist) ...@@ -1432,6 +1468,7 @@ static bool halbtc8723b1ant_is_common_action(struct btc_coexist *btcoexist)
static void btc8723b1ant_tdma_dur_adj_for_acl(struct btc_coexist *btcoexist, static void btc8723b1ant_tdma_dur_adj_for_acl(struct btc_coexist *btcoexist,
u8 wifi_status) u8 wifi_status)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
static s32 up, dn, m, n, wait_count; static s32 up, dn, m, n, wait_count;
/* 0: no change, +1: increase WiFi duration, /* 0: no change, +1: increase WiFi duration,
* -1: decrease WiFi duration * -1: decrease WiFi duration
...@@ -1440,7 +1477,7 @@ static void btc8723b1ant_tdma_dur_adj_for_acl(struct btc_coexist *btcoexist, ...@@ -1440,7 +1477,7 @@ static void btc8723b1ant_tdma_dur_adj_for_acl(struct btc_coexist *btcoexist,
u8 retry_count = 0, bt_info_ext; u8 retry_count = 0, bt_info_ext;
bool wifi_busy = false; bool wifi_busy = false;
btc_alg_dbg(ALGO_TRACE_FW, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], TdmaDurationAdjustForAcl()\n"); "[BTCoex], TdmaDurationAdjustForAcl()\n");
if (BT_8723B_1ANT_WIFI_STATUS_CONNECTED_BUSY == wifi_status) if (BT_8723B_1ANT_WIFI_STATUS_CONNECTED_BUSY == wifi_status)
...@@ -1470,7 +1507,7 @@ static void btc8723b1ant_tdma_dur_adj_for_acl(struct btc_coexist *btcoexist, ...@@ -1470,7 +1507,7 @@ static void btc8723b1ant_tdma_dur_adj_for_acl(struct btc_coexist *btcoexist,
if (!coex_dm->auto_tdma_adjust) { if (!coex_dm->auto_tdma_adjust) {
coex_dm->auto_tdma_adjust = true; coex_dm->auto_tdma_adjust = true;
btc_alg_dbg(ALGO_TRACE_FW_DETAIL, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], first run TdmaDurationAdjust()!!\n"); "[BTCoex], first run TdmaDurationAdjust()!!\n");
halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 2); halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 2);
...@@ -1502,7 +1539,7 @@ static void btc8723b1ant_tdma_dur_adj_for_acl(struct btc_coexist *btcoexist, ...@@ -1502,7 +1539,7 @@ static void btc8723b1ant_tdma_dur_adj_for_acl(struct btc_coexist *btcoexist,
up = 0; up = 0;
dn = 0; dn = 0;
result = 1; result = 1;
btc_alg_dbg(ALGO_TRACE_FW_DETAIL, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Increase wifi duration!!\n"); "[BTCoex], Increase wifi duration!!\n");
} }
} else if (retry_count <= 3) { } else if (retry_count <= 3) {
...@@ -1526,7 +1563,7 @@ static void btc8723b1ant_tdma_dur_adj_for_acl(struct btc_coexist *btcoexist, ...@@ -1526,7 +1563,7 @@ static void btc8723b1ant_tdma_dur_adj_for_acl(struct btc_coexist *btcoexist,
dn = 0; dn = 0;
wait_count = 0; wait_count = 0;
result = -1; result = -1;
btc_alg_dbg(ALGO_TRACE_FW_DETAIL, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Decrease wifi duration for retryCounter<3!!\n"); "[BTCoex], Decrease wifi duration for retryCounter<3!!\n");
} }
} else { } else {
...@@ -1543,7 +1580,7 @@ static void btc8723b1ant_tdma_dur_adj_for_acl(struct btc_coexist *btcoexist, ...@@ -1543,7 +1580,7 @@ static void btc8723b1ant_tdma_dur_adj_for_acl(struct btc_coexist *btcoexist,
dn = 0; dn = 0;
wait_count = 0; wait_count = 0;
result = -1; result = -1;
btc_alg_dbg(ALGO_TRACE_FW_DETAIL, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Decrease wifi duration for retryCounter>3!!\n"); "[BTCoex], Decrease wifi duration for retryCounter>3!!\n");
} }
...@@ -1589,7 +1626,7 @@ static void btc8723b1ant_tdma_dur_adj_for_acl(struct btc_coexist *btcoexist, ...@@ -1589,7 +1626,7 @@ static void btc8723b1ant_tdma_dur_adj_for_acl(struct btc_coexist *btcoexist,
} }
} else { /*no change */ } else { /*no change */
/*if busy / idle change */ /*if busy / idle change */
btc_alg_dbg(ALGO_TRACE_FW_DETAIL, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex],********* TDMA(on, %d) ********\n", "[BTCoex],********* TDMA(on, %d) ********\n",
coex_dm->cur_ps_tdma); coex_dm->cur_ps_tdma);
} }
...@@ -1807,7 +1844,7 @@ static void halbtc8723b1ant_action_wifi_connected_bt_acl_busy( ...@@ -1807,7 +1844,7 @@ static void halbtc8723b1ant_action_wifi_connected_bt_acl_busy(
struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
bt_rssi_state = halbtc8723b1ant_bt_rssi_state(2, 28, 0); bt_rssi_state = halbtc8723b1ant_bt_rssi_state(btcoexist, 2, 28, 0);
if (bt_link_info->hid_only) { /*HID */ if (bt_link_info->hid_only) { /*HID */
btc8723b1ant_act_bt_sco_hid_only_busy(btcoexist, wifi_status); btc8723b1ant_act_bt_sco_hid_only_busy(btcoexist, wifi_status);
...@@ -1993,18 +2030,19 @@ static void halbtc8723b1ant_action_wifi_connected_special_packet( ...@@ -1993,18 +2030,19 @@ static void halbtc8723b1ant_action_wifi_connected_special_packet(
static void halbtc8723b1ant_action_wifi_connected(struct btc_coexist *btcoexist) static void halbtc8723b1ant_action_wifi_connected(struct btc_coexist *btcoexist)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
bool wifi_busy = false; bool wifi_busy = false;
bool scan = false, link = false, roam = false; bool scan = false, link = false, roam = false;
bool under_4way = false, ap_enable = false; bool under_4way = false, ap_enable = false;
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], CoexForWifiConnect()===>\n"); "[BTCoex], CoexForWifiConnect()===>\n");
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_4_WAY_PROGRESS, btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_4_WAY_PROGRESS,
&under_4way); &under_4way);
if (under_4way) { if (under_4way) {
halbtc8723b1ant_action_wifi_connected_special_packet(btcoexist); halbtc8723b1ant_action_wifi_connected_special_packet(btcoexist);
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], CoexForWifiConnect(), return for wifi is under 4way<===\n"); "[BTCoex], CoexForWifiConnect(), return for wifi is under 4way<===\n");
return; return;
} }
...@@ -2019,7 +2057,7 @@ static void halbtc8723b1ant_action_wifi_connected(struct btc_coexist *btcoexist) ...@@ -2019,7 +2057,7 @@ static void halbtc8723b1ant_action_wifi_connected(struct btc_coexist *btcoexist)
else else
halbtc8723b1ant_action_wifi_connected_special_packet( halbtc8723b1ant_action_wifi_connected_special_packet(
btcoexist); btcoexist);
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], CoexForWifiConnect(), return for wifi is under scan<===\n"); "[BTCoex], CoexForWifiConnect(), return for wifi is under scan<===\n");
return; return;
} }
...@@ -2081,6 +2119,7 @@ static void halbtc8723b1ant_action_wifi_connected(struct btc_coexist *btcoexist) ...@@ -2081,6 +2119,7 @@ static void halbtc8723b1ant_action_wifi_connected(struct btc_coexist *btcoexist)
static void btc8723b1ant_run_sw_coex_mech(struct btc_coexist *btcoexist) static void btc8723b1ant_run_sw_coex_mech(struct btc_coexist *btcoexist)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
u8 algorithm = 0; u8 algorithm = 0;
algorithm = halbtc8723b1ant_action_algorithm(btcoexist); algorithm = halbtc8723b1ant_action_algorithm(btcoexist);
...@@ -2089,57 +2128,57 @@ static void btc8723b1ant_run_sw_coex_mech(struct btc_coexist *btcoexist) ...@@ -2089,57 +2128,57 @@ static void btc8723b1ant_run_sw_coex_mech(struct btc_coexist *btcoexist)
if (!halbtc8723b1ant_is_common_action(btcoexist)) { if (!halbtc8723b1ant_is_common_action(btcoexist)) {
switch (coex_dm->cur_algorithm) { switch (coex_dm->cur_algorithm) {
case BT_8723B_1ANT_COEX_ALGO_SCO: case BT_8723B_1ANT_COEX_ALGO_SCO:
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Action algorithm = SCO\n"); "[BTCoex], Action algorithm = SCO\n");
halbtc8723b1ant_action_sco(btcoexist); halbtc8723b1ant_action_sco(btcoexist);
break; break;
case BT_8723B_1ANT_COEX_ALGO_HID: case BT_8723B_1ANT_COEX_ALGO_HID:
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Action algorithm = HID\n"); "[BTCoex], Action algorithm = HID\n");
halbtc8723b1ant_action_hid(btcoexist); halbtc8723b1ant_action_hid(btcoexist);
break; break;
case BT_8723B_1ANT_COEX_ALGO_A2DP: case BT_8723B_1ANT_COEX_ALGO_A2DP:
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Action algorithm = A2DP\n"); "[BTCoex], Action algorithm = A2DP\n");
halbtc8723b1ant_action_a2dp(btcoexist); halbtc8723b1ant_action_a2dp(btcoexist);
break; break;
case BT_8723B_1ANT_COEX_ALGO_A2DP_PANHS: case BT_8723B_1ANT_COEX_ALGO_A2DP_PANHS:
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Action algorithm = A2DP+PAN(HS)\n"); "[BTCoex], Action algorithm = A2DP+PAN(HS)\n");
halbtc8723b1ant_action_a2dp_pan_hs(btcoexist); halbtc8723b1ant_action_a2dp_pan_hs(btcoexist);
break; break;
case BT_8723B_1ANT_COEX_ALGO_PANEDR: case BT_8723B_1ANT_COEX_ALGO_PANEDR:
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Action algorithm = PAN(EDR)\n"); "[BTCoex], Action algorithm = PAN(EDR)\n");
halbtc8723b1ant_action_pan_edr(btcoexist); halbtc8723b1ant_action_pan_edr(btcoexist);
break; break;
case BT_8723B_1ANT_COEX_ALGO_PANHS: case BT_8723B_1ANT_COEX_ALGO_PANHS:
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Action algorithm = HS mode\n"); "[BTCoex], Action algorithm = HS mode\n");
halbtc8723b1ant_action_pan_hs(btcoexist); halbtc8723b1ant_action_pan_hs(btcoexist);
break; break;
case BT_8723B_1ANT_COEX_ALGO_PANEDR_A2DP: case BT_8723B_1ANT_COEX_ALGO_PANEDR_A2DP:
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Action algorithm = PAN+A2DP\n"); "[BTCoex], Action algorithm = PAN+A2DP\n");
halbtc8723b1ant_action_pan_edr_a2dp(btcoexist); halbtc8723b1ant_action_pan_edr_a2dp(btcoexist);
break; break;
case BT_8723B_1ANT_COEX_ALGO_PANEDR_HID: case BT_8723B_1ANT_COEX_ALGO_PANEDR_HID:
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Action algorithm = PAN(EDR)+HID\n"); "[BTCoex], Action algorithm = PAN(EDR)+HID\n");
halbtc8723b1ant_action_pan_edr_hid(btcoexist); halbtc8723b1ant_action_pan_edr_hid(btcoexist);
break; break;
case BT_8723B_1ANT_COEX_ALGO_HID_A2DP_PANEDR: case BT_8723B_1ANT_COEX_ALGO_HID_A2DP_PANEDR:
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Action algorithm = HID+A2DP+PAN\n"); "[BTCoex], Action algorithm = HID+A2DP+PAN\n");
btc8723b1ant_action_hid_a2dp_pan_edr(btcoexist); btc8723b1ant_action_hid_a2dp_pan_edr(btcoexist);
break; break;
case BT_8723B_1ANT_COEX_ALGO_HID_A2DP: case BT_8723B_1ANT_COEX_ALGO_HID_A2DP:
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Action algorithm = HID+A2DP\n"); "[BTCoex], Action algorithm = HID+A2DP\n");
halbtc8723b1ant_action_hid_a2dp(btcoexist); halbtc8723b1ant_action_hid_a2dp(btcoexist);
break; break;
default: default:
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Action algorithm = coexist All Off!!\n"); "[BTCoex], Action algorithm = coexist All Off!!\n");
break; break;
} }
...@@ -2149,6 +2188,7 @@ static void btc8723b1ant_run_sw_coex_mech(struct btc_coexist *btcoexist) ...@@ -2149,6 +2188,7 @@ static void btc8723b1ant_run_sw_coex_mech(struct btc_coexist *btcoexist)
static void halbtc8723b1ant_run_coexist_mechanism(struct btc_coexist *btcoexist) static void halbtc8723b1ant_run_coexist_mechanism(struct btc_coexist *btcoexist)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
bool wifi_connected = false, bt_hs_on = false; bool wifi_connected = false, bt_hs_on = false;
bool increase_scan_dev_num = false; bool increase_scan_dev_num = false;
...@@ -2158,23 +2198,23 @@ static void halbtc8723b1ant_run_coexist_mechanism(struct btc_coexist *btcoexist) ...@@ -2158,23 +2198,23 @@ static void halbtc8723b1ant_run_coexist_mechanism(struct btc_coexist *btcoexist)
u32 wifi_link_status = 0; u32 wifi_link_status = 0;
u32 num_of_wifi_link = 0; u32 num_of_wifi_link = 0;
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], RunCoexistMechanism()===>\n"); "[BTCoex], RunCoexistMechanism()===>\n");
if (btcoexist->manual_control) { if (btcoexist->manual_control) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], RunCoexistMechanism(), return for Manual CTRL <===\n"); "[BTCoex], RunCoexistMechanism(), return for Manual CTRL <===\n");
return; return;
} }
if (btcoexist->stop_coex_dm) { if (btcoexist->stop_coex_dm) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], RunCoexistMechanism(), return for Stop Coex DM <===\n"); "[BTCoex], RunCoexistMechanism(), return for Stop Coex DM <===\n");
return; return;
} }
if (coex_sta->under_ips) { if (coex_sta->under_ips) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], wifi is under IPS !!!\n"); "[BTCoex], wifi is under IPS !!!\n");
return; return;
} }
...@@ -2254,7 +2294,7 @@ static void halbtc8723b1ant_run_coexist_mechanism(struct btc_coexist *btcoexist) ...@@ -2254,7 +2294,7 @@ static void halbtc8723b1ant_run_coexist_mechanism(struct btc_coexist *btcoexist)
if (!wifi_connected) { if (!wifi_connected) {
bool scan = false, link = false, roam = false; bool scan = false, link = false, roam = false;
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], wifi is non connected-idle !!!\n"); "[BTCoex], wifi is non connected-idle !!!\n");
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan); btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan);
...@@ -2288,11 +2328,12 @@ static void halbtc8723b1ant_init_coex_dm(struct btc_coexist *btcoexist) ...@@ -2288,11 +2328,12 @@ static void halbtc8723b1ant_init_coex_dm(struct btc_coexist *btcoexist)
static void halbtc8723b1ant_init_hw_config(struct btc_coexist *btcoexist, static void halbtc8723b1ant_init_hw_config(struct btc_coexist *btcoexist,
bool backup) bool backup)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
u32 u32tmp = 0; u32 u32tmp = 0;
u8 u8tmp = 0; u8 u8tmp = 0;
u32 cnt_bt_cal_chk = 0; u32 cnt_bt_cal_chk = 0;
btc_iface_dbg(INTF_INIT, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], 1Ant Init HW Config!!\n"); "[BTCoex], 1Ant Init HW Config!!\n");
if (backup) {/* backup rf 0x1e value */ if (backup) {/* backup rf 0x1e value */
...@@ -2320,12 +2361,12 @@ static void halbtc8723b1ant_init_hw_config(struct btc_coexist *btcoexist, ...@@ -2320,12 +2361,12 @@ static void halbtc8723b1ant_init_hw_config(struct btc_coexist *btcoexist,
u32tmp = btcoexist->btc_read_4byte(btcoexist, 0x49d); u32tmp = btcoexist->btc_read_4byte(btcoexist, 0x49d);
cnt_bt_cal_chk++; cnt_bt_cal_chk++;
if (u32tmp & BIT0) { if (u32tmp & BIT0) {
btc_iface_dbg(INTF_INIT, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], ########### BT calibration(cnt=%d) ###########\n", "[BTCoex], ########### BT calibration(cnt=%d) ###########\n",
cnt_bt_cal_chk); cnt_bt_cal_chk);
mdelay(50); mdelay(50);
} else { } else {
btc_iface_dbg(INTF_INIT, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], ********** BT NOT calibration (cnt=%d)**********\n", "[BTCoex], ********** BT NOT calibration (cnt=%d)**********\n",
cnt_bt_cal_chk); cnt_bt_cal_chk);
break; break;
...@@ -2370,7 +2411,9 @@ void ex_halbtc8723b1ant_init_hwconfig(struct btc_coexist *btcoexist) ...@@ -2370,7 +2411,9 @@ void ex_halbtc8723b1ant_init_hwconfig(struct btc_coexist *btcoexist)
void ex_halbtc8723b1ant_init_coex_dm(struct btc_coexist *btcoexist) void ex_halbtc8723b1ant_init_coex_dm(struct btc_coexist *btcoexist)
{ {
btc_iface_dbg(INTF_INIT, struct rtl_priv *rtlpriv = btcoexist->adapter;
RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Coex Mechanism Init!!\n"); "[BTCoex], Coex Mechanism Init!!\n");
btcoexist->stop_coex_dm = false; btcoexist->stop_coex_dm = false;
...@@ -2468,10 +2511,10 @@ void ex_halbtc8723b1ant_display_coex_info(struct btc_coexist *btcoexist) ...@@ -2468,10 +2511,10 @@ void ex_halbtc8723b1ant_display_coex_info(struct btc_coexist *btcoexist)
RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "\r\n %-35s = %s / %s/ %s ", RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "\r\n %-35s = %s / %s/ %s ",
"Wifi status", (wifi_under_5g ? "5G" : "2.4G"), "Wifi status", (wifi_under_5g ? "5G" : "2.4G"),
((BTC_WIFI_BW_LEGACY == wifi_bw) ? "Legacy" : ((wifi_bw == BTC_WIFI_BW_LEGACY) ? "Legacy" :
(((BTC_WIFI_BW_HT40 == wifi_bw) ? "HT40" : "HT20"))), ((wifi_bw == BTC_WIFI_BW_HT40) ? "HT40" : "HT20")),
((!wifi_busy) ? "idle" : ((!wifi_busy) ? "idle" :
((BTC_WIFI_TRAFFIC_TX == wifi_traffic_dir) ? ((wifi_traffic_dir == BTC_WIFI_TRAFFIC_TX) ?
"uplink" : "downlink"))); "uplink" : "downlink")));
btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_LINK_STATUS, btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_LINK_STATUS,
...@@ -2606,7 +2649,7 @@ void ex_halbtc8723b1ant_display_coex_info(struct btc_coexist *btcoexist) ...@@ -2606,7 +2649,7 @@ void ex_halbtc8723b1ant_display_coex_info(struct btc_coexist *btcoexist)
RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
"\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x",
"0x38[11]/0x40/0x4c[24:23]/0x64[0]", "0x38[11]/0x40/0x4c[24:23]/0x64[0]",
((u8tmp[0] & 0x8)>>3), u8tmp[1], ((u8tmp[0] & 0x8) >> 3), u8tmp[1],
((u32tmp[0] & 0x01800000) >> 23), u8tmp[2] & 0x1); ((u32tmp[0] & 0x01800000) >> 23), u8tmp[2] & 0x1);
u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x550); u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x550);
...@@ -2660,11 +2703,13 @@ void ex_halbtc8723b1ant_display_coex_info(struct btc_coexist *btcoexist) ...@@ -2660,11 +2703,13 @@ void ex_halbtc8723b1ant_display_coex_info(struct btc_coexist *btcoexist)
void ex_halbtc8723b1ant_ips_notify(struct btc_coexist *btcoexist, u8 type) void ex_halbtc8723b1ant_ips_notify(struct btc_coexist *btcoexist, u8 type)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
if (btcoexist->manual_control || btcoexist->stop_coex_dm) if (btcoexist->manual_control || btcoexist->stop_coex_dm)
return; return;
if (BTC_IPS_ENTER == type) { if (BTC_IPS_ENTER == type) {
btc_iface_dbg(INTF_NOTIFY, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], IPS ENTER notify\n"); "[BTCoex], IPS ENTER notify\n");
coex_sta->under_ips = true; coex_sta->under_ips = true;
...@@ -2676,7 +2721,7 @@ void ex_halbtc8723b1ant_ips_notify(struct btc_coexist *btcoexist, u8 type) ...@@ -2676,7 +2721,7 @@ void ex_halbtc8723b1ant_ips_notify(struct btc_coexist *btcoexist, u8 type)
NORMAL_EXEC, 0); NORMAL_EXEC, 0);
halbtc8723b1ant_wifi_off_hw_cfg(btcoexist); halbtc8723b1ant_wifi_off_hw_cfg(btcoexist);
} else if (BTC_IPS_LEAVE == type) { } else if (BTC_IPS_LEAVE == type) {
btc_iface_dbg(INTF_NOTIFY, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], IPS LEAVE notify\n"); "[BTCoex], IPS LEAVE notify\n");
coex_sta->under_ips = false; coex_sta->under_ips = false;
...@@ -2688,15 +2733,17 @@ void ex_halbtc8723b1ant_ips_notify(struct btc_coexist *btcoexist, u8 type) ...@@ -2688,15 +2733,17 @@ void ex_halbtc8723b1ant_ips_notify(struct btc_coexist *btcoexist, u8 type)
void ex_halbtc8723b1ant_lps_notify(struct btc_coexist *btcoexist, u8 type) void ex_halbtc8723b1ant_lps_notify(struct btc_coexist *btcoexist, u8 type)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
if (btcoexist->manual_control || btcoexist->stop_coex_dm) if (btcoexist->manual_control || btcoexist->stop_coex_dm)
return; return;
if (BTC_LPS_ENABLE == type) { if (BTC_LPS_ENABLE == type) {
btc_iface_dbg(INTF_NOTIFY, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], LPS ENABLE notify\n"); "[BTCoex], LPS ENABLE notify\n");
coex_sta->under_lps = true; coex_sta->under_lps = true;
} else if (BTC_LPS_DISABLE == type) { } else if (BTC_LPS_DISABLE == type) {
btc_iface_dbg(INTF_NOTIFY, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], LPS DISABLE notify\n"); "[BTCoex], LPS DISABLE notify\n");
coex_sta->under_lps = false; coex_sta->under_lps = false;
} }
...@@ -2704,6 +2751,7 @@ void ex_halbtc8723b1ant_lps_notify(struct btc_coexist *btcoexist, u8 type) ...@@ -2704,6 +2751,7 @@ void ex_halbtc8723b1ant_lps_notify(struct btc_coexist *btcoexist, u8 type)
void ex_halbtc8723b1ant_scan_notify(struct btc_coexist *btcoexist, u8 type) void ex_halbtc8723b1ant_scan_notify(struct btc_coexist *btcoexist, u8 type)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
bool wifi_connected = false, bt_hs_on = false; bool wifi_connected = false, bt_hs_on = false;
u32 wifi_link_status = 0; u32 wifi_link_status = 0;
u32 num_of_wifi_link = 0; u32 num_of_wifi_link = 0;
...@@ -2740,14 +2788,14 @@ void ex_halbtc8723b1ant_scan_notify(struct btc_coexist *btcoexist, u8 type) ...@@ -2740,14 +2788,14 @@ void ex_halbtc8723b1ant_scan_notify(struct btc_coexist *btcoexist, u8 type)
} }
if (BTC_SCAN_START == type) { if (BTC_SCAN_START == type) {
btc_iface_dbg(INTF_NOTIFY, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], SCAN START notify\n"); "[BTCoex], SCAN START notify\n");
if (!wifi_connected) /* non-connected scan */ if (!wifi_connected) /* non-connected scan */
btc8723b1ant_action_wifi_not_conn_scan(btcoexist); btc8723b1ant_action_wifi_not_conn_scan(btcoexist);
else /* wifi is connected */ else /* wifi is connected */
btc8723b1ant_action_wifi_conn_scan(btcoexist); btc8723b1ant_action_wifi_conn_scan(btcoexist);
} else if (BTC_SCAN_FINISH == type) { } else if (BTC_SCAN_FINISH == type) {
btc_iface_dbg(INTF_NOTIFY, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], SCAN FINISH notify\n"); "[BTCoex], SCAN FINISH notify\n");
if (!wifi_connected) /* non-connected scan */ if (!wifi_connected) /* non-connected scan */
btc8723b1ant_action_wifi_not_conn(btcoexist); btc8723b1ant_action_wifi_not_conn(btcoexist);
...@@ -2758,6 +2806,7 @@ void ex_halbtc8723b1ant_scan_notify(struct btc_coexist *btcoexist, u8 type) ...@@ -2758,6 +2806,7 @@ void ex_halbtc8723b1ant_scan_notify(struct btc_coexist *btcoexist, u8 type)
void ex_halbtc8723b1ant_connect_notify(struct btc_coexist *btcoexist, u8 type) void ex_halbtc8723b1ant_connect_notify(struct btc_coexist *btcoexist, u8 type)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
bool wifi_connected = false, bt_hs_on = false; bool wifi_connected = false, bt_hs_on = false;
u32 wifi_link_status = 0; u32 wifi_link_status = 0;
u32 num_of_wifi_link = 0; u32 num_of_wifi_link = 0;
...@@ -2789,11 +2838,11 @@ void ex_halbtc8723b1ant_connect_notify(struct btc_coexist *btcoexist, u8 type) ...@@ -2789,11 +2838,11 @@ void ex_halbtc8723b1ant_connect_notify(struct btc_coexist *btcoexist, u8 type)
} }
if (BTC_ASSOCIATE_START == type) { if (BTC_ASSOCIATE_START == type) {
btc_iface_dbg(INTF_NOTIFY, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], CONNECT START notify\n"); "[BTCoex], CONNECT START notify\n");
btc8723b1ant_act_wifi_not_conn_asso_auth(btcoexist); btc8723b1ant_act_wifi_not_conn_asso_auth(btcoexist);
} else if (BTC_ASSOCIATE_FINISH == type) { } else if (BTC_ASSOCIATE_FINISH == type) {
btc_iface_dbg(INTF_NOTIFY, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], CONNECT FINISH notify\n"); "[BTCoex], CONNECT FINISH notify\n");
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED,
...@@ -2808,6 +2857,7 @@ void ex_halbtc8723b1ant_connect_notify(struct btc_coexist *btcoexist, u8 type) ...@@ -2808,6 +2857,7 @@ void ex_halbtc8723b1ant_connect_notify(struct btc_coexist *btcoexist, u8 type)
void ex_halbtc8723b1ant_media_status_notify(struct btc_coexist *btcoexist, void ex_halbtc8723b1ant_media_status_notify(struct btc_coexist *btcoexist,
u8 type) u8 type)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
u8 h2c_parameter[3] = {0}; u8 h2c_parameter[3] = {0};
u32 wifi_bw; u32 wifi_bw;
u8 wifiCentralChnl; u8 wifiCentralChnl;
...@@ -2817,10 +2867,10 @@ void ex_halbtc8723b1ant_media_status_notify(struct btc_coexist *btcoexist, ...@@ -2817,10 +2867,10 @@ void ex_halbtc8723b1ant_media_status_notify(struct btc_coexist *btcoexist,
return; return;
if (BTC_MEDIA_CONNECT == type) if (BTC_MEDIA_CONNECT == type)
btc_iface_dbg(INTF_NOTIFY, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], MEDIA connect notify\n"); "[BTCoex], MEDIA connect notify\n");
else else
btc_iface_dbg(INTF_NOTIFY, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], MEDIA disconnect notify\n"); "[BTCoex], MEDIA disconnect notify\n");
/* only 2.4G we need to inform bt the chnl mask */ /* only 2.4G we need to inform bt the chnl mask */
...@@ -2842,7 +2892,7 @@ void ex_halbtc8723b1ant_media_status_notify(struct btc_coexist *btcoexist, ...@@ -2842,7 +2892,7 @@ void ex_halbtc8723b1ant_media_status_notify(struct btc_coexist *btcoexist,
coex_dm->wifi_chnl_info[1] = h2c_parameter[1]; coex_dm->wifi_chnl_info[1] = h2c_parameter[1];
coex_dm->wifi_chnl_info[2] = h2c_parameter[2]; coex_dm->wifi_chnl_info[2] = h2c_parameter[2];
btc_alg_dbg(ALGO_TRACE_FW_EXEC, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], FW write 0x66 = 0x%x\n", "[BTCoex], FW write 0x66 = 0x%x\n",
h2c_parameter[0] << 16 | h2c_parameter[1] << 8 | h2c_parameter[0] << 16 | h2c_parameter[1] << 8 |
h2c_parameter[2]); h2c_parameter[2]);
...@@ -2853,6 +2903,7 @@ void ex_halbtc8723b1ant_media_status_notify(struct btc_coexist *btcoexist, ...@@ -2853,6 +2903,7 @@ void ex_halbtc8723b1ant_media_status_notify(struct btc_coexist *btcoexist,
void ex_halbtc8723b1ant_special_packet_notify(struct btc_coexist *btcoexist, void ex_halbtc8723b1ant_special_packet_notify(struct btc_coexist *btcoexist,
u8 type) u8 type)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
bool bt_hs_on = false; bool bt_hs_on = false;
u32 wifi_link_status = 0; u32 wifi_link_status = 0;
u32 num_of_wifi_link = 0; u32 num_of_wifi_link = 0;
...@@ -2887,7 +2938,7 @@ void ex_halbtc8723b1ant_special_packet_notify(struct btc_coexist *btcoexist, ...@@ -2887,7 +2938,7 @@ void ex_halbtc8723b1ant_special_packet_notify(struct btc_coexist *btcoexist,
if (BTC_PACKET_DHCP == type || if (BTC_PACKET_DHCP == type ||
BTC_PACKET_EAPOL == type) { BTC_PACKET_EAPOL == type) {
btc_iface_dbg(INTF_NOTIFY, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], special Packet(%d) notify\n", type); "[BTCoex], special Packet(%d) notify\n", type);
halbtc8723b1ant_action_wifi_connected_special_packet(btcoexist); halbtc8723b1ant_action_wifi_connected_special_packet(btcoexist);
} }
...@@ -2896,6 +2947,7 @@ void ex_halbtc8723b1ant_special_packet_notify(struct btc_coexist *btcoexist, ...@@ -2896,6 +2947,7 @@ void ex_halbtc8723b1ant_special_packet_notify(struct btc_coexist *btcoexist,
void ex_halbtc8723b1ant_bt_info_notify(struct btc_coexist *btcoexist, void ex_halbtc8723b1ant_bt_info_notify(struct btc_coexist *btcoexist,
u8 *tmp_buf, u8 length) u8 *tmp_buf, u8 length)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
u8 bt_info = 0; u8 bt_info = 0;
u8 i, rsp_source = 0; u8 i, rsp_source = 0;
bool wifi_connected = false; bool wifi_connected = false;
...@@ -2908,7 +2960,7 @@ void ex_halbtc8723b1ant_bt_info_notify(struct btc_coexist *btcoexist, ...@@ -2908,7 +2960,7 @@ void ex_halbtc8723b1ant_bt_info_notify(struct btc_coexist *btcoexist,
rsp_source = BT_INFO_SRC_8723B_1ANT_WIFI_FW; rsp_source = BT_INFO_SRC_8723B_1ANT_WIFI_FW;
coex_sta->bt_info_c2h_cnt[rsp_source]++; coex_sta->bt_info_c2h_cnt[rsp_source]++;
btc_iface_dbg(INTF_NOTIFY, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Bt info[%d], length=%d, hex data = [", "[BTCoex], Bt info[%d], length=%d, hex data = [",
rsp_source, length); rsp_source, length);
for (i = 0; i < length; i++) { for (i = 0; i < length; i++) {
...@@ -2916,10 +2968,10 @@ void ex_halbtc8723b1ant_bt_info_notify(struct btc_coexist *btcoexist, ...@@ -2916,10 +2968,10 @@ void ex_halbtc8723b1ant_bt_info_notify(struct btc_coexist *btcoexist,
if (i == 1) if (i == 1)
bt_info = tmp_buf[i]; bt_info = tmp_buf[i];
if (i == length - 1) if (i == length - 1)
btc_iface_dbg(INTF_NOTIFY, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"0x%02x]\n", tmp_buf[i]); "0x%02x]\n", tmp_buf[i]);
else else
btc_iface_dbg(INTF_NOTIFY, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"0x%02x, ", tmp_buf[i]); "0x%02x, ", tmp_buf[i]);
} }
...@@ -2937,7 +2989,7 @@ void ex_halbtc8723b1ant_bt_info_notify(struct btc_coexist *btcoexist, ...@@ -2937,7 +2989,7 @@ void ex_halbtc8723b1ant_bt_info_notify(struct btc_coexist *btcoexist,
* because bt is reset and loss of the info. * because bt is reset and loss of the info.
*/ */
if (coex_sta->bt_info_ext & BIT1) { if (coex_sta->bt_info_ext & BIT1) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT ext info bit1 check, send wifi BW&Chnl to BT!!\n"); "[BTCoex], BT ext info bit1 check, send wifi BW&Chnl to BT!!\n");
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED,
&wifi_connected); &wifi_connected);
...@@ -2952,7 +3004,7 @@ void ex_halbtc8723b1ant_bt_info_notify(struct btc_coexist *btcoexist, ...@@ -2952,7 +3004,7 @@ void ex_halbtc8723b1ant_bt_info_notify(struct btc_coexist *btcoexist,
if (coex_sta->bt_info_ext & BIT3) { if (coex_sta->bt_info_ext & BIT3) {
if (!btcoexist->manual_control && if (!btcoexist->manual_control &&
!btcoexist->stop_coex_dm) { !btcoexist->stop_coex_dm) {
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT ext info bit3 check, set BT NOT ignore Wlan active!!\n"); "[BTCoex], BT ext info bit3 check, set BT NOT ignore Wlan active!!\n");
halbtc8723b1ant_ignore_wlan_act(btcoexist, halbtc8723b1ant_ignore_wlan_act(btcoexist,
FORCE_EXEC, FORCE_EXEC,
...@@ -3008,29 +3060,29 @@ void ex_halbtc8723b1ant_bt_info_notify(struct btc_coexist *btcoexist, ...@@ -3008,29 +3060,29 @@ void ex_halbtc8723b1ant_bt_info_notify(struct btc_coexist *btcoexist,
if (!(bt_info&BT_INFO_8723B_1ANT_B_CONNECTION)) { if (!(bt_info&BT_INFO_8723B_1ANT_B_CONNECTION)) {
coex_dm->bt_status = BT_8723B_1ANT_BT_STATUS_NON_CONNECTED_IDLE; coex_dm->bt_status = BT_8723B_1ANT_BT_STATUS_NON_CONNECTED_IDLE;
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BtInfoNotify(), BT Non-Connected idle!\n"); "[BTCoex], BtInfoNotify(), BT Non-Connected idle!\n");
/* connection exists but no busy */ /* connection exists but no busy */
} else if (bt_info == BT_INFO_8723B_1ANT_B_CONNECTION) { } else if (bt_info == BT_INFO_8723B_1ANT_B_CONNECTION) {
coex_dm->bt_status = BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE; coex_dm->bt_status = BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE;
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BtInfoNotify(), BT Connected-idle!!!\n"); "[BTCoex], BtInfoNotify(), BT Connected-idle!!!\n");
} else if ((bt_info & BT_INFO_8723B_1ANT_B_SCO_ESCO) || } else if ((bt_info & BT_INFO_8723B_1ANT_B_SCO_ESCO) ||
(bt_info & BT_INFO_8723B_1ANT_B_SCO_BUSY)) { (bt_info & BT_INFO_8723B_1ANT_B_SCO_BUSY)) {
coex_dm->bt_status = BT_8723B_1ANT_BT_STATUS_SCO_BUSY; coex_dm->bt_status = BT_8723B_1ANT_BT_STATUS_SCO_BUSY;
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BtInfoNotify(), BT SCO busy!!!\n"); "[BTCoex], BtInfoNotify(), BT SCO busy!!!\n");
} else if (bt_info & BT_INFO_8723B_1ANT_B_ACL_BUSY) { } else if (bt_info & BT_INFO_8723B_1ANT_B_ACL_BUSY) {
if (BT_8723B_1ANT_BT_STATUS_ACL_BUSY != coex_dm->bt_status) if (BT_8723B_1ANT_BT_STATUS_ACL_BUSY != coex_dm->bt_status)
coex_dm->auto_tdma_adjust = false; coex_dm->auto_tdma_adjust = false;
coex_dm->bt_status = BT_8723B_1ANT_BT_STATUS_ACL_BUSY; coex_dm->bt_status = BT_8723B_1ANT_BT_STATUS_ACL_BUSY;
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BtInfoNotify(), BT ACL busy!!!\n"); "[BTCoex], BtInfoNotify(), BT ACL busy!!!\n");
} else { } else {
coex_dm->bt_status = coex_dm->bt_status =
BT_8723B_1ANT_BT_STATUS_MAX; BT_8723B_1ANT_BT_STATUS_MAX;
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BtInfoNotify(), BT Non-Defined state!!\n"); "[BTCoex], BtInfoNotify(), BT Non-Defined state!!\n");
} }
...@@ -3047,7 +3099,9 @@ void ex_halbtc8723b1ant_bt_info_notify(struct btc_coexist *btcoexist, ...@@ -3047,7 +3099,9 @@ void ex_halbtc8723b1ant_bt_info_notify(struct btc_coexist *btcoexist,
void ex_halbtc8723b1ant_halt_notify(struct btc_coexist *btcoexist) void ex_halbtc8723b1ant_halt_notify(struct btc_coexist *btcoexist)
{ {
btc_iface_dbg(INTF_NOTIFY, "[BTCoex], Halt notify\n"); struct rtl_priv *rtlpriv = btcoexist->adapter;
RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD, "[BTCoex], Halt notify\n");
btcoexist->stop_coex_dm = true; btcoexist->stop_coex_dm = true;
...@@ -3065,10 +3119,12 @@ void ex_halbtc8723b1ant_halt_notify(struct btc_coexist *btcoexist) ...@@ -3065,10 +3119,12 @@ void ex_halbtc8723b1ant_halt_notify(struct btc_coexist *btcoexist)
void ex_halbtc8723b1ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state) void ex_halbtc8723b1ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state)
{ {
btc_iface_dbg(INTF_NOTIFY, "[BTCoex], Pnp notify\n"); struct rtl_priv *rtlpriv = btcoexist->adapter;
RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD, "[BTCoex], Pnp notify\n");
if (BTC_WIFI_PNP_SLEEP == pnp_state) { if (BTC_WIFI_PNP_SLEEP == pnp_state) {
btc_iface_dbg(INTF_NOTIFY, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Pnp notify to SLEEP\n"); "[BTCoex], Pnp notify to SLEEP\n");
btcoexist->stop_coex_dm = true; btcoexist->stop_coex_dm = true;
halbtc8723b1ant_SetAntPath(btcoexist, BTC_ANT_PATH_BT, false, halbtc8723b1ant_SetAntPath(btcoexist, BTC_ANT_PATH_BT, false,
...@@ -3079,7 +3135,7 @@ void ex_halbtc8723b1ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state) ...@@ -3079,7 +3135,7 @@ void ex_halbtc8723b1ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state)
halbtc8723b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 2); halbtc8723b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 2);
halbtc8723b1ant_wifi_off_hw_cfg(btcoexist); halbtc8723b1ant_wifi_off_hw_cfg(btcoexist);
} else if (BTC_WIFI_PNP_WAKE_UP == pnp_state) { } else if (BTC_WIFI_PNP_WAKE_UP == pnp_state) {
btc_iface_dbg(INTF_NOTIFY, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Pnp notify to WAKE UP\n"); "[BTCoex], Pnp notify to WAKE UP\n");
btcoexist->stop_coex_dm = false; btcoexist->stop_coex_dm = false;
halbtc8723b1ant_init_hw_config(btcoexist, false); halbtc8723b1ant_init_hw_config(btcoexist, false);
...@@ -3090,7 +3146,9 @@ void ex_halbtc8723b1ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state) ...@@ -3090,7 +3146,9 @@ void ex_halbtc8723b1ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state)
void ex_halbtc8723b1ant_coex_dm_reset(struct btc_coexist *btcoexist) void ex_halbtc8723b1ant_coex_dm_reset(struct btc_coexist *btcoexist)
{ {
btc_alg_dbg(ALGO_TRACE, struct rtl_priv *rtlpriv = btcoexist->adapter;
RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], *****************Coex DM Reset****************\n"); "[BTCoex], *****************Coex DM Reset****************\n");
halbtc8723b1ant_init_hw_config(btcoexist, false); halbtc8723b1ant_init_hw_config(btcoexist, false);
...@@ -3101,35 +3159,36 @@ void ex_halbtc8723b1ant_coex_dm_reset(struct btc_coexist *btcoexist) ...@@ -3101,35 +3159,36 @@ void ex_halbtc8723b1ant_coex_dm_reset(struct btc_coexist *btcoexist)
void ex_halbtc8723b1ant_periodical(struct btc_coexist *btcoexist) void ex_halbtc8723b1ant_periodical(struct btc_coexist *btcoexist)
{ {
struct rtl_priv *rtlpriv = btcoexist->adapter;
struct btc_board_info *board_info = &btcoexist->board_info; struct btc_board_info *board_info = &btcoexist->board_info;
struct btc_stack_info *stack_info = &btcoexist->stack_info; struct btc_stack_info *stack_info = &btcoexist->stack_info;
static u8 dis_ver_info_cnt; static u8 dis_ver_info_cnt;
u32 fw_ver = 0, bt_patch_ver = 0; u32 fw_ver = 0, bt_patch_ver = 0;
btc_alg_dbg(ALGO_TRACE, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], ==========================Periodical===========================\n"); "[BTCoex], ==========================Periodical===========================\n");
if (dis_ver_info_cnt <= 5) { if (dis_ver_info_cnt <= 5) {
dis_ver_info_cnt += 1; dis_ver_info_cnt += 1;
btc_iface_dbg(INTF_INIT, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], ****************************************************************\n"); "[BTCoex], ****************************************************************\n");
btc_iface_dbg(INTF_INIT, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], Ant PG Num/ Ant Mech/ Ant Pos = %d/ %d/ %d\n", "[BTCoex], Ant PG Num/ Ant Mech/ Ant Pos = %d/ %d/ %d\n",
board_info->pg_ant_num, board_info->btdm_ant_num, board_info->pg_ant_num, board_info->btdm_ant_num,
board_info->btdm_ant_pos); board_info->btdm_ant_pos);
btc_iface_dbg(INTF_INIT, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], BT stack/ hci ext ver = %s / %d\n", "[BTCoex], BT stack/ hci ext ver = %s / %d\n",
stack_info->profile_notified ? "Yes" : "No", stack_info->profile_notified ? "Yes" : "No",
stack_info->hci_version); stack_info->hci_version);
btcoexist->btc_get(btcoexist, BTC_GET_U4_BT_PATCH_VER, btcoexist->btc_get(btcoexist, BTC_GET_U4_BT_PATCH_VER,
&bt_patch_ver); &bt_patch_ver);
btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_FW_VER, &fw_ver); btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_FW_VER, &fw_ver);
btc_iface_dbg(INTF_INIT, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], CoexVer/ FwVer/ PatchVer = %d_%x/ 0x%x/ 0x%x(%d)\n", "[BTCoex], CoexVer/ FwVer/ PatchVer = %d_%x/ 0x%x/ 0x%x(%d)\n",
glcoex_ver_date_8723b_1ant, glcoex_ver_date_8723b_1ant,
glcoex_ver_8723b_1ant, fw_ver, glcoex_ver_8723b_1ant, fw_ver,
bt_patch_ver, bt_patch_ver); bt_patch_ver, bt_patch_ver);
btc_iface_dbg(INTF_INIT, RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
"[BTCoex], ****************************************************************\n"); "[BTCoex], ****************************************************************\n");
} }
......
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