forked from Minki/linux
rtlwifi: btcoexist: Convert BTC_PRINTK to btc_<foo>_dbg
Use a more common logging style. Miscellanea: o Add specific logging macros for ALGORITHM and INTERFACE types o Output the messages at KERN_DEBUG o Coalesce formats o Align arguments o Whitespace style adjustments for only these changes Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
1e81245820
commit
466414a084
File diff suppressed because it is too large
Load Diff
@ -74,27 +74,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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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 +104,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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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 +118,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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[BTCoex], BT Rssi state stay at High\n");
|
"[BTCoex], BT Rssi state stay at High\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -165,31 +165,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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
"[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];
|
||||||
}
|
}
|
||||||
@ -201,13 +197,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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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] ==
|
||||||
@ -217,30 +211,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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[BTCoex], wifi RSSI state stay at High\n");
|
"[BTCoex], wifi RSSI state stay at High\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -435,7 +424,7 @@ static void halbtc8723b1ant_query_bt_info(struct btc_coexist *btcoexist)
|
|||||||
|
|
||||||
h2c_parameter[0] |= BIT0; /* trigger*/
|
h2c_parameter[0] |= BIT0; /* trigger*/
|
||||||
|
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC,
|
btc_alg_dbg(ALGO_TRACE_FW_EXEC,
|
||||||
"[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]);
|
||||||
|
|
||||||
@ -532,7 +521,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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], No BT link exists!!!\n");
|
"[BTCoex], No BT link exists!!!\n");
|
||||||
return algorithm;
|
return algorithm;
|
||||||
}
|
}
|
||||||
@ -548,26 +537,26 @@ 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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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;
|
||||||
@ -577,20 +566,20 @@ 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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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;
|
||||||
@ -599,18 +588,18 @@ 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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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;
|
||||||
@ -618,12 +607,12 @@ 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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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;
|
||||||
@ -634,18 +623,18 @@ 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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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;
|
||||||
@ -653,11 +642,11 @@ 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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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;
|
||||||
@ -668,12 +657,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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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;
|
||||||
@ -686,10 +675,10 @@ 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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Error!!! BT Profile = SCO + HID + A2DP + PAN(HS)\n");
|
"[BTCoex], Error!!! BT Profile = SCO + HID + A2DP + PAN(HS)\n");
|
||||||
} else {
|
} else {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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;
|
||||||
@ -717,7 +706,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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC,
|
btc_alg_dbg(ALGO_TRACE_FW_EXEC,
|
||||||
"[BTCoex], set WiFi Low-Penalty Retry: %s",
|
"[BTCoex], set WiFi Low-Penalty Retry: %s",
|
||||||
(low_penalty_ra ? "ON!!" : "OFF!!"));
|
(low_penalty_ra ? "ON!!" : "OFF!!"));
|
||||||
|
|
||||||
@ -743,19 +732,19 @@ 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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC,
|
btc_alg_dbg(ALGO_TRACE_SW_EXEC,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC,
|
btc_alg_dbg(ALGO_TRACE_SW_EXEC,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC,
|
btc_alg_dbg(ALGO_TRACE_SW_EXEC,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC,
|
btc_alg_dbg(ALGO_TRACE_SW_EXEC,
|
||||||
"[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);
|
||||||
}
|
}
|
||||||
@ -765,7 +754,7 @@ static void halbtc8723b1ant_coex_table(struct btc_coexist *btcoexist,
|
|||||||
u32 val0x6c4, u32 val0x6c8,
|
u32 val0x6c4, u32 val0x6c8,
|
||||||
u8 val0x6cc)
|
u8 val0x6cc)
|
||||||
{
|
{
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW,
|
btc_alg_dbg(ALGO_TRACE_SW,
|
||||||
"[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);
|
||||||
@ -839,7 +828,7 @@ static void halbtc8723b1ant_SetFwIgnoreWlanAct(struct btc_coexist *btcoexist,
|
|||||||
if (enable)
|
if (enable)
|
||||||
h2c_parameter[0] |= BIT0; /* function enable */
|
h2c_parameter[0] |= BIT0; /* function enable */
|
||||||
|
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC,
|
btc_alg_dbg(ALGO_TRACE_FW_EXEC,
|
||||||
"[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]);
|
||||||
|
|
||||||
@ -849,13 +838,13 @@ 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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW,
|
btc_alg_dbg(ALGO_TRACE_FW,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
"[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);
|
||||||
@ -882,7 +871,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_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[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;
|
||||||
@ -904,7 +893,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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC,
|
btc_alg_dbg(ALGO_TRACE_FW_EXEC,
|
||||||
"[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 |
|
||||||
@ -929,20 +918,20 @@ 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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW,
|
btc_alg_dbg(ALGO_TRACE_FW,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
"[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);
|
||||||
|
|
||||||
@ -958,7 +947,7 @@ 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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR,
|
btc_alg_dbg(ALGO_BT_MONITOR,
|
||||||
"[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);
|
||||||
@ -1174,11 +1163,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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
"[BTCoex], ******** TDMA(on, %d) *********\n",
|
"[BTCoex], ******** TDMA(on, %d) *********\n",
|
||||||
coex_dm->cur_ps_tdma);
|
coex_dm->cur_ps_tdma);
|
||||||
else
|
else
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
"[BTCoex], ******** TDMA(off, %d) ********\n",
|
"[BTCoex], ******** TDMA(off, %d) ********\n",
|
||||||
coex_dm->cur_ps_tdma);
|
coex_dm->cur_ps_tdma);
|
||||||
|
|
||||||
@ -1394,44 +1383,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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
("[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Wifi Connected-Busy + BT Busy!!\n");
|
"[BTCoex], Wifi Connected-Busy + BT Busy!!\n");
|
||||||
else
|
else
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Wifi Connected-Idle + BT Busy!!\n");
|
"[BTCoex], Wifi Connected-Idle + BT Busy!!\n");
|
||||||
|
|
||||||
commom = false;
|
commom = false;
|
||||||
@ -1451,7 +1440,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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW,
|
btc_alg_dbg(ALGO_TRACE_FW,
|
||||||
"[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)
|
||||||
@ -1481,7 +1470,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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
"[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);
|
||||||
@ -1513,8 +1502,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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
ALGO_TRACE_FW_DETAIL,
|
|
||||||
"[BTCoex], Increase wifi duration!!\n");
|
"[BTCoex], Increase wifi duration!!\n");
|
||||||
}
|
}
|
||||||
} else if (retry_count <= 3) {
|
} else if (retry_count <= 3) {
|
||||||
@ -1538,8 +1526,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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
ALGO_TRACE_FW_DETAIL,
|
|
||||||
"[BTCoex], Decrease wifi duration for retryCounter<3!!\n");
|
"[BTCoex], Decrease wifi duration for retryCounter<3!!\n");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -1556,7 +1543,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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
"[BTCoex], Decrease wifi duration for retryCounter>3!!\n");
|
"[BTCoex], Decrease wifi duration for retryCounter>3!!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1602,7 +1589,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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
"[BTCoex],********* TDMA(on, %d) ********\n",
|
"[BTCoex],********* TDMA(on, %d) ********\n",
|
||||||
coex_dm->cur_ps_tdma);
|
coex_dm->cur_ps_tdma);
|
||||||
}
|
}
|
||||||
@ -2010,14 +1997,14 @@ static void halbtc8723b1ant_action_wifi_connected(struct btc_coexist *btcoexist)
|
|||||||
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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], CoexForWifiConnect(), return for wifi is under 4way<===\n");
|
"[BTCoex], CoexForWifiConnect(), return for wifi is under 4way<===\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -2032,7 +2019,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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], CoexForWifiConnect(), return for wifi is under scan<===\n");
|
"[BTCoex], CoexForWifiConnect(), return for wifi is under scan<===\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -2102,57 +2089,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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Action algorithm = coexist All Off!!\n");
|
"[BTCoex], Action algorithm = coexist All Off!!\n");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2171,23 +2158,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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], RunCoexistMechanism()===>\n");
|
"[BTCoex], RunCoexistMechanism()===>\n");
|
||||||
|
|
||||||
if (btcoexist->manual_control) {
|
if (btcoexist->manual_control) {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], wifi is under IPS !!!\n");
|
"[BTCoex], wifi is under IPS !!!\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -2267,7 +2254,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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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);
|
||||||
@ -2305,7 +2292,7 @@ static void halbtc8723b1ant_init_hw_config(struct btc_coexist *btcoexist,
|
|||||||
u8 u8tmp = 0;
|
u8 u8tmp = 0;
|
||||||
u32 cnt_bt_cal_chk = 0;
|
u32 cnt_bt_cal_chk = 0;
|
||||||
|
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT,
|
btc_iface_dbg(INTF_INIT,
|
||||||
"[BTCoex], 1Ant Init HW Config!!\n");
|
"[BTCoex], 1Ant Init HW Config!!\n");
|
||||||
|
|
||||||
if (backup) {/* backup rf 0x1e value */
|
if (backup) {/* backup rf 0x1e value */
|
||||||
@ -2333,12 +2320,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_PRINT(BTC_MSG_INTERFACE, INTF_INIT,
|
btc_iface_dbg(INTF_INIT,
|
||||||
"[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_PRINT(BTC_MSG_INTERFACE, INTF_INIT,
|
btc_iface_dbg(INTF_INIT,
|
||||||
"[BTCoex], ********** BT NOT calibration (cnt=%d)**********\n",
|
"[BTCoex], ********** BT NOT calibration (cnt=%d)**********\n",
|
||||||
cnt_bt_cal_chk);
|
cnt_bt_cal_chk);
|
||||||
break;
|
break;
|
||||||
@ -2383,7 +2370,7 @@ 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_PRINT(BTC_MSG_INTERFACE, INTF_INIT,
|
btc_iface_dbg(INTF_INIT,
|
||||||
"[BTCoex], Coex Mechanism Init!!\n");
|
"[BTCoex], Coex Mechanism Init!!\n");
|
||||||
|
|
||||||
btcoexist->stop_coex_dm = false;
|
btcoexist->stop_coex_dm = false;
|
||||||
@ -2677,7 +2664,7 @@ void ex_halbtc8723b1ant_ips_notify(struct btc_coexist *btcoexist, u8 type)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (BTC_IPS_ENTER == type) {
|
if (BTC_IPS_ENTER == type) {
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[BTCoex], IPS ENTER notify\n");
|
"[BTCoex], IPS ENTER notify\n");
|
||||||
coex_sta->under_ips = true;
|
coex_sta->under_ips = true;
|
||||||
|
|
||||||
@ -2689,7 +2676,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_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[BTCoex], IPS LEAVE notify\n");
|
"[BTCoex], IPS LEAVE notify\n");
|
||||||
coex_sta->under_ips = false;
|
coex_sta->under_ips = false;
|
||||||
|
|
||||||
@ -2705,11 +2692,11 @@ void ex_halbtc8723b1ant_lps_notify(struct btc_coexist *btcoexist, u8 type)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (BTC_LPS_ENABLE == type) {
|
if (BTC_LPS_ENABLE == type) {
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[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_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[BTCoex], LPS DISABLE notify\n");
|
"[BTCoex], LPS DISABLE notify\n");
|
||||||
coex_sta->under_lps = false;
|
coex_sta->under_lps = false;
|
||||||
}
|
}
|
||||||
@ -2753,14 +2740,14 @@ void ex_halbtc8723b1ant_scan_notify(struct btc_coexist *btcoexist, u8 type)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (BTC_SCAN_START == type) {
|
if (BTC_SCAN_START == type) {
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[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_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[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);
|
||||||
@ -2802,11 +2789,11 @@ void ex_halbtc8723b1ant_connect_notify(struct btc_coexist *btcoexist, u8 type)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (BTC_ASSOCIATE_START == type) {
|
if (BTC_ASSOCIATE_START == type) {
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[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_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[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,
|
||||||
@ -2830,10 +2817,10 @@ void ex_halbtc8723b1ant_media_status_notify(struct btc_coexist *btcoexist,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (BTC_MEDIA_CONNECT == type)
|
if (BTC_MEDIA_CONNECT == type)
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[BTCoex], MEDIA connect notify\n");
|
"[BTCoex], MEDIA connect notify\n");
|
||||||
else
|
else
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[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 */
|
||||||
@ -2855,7 +2842,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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC,
|
btc_alg_dbg(ALGO_TRACE_FW_EXEC,
|
||||||
"[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]);
|
||||||
@ -2900,7 +2887,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_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[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);
|
||||||
}
|
}
|
||||||
@ -2921,7 +2908,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_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[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++) {
|
||||||
@ -2929,10 +2916,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_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"0x%02x]\n", tmp_buf[i]);
|
"0x%02x]\n", tmp_buf[i]);
|
||||||
else
|
else
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"0x%02x, ", tmp_buf[i]);
|
"0x%02x, ", tmp_buf[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2950,7 +2937,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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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);
|
||||||
@ -2965,7 +2952,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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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,
|
||||||
@ -3021,29 +3008,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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BtInfoNotify(), BT Non-Defined state!!\n");
|
"[BTCoex], BtInfoNotify(), BT Non-Defined state!!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3060,7 +3047,7 @@ 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_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, "[BTCoex], Halt notify\n");
|
btc_iface_dbg(INTF_NOTIFY, "[BTCoex], Halt notify\n");
|
||||||
|
|
||||||
btcoexist->stop_coex_dm = true;
|
btcoexist->stop_coex_dm = true;
|
||||||
|
|
||||||
@ -3078,10 +3065,10 @@ 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_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, "[BTCoex], Pnp notify\n");
|
btc_iface_dbg(INTF_NOTIFY, "[BTCoex], Pnp notify\n");
|
||||||
|
|
||||||
if (BTC_WIFI_PNP_SLEEP == pnp_state) {
|
if (BTC_WIFI_PNP_SLEEP == pnp_state) {
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[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,
|
||||||
@ -3092,7 +3079,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_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[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);
|
||||||
@ -3103,7 +3090,7 @@ 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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], *****************Coex DM Reset****************\n");
|
"[BTCoex], *****************Coex DM Reset****************\n");
|
||||||
|
|
||||||
halbtc8723b1ant_init_hw_config(btcoexist, false);
|
halbtc8723b1ant_init_hw_config(btcoexist, false);
|
||||||
@ -3119,30 +3106,30 @@ void ex_halbtc8723b1ant_periodical(struct btc_coexist *btcoexist)
|
|||||||
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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_INTERFACE, INTF_INIT,
|
btc_iface_dbg(INTF_INIT,
|
||||||
"[BTCoex], ****************************************************************\n");
|
"[BTCoex], ****************************************************************\n");
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT,
|
btc_iface_dbg(INTF_INIT,
|
||||||
"[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_PRINT(BTC_MSG_INTERFACE, INTF_INIT,
|
btc_iface_dbg(INTF_INIT,
|
||||||
"[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_PRINT(BTC_MSG_INTERFACE, INTF_INIT,
|
btc_iface_dbg(INTF_INIT,
|
||||||
"[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_PRINT(BTC_MSG_INTERFACE, INTF_INIT,
|
btc_iface_dbg(INTF_INIT,
|
||||||
"[BTCoex], ****************************************************************\n");
|
"[BTCoex], ****************************************************************\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -76,27 +76,27 @@ static u8 halbtc8821a1ant_bt_rssi_state(u8 level_num, u8 rssi_thresh,
|
|||||||
if (bt_rssi >= (rssi_thresh +
|
if (bt_rssi >= (rssi_thresh +
|
||||||
BTC_RSSI_COEX_THRESH_TOL_8821A_1ANT)) {
|
BTC_RSSI_COEX_THRESH_TOL_8821A_1ANT)) {
|
||||||
bt_rssi_state = BTC_RSSI_STATE_HIGH;
|
bt_rssi_state = BTC_RSSI_STATE_HIGH;
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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;
|
||||||
}
|
}
|
||||||
@ -106,11 +106,11 @@ static u8 halbtc8821a1ant_bt_rssi_state(u8 level_num, u8 rssi_thresh,
|
|||||||
if (bt_rssi >= (rssi_thresh +
|
if (bt_rssi >= (rssi_thresh +
|
||||||
BTC_RSSI_COEX_THRESH_TOL_8821A_1ANT)) {
|
BTC_RSSI_COEX_THRESH_TOL_8821A_1ANT)) {
|
||||||
bt_rssi_state = BTC_RSSI_STATE_MEDIUM;
|
bt_rssi_state = BTC_RSSI_STATE_MEDIUM;
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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 ==
|
||||||
@ -120,25 +120,25 @@ static u8 halbtc8821a1ant_bt_rssi_state(u8 level_num, u8 rssi_thresh,
|
|||||||
if (bt_rssi >= (rssi_thresh1 +
|
if (bt_rssi >= (rssi_thresh1 +
|
||||||
BTC_RSSI_COEX_THRESH_TOL_8821A_1ANT)) {
|
BTC_RSSI_COEX_THRESH_TOL_8821A_1ANT)) {
|
||||||
bt_rssi_state = BTC_RSSI_STATE_HIGH;
|
bt_rssi_state = BTC_RSSI_STATE_HIGH;
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE,
|
btc_alg_dbg(ALGO_BT_RSSI_STATE,
|
||||||
"[BTCoex], BT Rssi state stay at High\n");
|
"[BTCoex], BT Rssi state stay at High\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -165,31 +165,27 @@ static u8 halbtc8821a1ant_WifiRssiState(struct btc_coexist *btcoexist,
|
|||||||
if (wifi_rssi >=
|
if (wifi_rssi >=
|
||||||
(rssi_thresh+BTC_RSSI_COEX_THRESH_TOL_8821A_1ANT)) {
|
(rssi_thresh+BTC_RSSI_COEX_THRESH_TOL_8821A_1ANT)) {
|
||||||
wifi_rssi_state = BTC_RSSI_STATE_HIGH;
|
wifi_rssi_state = BTC_RSSI_STATE_HIGH;
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
"[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];
|
||||||
}
|
}
|
||||||
@ -201,13 +197,11 @@ static u8 halbtc8821a1ant_WifiRssiState(struct btc_coexist *btcoexist,
|
|||||||
if (wifi_rssi >=
|
if (wifi_rssi >=
|
||||||
(rssi_thresh+BTC_RSSI_COEX_THRESH_TOL_8821A_1ANT)) {
|
(rssi_thresh+BTC_RSSI_COEX_THRESH_TOL_8821A_1ANT)) {
|
||||||
wifi_rssi_state = BTC_RSSI_STATE_MEDIUM;
|
wifi_rssi_state = BTC_RSSI_STATE_MEDIUM;
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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] ==
|
||||||
@ -218,30 +212,25 @@ static u8 halbtc8821a1ant_WifiRssiState(struct btc_coexist *btcoexist,
|
|||||||
(rssi_thresh1 +
|
(rssi_thresh1 +
|
||||||
BTC_RSSI_COEX_THRESH_TOL_8821A_1ANT)) {
|
BTC_RSSI_COEX_THRESH_TOL_8821A_1ANT)) {
|
||||||
wifi_rssi_state = BTC_RSSI_STATE_HIGH;
|
wifi_rssi_state = BTC_RSSI_STATE_HIGH;
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_WIFI_RSSI_STATE,
|
||||||
ALGO_WIFI_RSSI_STATE,
|
|
||||||
"[BTCoex], wifi RSSI state stay at High\n");
|
"[BTCoex], wifi RSSI state stay at High\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -431,7 +420,7 @@ static void halbtc8821a1ant_query_bt_info(struct btc_coexist *btcoexist)
|
|||||||
|
|
||||||
h2c_parameter[0] |= BIT0; /* trigger*/
|
h2c_parameter[0] |= BIT0; /* trigger*/
|
||||||
|
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC,
|
btc_alg_dbg(ALGO_TRACE_FW_EXEC,
|
||||||
"[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]);
|
||||||
|
|
||||||
@ -504,7 +493,7 @@ static u8 halbtc8821a1ant_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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], No BT link exists!!!\n");
|
"[BTCoex], No BT link exists!!!\n");
|
||||||
return algorithm;
|
return algorithm;
|
||||||
}
|
}
|
||||||
@ -520,25 +509,25 @@ static u8 halbtc8821a1ant_action_algorithm(struct btc_coexist *btcoexist)
|
|||||||
|
|
||||||
if (num_of_diff_profile == 1) {
|
if (num_of_diff_profile == 1) {
|
||||||
if (bt_link_info->sco_exist) {
|
if (bt_link_info->sco_exist) {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = SCO only\n");
|
"[BTCoex], BT Profile = SCO only\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_SCO;
|
algorithm = BT_8821A_1ANT_COEX_ALGO_SCO;
|
||||||
} else {
|
} else {
|
||||||
if (bt_link_info->hid_exist) {
|
if (bt_link_info->hid_exist) {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = HID only\n");
|
"[BTCoex], BT Profile = HID only\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_HID;
|
algorithm = BT_8821A_1ANT_COEX_ALGO_HID;
|
||||||
} else if (bt_link_info->a2dp_exist) {
|
} else if (bt_link_info->a2dp_exist) {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = A2DP only\n");
|
"[BTCoex], BT Profile = A2DP only\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_A2DP;
|
algorithm = BT_8821A_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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = PAN(HS) only\n");
|
"[BTCoex], BT Profile = PAN(HS) only\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_PANHS;
|
algorithm = BT_8821A_1ANT_COEX_ALGO_PANHS;
|
||||||
} else {
|
} else {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = PAN(EDR) only\n");
|
"[BTCoex], BT Profile = PAN(EDR) only\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_PANEDR;
|
algorithm = BT_8821A_1ANT_COEX_ALGO_PANEDR;
|
||||||
}
|
}
|
||||||
@ -547,20 +536,20 @@ static u8 halbtc8821a1ant_action_algorithm(struct btc_coexist *btcoexist)
|
|||||||
} else if (num_of_diff_profile == 2) {
|
} else if (num_of_diff_profile == 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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = SCO + HID\n");
|
"[BTCoex], BT Profile = SCO + HID\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_HID;
|
algorithm = BT_8821A_1ANT_COEX_ALGO_HID;
|
||||||
} else if (bt_link_info->a2dp_exist) {
|
} else if (bt_link_info->a2dp_exist) {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = SCO + A2DP ==> SCO\n");
|
"[BTCoex], BT Profile = SCO + A2DP ==> SCO\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_SCO;
|
algorithm = BT_8821A_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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = SCO + PAN(HS)\n");
|
"[BTCoex], BT Profile = SCO + PAN(HS)\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_SCO;
|
algorithm = BT_8821A_1ANT_COEX_ALGO_SCO;
|
||||||
} else {
|
} else {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = SCO + PAN(EDR)\n");
|
"[BTCoex], BT Profile = SCO + PAN(EDR)\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_PANEDR_HID;
|
algorithm = BT_8821A_1ANT_COEX_ALGO_PANEDR_HID;
|
||||||
}
|
}
|
||||||
@ -568,28 +557,28 @@ static u8 halbtc8821a1ant_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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = HID + A2DP\n");
|
"[BTCoex], BT Profile = HID + A2DP\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_HID_A2DP;
|
algorithm = BT_8821A_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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = HID + PAN(HS)\n");
|
"[BTCoex], BT Profile = HID + PAN(HS)\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_HID_A2DP;
|
algorithm = BT_8821A_1ANT_COEX_ALGO_HID_A2DP;
|
||||||
} else {
|
} else {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = HID + PAN(EDR)\n");
|
"[BTCoex], BT Profile = HID + PAN(EDR)\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_PANEDR_HID;
|
algorithm = BT_8821A_1ANT_COEX_ALGO_PANEDR_HID;
|
||||||
}
|
}
|
||||||
} 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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = A2DP + PAN(HS)\n");
|
"[BTCoex], BT Profile = A2DP + PAN(HS)\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_A2DP_PANHS;
|
algorithm = BT_8821A_1ANT_COEX_ALGO_A2DP_PANHS;
|
||||||
} else {
|
} else {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = A2DP + PAN(EDR)\n");
|
"[BTCoex], BT Profile = A2DP + PAN(EDR)\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_PANEDR_A2DP;
|
algorithm = BT_8821A_1ANT_COEX_ALGO_PANEDR_A2DP;
|
||||||
}
|
}
|
||||||
@ -599,28 +588,28 @@ static u8 halbtc8821a1ant_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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = SCO + HID + A2DP ==> HID\n");
|
"[BTCoex], BT Profile = SCO + HID + A2DP ==> HID\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_HID;
|
algorithm = BT_8821A_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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = SCO + HID + PAN(HS)\n");
|
"[BTCoex], BT Profile = SCO + HID + PAN(HS)\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_HID_A2DP;
|
algorithm = BT_8821A_1ANT_COEX_ALGO_HID_A2DP;
|
||||||
} else {
|
} else {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = SCO + HID + PAN(EDR)\n");
|
"[BTCoex], BT Profile = SCO + HID + PAN(EDR)\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_PANEDR_HID;
|
algorithm = BT_8821A_1ANT_COEX_ALGO_PANEDR_HID;
|
||||||
}
|
}
|
||||||
} 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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = SCO + A2DP + PAN(HS)\n");
|
"[BTCoex], BT Profile = SCO + A2DP + PAN(HS)\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_SCO;
|
algorithm = BT_8821A_1ANT_COEX_ALGO_SCO;
|
||||||
} else {
|
} else {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = SCO + A2DP + PAN(EDR) ==> HID\n");
|
"[BTCoex], BT Profile = SCO + A2DP + PAN(EDR) ==> HID\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_PANEDR_HID;
|
algorithm = BT_8821A_1ANT_COEX_ALGO_PANEDR_HID;
|
||||||
}
|
}
|
||||||
@ -630,11 +619,11 @@ static u8 halbtc8821a1ant_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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = HID + A2DP + PAN(HS)\n");
|
"[BTCoex], BT Profile = HID + A2DP + PAN(HS)\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_HID_A2DP;
|
algorithm = BT_8821A_1ANT_COEX_ALGO_HID_A2DP;
|
||||||
} else {
|
} else {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT Profile = HID + A2DP + PAN(EDR)\n");
|
"[BTCoex], BT Profile = HID + A2DP + PAN(EDR)\n");
|
||||||
algorithm = BT_8821A_1ANT_COEX_ALGO_HID_A2DP_PANEDR;
|
algorithm = BT_8821A_1ANT_COEX_ALGO_HID_A2DP_PANEDR;
|
||||||
}
|
}
|
||||||
@ -646,11 +635,11 @@ static u8 halbtc8821a1ant_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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Error!!! BT Profile = SCO + HID + A2DP + PAN(HS)\n");
|
"[BTCoex], Error!!! BT Profile = SCO + HID + A2DP + PAN(HS)\n");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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 = BT_8821A_1ANT_COEX_ALGO_PANEDR_HID;
|
algorithm = BT_8821A_1ANT_COEX_ALGO_PANEDR_HID;
|
||||||
}
|
}
|
||||||
@ -670,7 +659,7 @@ static void halbtc8821a1ant_set_bt_auto_report(struct btc_coexist *btcoexist,
|
|||||||
if (enable_auto_report)
|
if (enable_auto_report)
|
||||||
h2c_parameter[0] |= BIT0;
|
h2c_parameter[0] |= BIT0;
|
||||||
|
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC,
|
btc_alg_dbg(ALGO_TRACE_FW_EXEC,
|
||||||
"[BTCoex], BT FW auto report : %s, FW write 0x68 = 0x%x\n",
|
"[BTCoex], BT FW auto report : %s, FW write 0x68 = 0x%x\n",
|
||||||
(enable_auto_report ? "Enabled!!" : "Disabled!!"),
|
(enable_auto_report ? "Enabled!!" : "Disabled!!"),
|
||||||
h2c_parameter[0]);
|
h2c_parameter[0]);
|
||||||
@ -682,14 +671,13 @@ static void halbtc8821a1ant_bt_auto_report(struct btc_coexist *btcoexist,
|
|||||||
bool force_exec,
|
bool force_exec,
|
||||||
bool enable_auto_report)
|
bool enable_auto_report)
|
||||||
{
|
{
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_TRACE_FW, "[BTCoex], %s BT Auto report = %s\n",
|
||||||
ALGO_TRACE_FW, "[BTCoex], %s BT Auto report = %s\n",
|
|
||||||
(force_exec ? "force to" : ""), ((enable_auto_report) ?
|
(force_exec ? "force to" : ""), ((enable_auto_report) ?
|
||||||
"Enabled" : "Disabled"));
|
"Enabled" : "Disabled"));
|
||||||
coex_dm->cur_bt_auto_report = enable_auto_report;
|
coex_dm->cur_bt_auto_report = enable_auto_report;
|
||||||
|
|
||||||
if (!force_exec) {
|
if (!force_exec) {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
"[BTCoex], pre_bt_auto_report = %d, cur_bt_auto_report = %d\n",
|
"[BTCoex], pre_bt_auto_report = %d, cur_bt_auto_report = %d\n",
|
||||||
coex_dm->pre_bt_auto_report,
|
coex_dm->pre_bt_auto_report,
|
||||||
coex_dm->cur_bt_auto_report);
|
coex_dm->cur_bt_auto_report);
|
||||||
@ -718,7 +706,7 @@ static void btc8821a1ant_set_sw_pen_tx_rate(struct btc_coexist *btcoexist,
|
|||||||
h2c_parameter[5] = 0xf9; /*MCS5 or OFDM36*/
|
h2c_parameter[5] = 0xf9; /*MCS5 or OFDM36*/
|
||||||
}
|
}
|
||||||
|
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC,
|
btc_alg_dbg(ALGO_TRACE_FW_EXEC,
|
||||||
"[BTCoex], set WiFi Low-Penalty Retry: %s",
|
"[BTCoex], set WiFi Low-Penalty Retry: %s",
|
||||||
(low_penalty_ra ? "ON!!" : "OFF!!"));
|
(low_penalty_ra ? "ON!!" : "OFF!!"));
|
||||||
|
|
||||||
@ -743,19 +731,19 @@ static void halbtc8821a1ant_set_coex_table(struct btc_coexist *btcoexist,
|
|||||||
u32 val0x6c0, u32 val0x6c4,
|
u32 val0x6c0, u32 val0x6c4,
|
||||||
u32 val0x6c8, u8 val0x6cc)
|
u32 val0x6c8, u8 val0x6cc)
|
||||||
{
|
{
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC,
|
btc_alg_dbg(ALGO_TRACE_SW_EXEC,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC,
|
btc_alg_dbg(ALGO_TRACE_SW_EXEC,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC,
|
btc_alg_dbg(ALGO_TRACE_SW_EXEC,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC,
|
btc_alg_dbg(ALGO_TRACE_SW_EXEC,
|
||||||
"[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);
|
||||||
}
|
}
|
||||||
@ -764,7 +752,7 @@ static void halbtc8821a1ant_coex_table(struct btc_coexist *btcoexist,
|
|||||||
bool force_exec, u32 val0x6c0,
|
bool force_exec, u32 val0x6c0,
|
||||||
u32 val0x6c4, u32 val0x6c8, u8 val0x6cc)
|
u32 val0x6c4, u32 val0x6c8, u8 val0x6cc)
|
||||||
{
|
{
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW,
|
btc_alg_dbg(ALGO_TRACE_SW,
|
||||||
"[BTCoex], %s write Coex Table 0x6c0 = 0x%x, 0x6c4 = 0x%x, 0x6c8 = 0x%x, 0x6cc = 0x%x\n",
|
"[BTCoex], %s write Coex Table 0x6c0 = 0x%x, 0x6c4 = 0x%x, 0x6c8 = 0x%x, 0x6cc = 0x%x\n",
|
||||||
(force_exec ? "force to" : ""), val0x6c0, val0x6c4,
|
(force_exec ? "force to" : ""), val0x6c0, val0x6c4,
|
||||||
val0x6c8, val0x6cc);
|
val0x6c8, val0x6cc);
|
||||||
@ -839,7 +827,7 @@ static void btc8821a1ant_set_fw_ignore_wlan_act(struct btc_coexist *btcoexist,
|
|||||||
if (enable)
|
if (enable)
|
||||||
h2c_parameter[0] |= BIT0; /* function enable*/
|
h2c_parameter[0] |= BIT0; /* function enable*/
|
||||||
|
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC,
|
btc_alg_dbg(ALGO_TRACE_FW_EXEC,
|
||||||
"[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]);
|
||||||
|
|
||||||
@ -849,13 +837,13 @@ static void btc8821a1ant_set_fw_ignore_wlan_act(struct btc_coexist *btcoexist,
|
|||||||
static void halbtc8821a1ant_ignore_wlan_act(struct btc_coexist *btcoexist,
|
static void halbtc8821a1ant_ignore_wlan_act(struct btc_coexist *btcoexist,
|
||||||
bool force_exec, bool enable)
|
bool force_exec, bool enable)
|
||||||
{
|
{
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW,
|
btc_alg_dbg(ALGO_TRACE_FW,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
"[BTCoex], pre_ignore_wlan_act = %d, cur_ignore_wlan_act = %d!!\n",
|
"[BTCoex], pre_ignore_wlan_act = %d, cur_ignore_wlan_act = %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);
|
||||||
@ -887,12 +875,12 @@ static void halbtc8821a1ant_set_fw_pstdma(struct btc_coexist *btcoexist,
|
|||||||
coex_dm->ps_tdma_para[3] = byte4;
|
coex_dm->ps_tdma_para[3] = byte4;
|
||||||
coex_dm->ps_tdma_para[4] = byte5;
|
coex_dm->ps_tdma_para[4] = byte5;
|
||||||
|
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC,
|
btc_alg_dbg(ALGO_TRACE_FW_EXEC,
|
||||||
"[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 |
|
||||||
h2c_parameter[2]<<16 |
|
h2c_parameter[2] << 16 |
|
||||||
h2c_parameter[3]<<8 |
|
h2c_parameter[3] << 8 |
|
||||||
h2c_parameter[4]);
|
h2c_parameter[4]);
|
||||||
btcoexist->btc_fill_h2c(btcoexist, 0x60, 5, h2c_parameter);
|
btcoexist->btc_fill_h2c(btcoexist, 0x60, 5, h2c_parameter);
|
||||||
}
|
}
|
||||||
@ -910,20 +898,20 @@ static void halbtc8821a1ant_set_lps_rpwm(struct btc_coexist *btcoexist,
|
|||||||
static void halbtc8821a1ant_lps_rpwm(struct btc_coexist *btcoexist,
|
static void halbtc8821a1ant_lps_rpwm(struct btc_coexist *btcoexist,
|
||||||
bool force_exec, u8 lps_val, u8 rpwm_val)
|
bool force_exec, u8 lps_val, u8 rpwm_val)
|
||||||
{
|
{
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW,
|
btc_alg_dbg(ALGO_TRACE_FW,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
"[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);
|
||||||
|
|
||||||
@ -939,7 +927,7 @@ static void halbtc8821a1ant_lps_rpwm(struct btc_coexist *btcoexist,
|
|||||||
static void halbtc8821a1ant_sw_mechanism(struct btc_coexist *btcoexist,
|
static void halbtc8821a1ant_sw_mechanism(struct btc_coexist *btcoexist,
|
||||||
bool low_penalty_ra)
|
bool low_penalty_ra)
|
||||||
{
|
{
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR,
|
btc_alg_dbg(ALGO_BT_MONITOR,
|
||||||
"[BTCoex], SM[LpRA] = %d\n", low_penalty_ra);
|
"[BTCoex], SM[LpRA] = %d\n", low_penalty_ra);
|
||||||
|
|
||||||
halbtc8821a1ant_low_penalty_ra(btcoexist, NORMAL_EXEC, low_penalty_ra);
|
halbtc8821a1ant_low_penalty_ra(btcoexist, NORMAL_EXEC, low_penalty_ra);
|
||||||
@ -1036,11 +1024,11 @@ static void halbtc8821a1ant_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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
"[BTCoex], ********** TDMA(on, %d) **********\n",
|
"[BTCoex], ********** TDMA(on, %d) **********\n",
|
||||||
coex_dm->cur_ps_tdma);
|
coex_dm->cur_ps_tdma);
|
||||||
} else {
|
} else {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
"[BTCoex], ********** TDMA(off, %d) **********\n",
|
"[BTCoex], ********** TDMA(off, %d) **********\n",
|
||||||
coex_dm->cur_ps_tdma);
|
coex_dm->cur_ps_tdma);
|
||||||
}
|
}
|
||||||
@ -1253,7 +1241,7 @@ static bool halbtc8821a1ant_is_common_action(struct btc_coexist *btcoexist)
|
|||||||
if (!wifi_connected &&
|
if (!wifi_connected &&
|
||||||
BT_8821A_1ANT_BT_STATUS_NON_CONNECTED_IDLE ==
|
BT_8821A_1ANT_BT_STATUS_NON_CONNECTED_IDLE ==
|
||||||
coex_dm->bt_status) {
|
coex_dm->bt_status) {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Wifi non connected-idle + BT non connected-idle!!\n");
|
"[BTCoex], Wifi non connected-idle + BT non connected-idle!!\n");
|
||||||
halbtc8821a1ant_sw_mechanism(btcoexist, false);
|
halbtc8821a1ant_sw_mechanism(btcoexist, false);
|
||||||
|
|
||||||
@ -1261,7 +1249,7 @@ static bool halbtc8821a1ant_is_common_action(struct btc_coexist *btcoexist)
|
|||||||
} else if (wifi_connected &&
|
} else if (wifi_connected &&
|
||||||
(BT_8821A_1ANT_BT_STATUS_NON_CONNECTED_IDLE ==
|
(BT_8821A_1ANT_BT_STATUS_NON_CONNECTED_IDLE ==
|
||||||
coex_dm->bt_status)) {
|
coex_dm->bt_status)) {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Wifi connected + BT non connected-idle!!\n");
|
"[BTCoex], Wifi connected + BT non connected-idle!!\n");
|
||||||
halbtc8821a1ant_sw_mechanism(btcoexist, false);
|
halbtc8821a1ant_sw_mechanism(btcoexist, false);
|
||||||
|
|
||||||
@ -1269,7 +1257,7 @@ static bool halbtc8821a1ant_is_common_action(struct btc_coexist *btcoexist)
|
|||||||
} else if (!wifi_connected &&
|
} else if (!wifi_connected &&
|
||||||
(BT_8821A_1ANT_BT_STATUS_CONNECTED_IDLE ==
|
(BT_8821A_1ANT_BT_STATUS_CONNECTED_IDLE ==
|
||||||
coex_dm->bt_status)) {
|
coex_dm->bt_status)) {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Wifi non connected-idle + BT connected-idle!!\n");
|
"[BTCoex], Wifi non connected-idle + BT connected-idle!!\n");
|
||||||
halbtc8821a1ant_sw_mechanism(btcoexist, false);
|
halbtc8821a1ant_sw_mechanism(btcoexist, false);
|
||||||
|
|
||||||
@ -1277,7 +1265,7 @@ static bool halbtc8821a1ant_is_common_action(struct btc_coexist *btcoexist)
|
|||||||
} else if (wifi_connected &&
|
} else if (wifi_connected &&
|
||||||
(BT_8821A_1ANT_BT_STATUS_CONNECTED_IDLE ==
|
(BT_8821A_1ANT_BT_STATUS_CONNECTED_IDLE ==
|
||||||
coex_dm->bt_status)) {
|
coex_dm->bt_status)) {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Wifi connected + BT connected-idle!!\n");
|
"[BTCoex], Wifi connected + BT connected-idle!!\n");
|
||||||
halbtc8821a1ant_sw_mechanism(btcoexist, false);
|
halbtc8821a1ant_sw_mechanism(btcoexist, false);
|
||||||
|
|
||||||
@ -1285,17 +1273,17 @@ static bool halbtc8821a1ant_is_common_action(struct btc_coexist *btcoexist)
|
|||||||
} else if (!wifi_connected &&
|
} else if (!wifi_connected &&
|
||||||
(BT_8821A_1ANT_BT_STATUS_CONNECTED_IDLE !=
|
(BT_8821A_1ANT_BT_STATUS_CONNECTED_IDLE !=
|
||||||
coex_dm->bt_status)) {
|
coex_dm->bt_status)) {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Wifi non connected-idle + BT Busy!!\n");
|
"[BTCoex], Wifi non connected-idle + BT Busy!!\n");
|
||||||
halbtc8821a1ant_sw_mechanism(btcoexist, false);
|
halbtc8821a1ant_sw_mechanism(btcoexist, false);
|
||||||
|
|
||||||
common = true;
|
common = true;
|
||||||
} else {
|
} else {
|
||||||
if (wifi_busy) {
|
if (wifi_busy) {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Wifi Connected-Busy + BT Busy!!\n");
|
"[BTCoex], Wifi Connected-Busy + BT Busy!!\n");
|
||||||
} else {
|
} else {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Wifi Connected-Idle + BT Busy!!\n");
|
"[BTCoex], Wifi Connected-Idle + BT Busy!!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1313,7 +1301,7 @@ static void btc8821a1ant_tdma_dur_adj(struct btc_coexist *btcoexist,
|
|||||||
long result;
|
long result;
|
||||||
u8 retry_count = 0, bt_info_ext;
|
u8 retry_count = 0, bt_info_ext;
|
||||||
|
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW,
|
btc_alg_dbg(ALGO_TRACE_FW,
|
||||||
"[BTCoex], TdmaDurationAdjustForAcl()\n");
|
"[BTCoex], TdmaDurationAdjustForAcl()\n");
|
||||||
|
|
||||||
if ((BT_8821A_1ANT_WIFI_STATUS_NON_CONNECTED_ASSO_AUTH_SCAN ==
|
if ((BT_8821A_1ANT_WIFI_STATUS_NON_CONNECTED_ASSO_AUTH_SCAN ==
|
||||||
@ -1342,7 +1330,7 @@ static void btc8821a1ant_tdma_dur_adj(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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
"[BTCoex], first run TdmaDurationAdjust()!!\n");
|
"[BTCoex], first run TdmaDurationAdjust()!!\n");
|
||||||
|
|
||||||
halbtc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 2);
|
halbtc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 2);
|
||||||
@ -1378,8 +1366,7 @@ static void btc8821a1ant_tdma_dur_adj(struct btc_coexist *btcoexist,
|
|||||||
up = 0;
|
up = 0;
|
||||||
dn = 0;
|
dn = 0;
|
||||||
result = 1;
|
result = 1;
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
ALGO_TRACE_FW_DETAIL,
|
|
||||||
"[BTCoex], Increase wifi duration!!\n");
|
"[BTCoex], Increase wifi duration!!\n");
|
||||||
}
|
}
|
||||||
} else if (retry_count <= 3) {
|
} else if (retry_count <= 3) {
|
||||||
@ -1410,8 +1397,7 @@ static void btc8821a1ant_tdma_dur_adj(struct btc_coexist *btcoexist,
|
|||||||
dn = 0;
|
dn = 0;
|
||||||
wait_count = 0;
|
wait_count = 0;
|
||||||
result = -1;
|
result = -1;
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
ALGO_TRACE_FW_DETAIL,
|
|
||||||
"[BTCoex], Decrease wifi duration for retryCounter<3!!\n");
|
"[BTCoex], Decrease wifi duration for retryCounter<3!!\n");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -1433,7 +1419,7 @@ static void btc8821a1ant_tdma_dur_adj(struct btc_coexist *btcoexist,
|
|||||||
dn = 0;
|
dn = 0;
|
||||||
wait_count = 0;
|
wait_count = 0;
|
||||||
result = -1;
|
result = -1;
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
"[BTCoex], Decrease wifi duration for retryCounter>3!!\n");
|
"[BTCoex], Decrease wifi duration for retryCounter>3!!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1479,7 +1465,7 @@ static void btc8821a1ant_tdma_dur_adj(struct btc_coexist *btcoexist,
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/*no change*/
|
/*no change*/
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL,
|
btc_alg_dbg(ALGO_TRACE_FW_DETAIL,
|
||||||
"[BTCoex], ********** TDMA(on, %d) **********\n",
|
"[BTCoex], ********** TDMA(on, %d) **********\n",
|
||||||
coex_dm->cur_ps_tdma);
|
coex_dm->cur_ps_tdma);
|
||||||
}
|
}
|
||||||
@ -1603,24 +1589,24 @@ static void btc8821a1ant_mon_bt_en_dis(struct btc_coexist *btcoexist)
|
|||||||
bt_disabled = false;
|
bt_disabled = false;
|
||||||
btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_DISABLE,
|
btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_DISABLE,
|
||||||
&bt_disabled);
|
&bt_disabled);
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR,
|
btc_alg_dbg(ALGO_BT_MONITOR,
|
||||||
"[BTCoex], BT is enabled !!\n");
|
"[BTCoex], BT is enabled !!\n");
|
||||||
} else {
|
} else {
|
||||||
bt_disable_cnt++;
|
bt_disable_cnt++;
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR,
|
btc_alg_dbg(ALGO_BT_MONITOR,
|
||||||
"[BTCoex], bt all counters = 0, %d times!!\n",
|
"[BTCoex], bt all counters = 0, %d times!!\n",
|
||||||
bt_disable_cnt);
|
bt_disable_cnt);
|
||||||
if (bt_disable_cnt >= 2) {
|
if (bt_disable_cnt >= 2) {
|
||||||
bt_disabled = true;
|
bt_disabled = true;
|
||||||
btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_DISABLE,
|
btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_DISABLE,
|
||||||
&bt_disabled);
|
&bt_disabled);
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR,
|
btc_alg_dbg(ALGO_BT_MONITOR,
|
||||||
"[BTCoex], BT is disabled !!\n");
|
"[BTCoex], BT is disabled !!\n");
|
||||||
halbtc8821a1ant_action_wifi_only(btcoexist);
|
halbtc8821a1ant_action_wifi_only(btcoexist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (pre_bt_disabled != bt_disabled) {
|
if (pre_bt_disabled != bt_disabled) {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR,
|
btc_alg_dbg(ALGO_BT_MONITOR,
|
||||||
"[BTCoex], BT is from %s to %s!!\n",
|
"[BTCoex], BT is from %s to %s!!\n",
|
||||||
(pre_bt_disabled ? "disabled" : "enabled"),
|
(pre_bt_disabled ? "disabled" : "enabled"),
|
||||||
(bt_disabled ? "disabled" : "enabled"));
|
(bt_disabled ? "disabled" : "enabled"));
|
||||||
@ -1897,14 +1883,14 @@ static void halbtc8821a1ant_action_wifi_connected(struct btc_coexist *btcoexist)
|
|||||||
bool scan = false, link = false, roam = false;
|
bool scan = false, link = false, roam = false;
|
||||||
bool under_4way = false;
|
bool under_4way = false;
|
||||||
|
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], CoexForWifiConnect()===>\n");
|
"[BTCoex], CoexForWifiConnect()===>\n");
|
||||||
|
|
||||||
btcoexist->btc_get(btcoexist,
|
btcoexist->btc_get(btcoexist,
|
||||||
BTC_GET_BL_WIFI_4_WAY_PROGRESS, &under_4way);
|
BTC_GET_BL_WIFI_4_WAY_PROGRESS, &under_4way);
|
||||||
if (under_4way) {
|
if (under_4way) {
|
||||||
btc8821a1ant_act_wifi_conn_sp_pkt(btcoexist);
|
btc8821a1ant_act_wifi_conn_sp_pkt(btcoexist);
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], CoexForWifiConnect(), return for wifi is under 4way<===\n");
|
"[BTCoex], CoexForWifiConnect(), return for wifi is under 4way<===\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1914,7 +1900,7 @@ static void halbtc8821a1ant_action_wifi_connected(struct btc_coexist *btcoexist)
|
|||||||
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam);
|
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam);
|
||||||
if (scan || link || roam) {
|
if (scan || link || roam) {
|
||||||
halbtc8821a1ant_action_wifi_connected_scan(btcoexist);
|
halbtc8821a1ant_action_wifi_connected_scan(btcoexist);
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], CoexForWifiConnect(), return for wifi is under scan<===\n");
|
"[BTCoex], CoexForWifiConnect(), return for wifi is under scan<===\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1976,57 +1962,57 @@ static void btc8821a1ant_run_sw_coex_mech(struct btc_coexist *btcoexist)
|
|||||||
if (!halbtc8821a1ant_is_common_action(btcoexist)) {
|
if (!halbtc8821a1ant_is_common_action(btcoexist)) {
|
||||||
switch (coex_dm->cur_algorithm) {
|
switch (coex_dm->cur_algorithm) {
|
||||||
case BT_8821A_1ANT_COEX_ALGO_SCO:
|
case BT_8821A_1ANT_COEX_ALGO_SCO:
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Action algorithm = SCO.\n");
|
"[BTCoex], Action algorithm = SCO\n");
|
||||||
halbtc8821a1ant_action_sco(btcoexist);
|
halbtc8821a1ant_action_sco(btcoexist);
|
||||||
break;
|
break;
|
||||||
case BT_8821A_1ANT_COEX_ALGO_HID:
|
case BT_8821A_1ANT_COEX_ALGO_HID:
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Action algorithm = HID.\n");
|
"[BTCoex], Action algorithm = HID\n");
|
||||||
halbtc8821a1ant_action_hid(btcoexist);
|
halbtc8821a1ant_action_hid(btcoexist);
|
||||||
break;
|
break;
|
||||||
case BT_8821A_1ANT_COEX_ALGO_A2DP:
|
case BT_8821A_1ANT_COEX_ALGO_A2DP:
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Action algorithm = A2DP.\n");
|
"[BTCoex], Action algorithm = A2DP\n");
|
||||||
halbtc8821a1ant_action_a2dp(btcoexist);
|
halbtc8821a1ant_action_a2dp(btcoexist);
|
||||||
break;
|
break;
|
||||||
case BT_8821A_1ANT_COEX_ALGO_A2DP_PANHS:
|
case BT_8821A_1ANT_COEX_ALGO_A2DP_PANHS:
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Action algorithm = A2DP+PAN(HS).\n");
|
"[BTCoex], Action algorithm = A2DP+PAN(HS)\n");
|
||||||
halbtc8821a1ant_action_a2dp_pan_hs(btcoexist);
|
halbtc8821a1ant_action_a2dp_pan_hs(btcoexist);
|
||||||
break;
|
break;
|
||||||
case BT_8821A_1ANT_COEX_ALGO_PANEDR:
|
case BT_8821A_1ANT_COEX_ALGO_PANEDR:
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Action algorithm = PAN(EDR).\n");
|
"[BTCoex], Action algorithm = PAN(EDR)\n");
|
||||||
halbtc8821a1ant_action_pan_edr(btcoexist);
|
halbtc8821a1ant_action_pan_edr(btcoexist);
|
||||||
break;
|
break;
|
||||||
case BT_8821A_1ANT_COEX_ALGO_PANHS:
|
case BT_8821A_1ANT_COEX_ALGO_PANHS:
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Action algorithm = HS mode.\n");
|
"[BTCoex], Action algorithm = HS mode\n");
|
||||||
halbtc8821a1ant_action_pan_hs(btcoexist);
|
halbtc8821a1ant_action_pan_hs(btcoexist);
|
||||||
break;
|
break;
|
||||||
case BT_8821A_1ANT_COEX_ALGO_PANEDR_A2DP:
|
case BT_8821A_1ANT_COEX_ALGO_PANEDR_A2DP:
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Action algorithm = PAN+A2DP.\n");
|
"[BTCoex], Action algorithm = PAN+A2DP\n");
|
||||||
halbtc8821a1ant_action_pan_edr_a2dp(btcoexist);
|
halbtc8821a1ant_action_pan_edr_a2dp(btcoexist);
|
||||||
break;
|
break;
|
||||||
case BT_8821A_1ANT_COEX_ALGO_PANEDR_HID:
|
case BT_8821A_1ANT_COEX_ALGO_PANEDR_HID:
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Action algorithm = PAN(EDR)+HID.\n");
|
"[BTCoex], Action algorithm = PAN(EDR)+HID\n");
|
||||||
halbtc8821a1ant_action_pan_edr_hid(btcoexist);
|
halbtc8821a1ant_action_pan_edr_hid(btcoexist);
|
||||||
break;
|
break;
|
||||||
case BT_8821A_1ANT_COEX_ALGO_HID_A2DP_PANEDR:
|
case BT_8821A_1ANT_COEX_ALGO_HID_A2DP_PANEDR:
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Action algorithm = HID+A2DP+PAN.\n");
|
"[BTCoex], Action algorithm = HID+A2DP+PAN\n");
|
||||||
btc8821a1ant_action_hid_a2dp_pan_edr(btcoexist);
|
btc8821a1ant_action_hid_a2dp_pan_edr(btcoexist);
|
||||||
break;
|
break;
|
||||||
case BT_8821A_1ANT_COEX_ALGO_HID_A2DP:
|
case BT_8821A_1ANT_COEX_ALGO_HID_A2DP:
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Action algorithm = HID+A2DP.\n");
|
"[BTCoex], Action algorithm = HID+A2DP\n");
|
||||||
halbtc8821a1ant_action_hid_a2dp(btcoexist);
|
halbtc8821a1ant_action_hid_a2dp(btcoexist);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], Action algorithm = coexist All Off!!\n");
|
"[BTCoex], Action algorithm = coexist All Off!!\n");
|
||||||
/*halbtc8821a1ant_coex_all_off(btcoexist);*/
|
/*halbtc8821a1ant_coex_all_off(btcoexist);*/
|
||||||
break;
|
break;
|
||||||
@ -2045,30 +2031,30 @@ static void halbtc8821a1ant_run_coexist_mechanism(struct btc_coexist *btcoexist)
|
|||||||
u8 wifi_rssi_state = BTC_RSSI_STATE_HIGH;
|
u8 wifi_rssi_state = BTC_RSSI_STATE_HIGH;
|
||||||
bool wifi_under_5g = false;
|
bool wifi_under_5g = false;
|
||||||
|
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], RunCoexistMechanism()===>\n");
|
"[BTCoex], RunCoexistMechanism()===>\n");
|
||||||
|
|
||||||
if (btcoexist->manual_control) {
|
if (btcoexist->manual_control) {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], wifi is under IPS !!!\n");
|
"[BTCoex], wifi is under IPS !!!\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
|
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
|
||||||
if (wifi_under_5g) {
|
if (wifi_under_5g) {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], RunCoexistMechanism(), return for 5G <===\n");
|
"[BTCoex], RunCoexistMechanism(), return for 5G <===\n");
|
||||||
halbtc8821a1ant_coex_under_5g(btcoexist);
|
halbtc8821a1ant_coex_under_5g(btcoexist);
|
||||||
return;
|
return;
|
||||||
@ -2135,7 +2121,7 @@ static void halbtc8821a1ant_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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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);
|
||||||
@ -2168,7 +2154,7 @@ static void halbtc8821a1ant_init_hw_config(struct btc_coexist *btcoexist,
|
|||||||
u8 u1_tmp = 0;
|
u8 u1_tmp = 0;
|
||||||
bool wifi_under_5g = false;
|
bool wifi_under_5g = false;
|
||||||
|
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT,
|
btc_iface_dbg(INTF_INIT,
|
||||||
"[BTCoex], 1Ant Init HW Config!!\n");
|
"[BTCoex], 1Ant Init HW Config!!\n");
|
||||||
|
|
||||||
if (back_up) {
|
if (back_up) {
|
||||||
@ -2220,7 +2206,7 @@ void ex_halbtc8821a1ant_init_hwconfig(struct btc_coexist *btcoexist)
|
|||||||
|
|
||||||
void ex_halbtc8821a1ant_init_coex_dm(struct btc_coexist *btcoexist)
|
void ex_halbtc8821a1ant_init_coex_dm(struct btc_coexist *btcoexist)
|
||||||
{
|
{
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT,
|
btc_iface_dbg(INTF_INIT,
|
||||||
"[BTCoex], Coex Mechanism Init!!\n");
|
"[BTCoex], Coex Mechanism Init!!\n");
|
||||||
|
|
||||||
btcoexist->stop_coex_dm = false;
|
btcoexist->stop_coex_dm = false;
|
||||||
@ -2515,7 +2501,7 @@ void ex_halbtc8821a1ant_ips_notify(struct btc_coexist *btcoexist, u8 type)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (BTC_IPS_ENTER == type) {
|
if (BTC_IPS_ENTER == type) {
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[BTCoex], IPS ENTER notify\n");
|
"[BTCoex], IPS ENTER notify\n");
|
||||||
coex_sta->under_ips = true;
|
coex_sta->under_ips = true;
|
||||||
halbtc8821a1ant_set_ant_path(btcoexist,
|
halbtc8821a1ant_set_ant_path(btcoexist,
|
||||||
@ -2525,7 +2511,7 @@ void ex_halbtc8821a1ant_ips_notify(struct btc_coexist *btcoexist, u8 type)
|
|||||||
halbtc8821a1ant_coex_table_with_type(btcoexist,
|
halbtc8821a1ant_coex_table_with_type(btcoexist,
|
||||||
NORMAL_EXEC, 0);
|
NORMAL_EXEC, 0);
|
||||||
} else if (BTC_IPS_LEAVE == type) {
|
} else if (BTC_IPS_LEAVE == type) {
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[BTCoex], IPS LEAVE notify\n");
|
"[BTCoex], IPS LEAVE notify\n");
|
||||||
coex_sta->under_ips = false;
|
coex_sta->under_ips = false;
|
||||||
|
|
||||||
@ -2539,11 +2525,11 @@ void ex_halbtc8821a1ant_lps_notify(struct btc_coexist *btcoexist, u8 type)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (BTC_LPS_ENABLE == type) {
|
if (BTC_LPS_ENABLE == type) {
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[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_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[BTCoex], LPS DISABLE notify\n");
|
"[BTCoex], LPS DISABLE notify\n");
|
||||||
coex_sta->under_Lps = false;
|
coex_sta->under_Lps = false;
|
||||||
}
|
}
|
||||||
@ -2574,7 +2560,7 @@ void ex_halbtc8821a1ant_scan_notify(struct btc_coexist *btcoexist, u8 type)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (BTC_SCAN_START == type) {
|
if (BTC_SCAN_START == type) {
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[BTCoex], SCAN START notify\n");
|
"[BTCoex], SCAN START notify\n");
|
||||||
if (!wifi_connected) {
|
if (!wifi_connected) {
|
||||||
/* non-connected scan*/
|
/* non-connected scan*/
|
||||||
@ -2584,7 +2570,7 @@ void ex_halbtc8821a1ant_scan_notify(struct btc_coexist *btcoexist, u8 type)
|
|||||||
halbtc8821a1ant_action_wifi_connected_scan(btcoexist);
|
halbtc8821a1ant_action_wifi_connected_scan(btcoexist);
|
||||||
}
|
}
|
||||||
} else if (BTC_SCAN_FINISH == type) {
|
} else if (BTC_SCAN_FINISH == type) {
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[BTCoex], SCAN FINISH notify\n");
|
"[BTCoex], SCAN FINISH notify\n");
|
||||||
if (!wifi_connected) {
|
if (!wifi_connected) {
|
||||||
/* non-connected scan*/
|
/* non-connected scan*/
|
||||||
@ -2614,11 +2600,11 @@ void ex_halbtc8821a1ant_connect_notify(struct btc_coexist *btcoexist, u8 type)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (BTC_ASSOCIATE_START == type) {
|
if (BTC_ASSOCIATE_START == type) {
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[BTCoex], CONNECT START notify\n");
|
"[BTCoex], CONNECT START notify\n");
|
||||||
btc8821a1ant_act_wifi_not_conn_scan(btcoexist);
|
btc8821a1ant_act_wifi_not_conn_scan(btcoexist);
|
||||||
} else if (BTC_ASSOCIATE_FINISH == type) {
|
} else if (BTC_ASSOCIATE_FINISH == type) {
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[BTCoex], CONNECT FINISH notify\n");
|
"[BTCoex], CONNECT FINISH notify\n");
|
||||||
|
|
||||||
btcoexist->btc_get(btcoexist,
|
btcoexist->btc_get(btcoexist,
|
||||||
@ -2645,10 +2631,10 @@ void ex_halbtc8821a1ant_media_status_notify(struct btc_coexist *btcoexist,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (BTC_MEDIA_CONNECT == type) {
|
if (BTC_MEDIA_CONNECT == type) {
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[BTCoex], MEDIA connect notify\n");
|
"[BTCoex], MEDIA connect notify\n");
|
||||||
} else {
|
} else {
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[BTCoex], MEDIA disconnect notify\n");
|
"[BTCoex], MEDIA disconnect notify\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2672,9 +2658,11 @@ void ex_halbtc8821a1ant_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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC,
|
btc_alg_dbg(ALGO_TRACE_FW_EXEC,
|
||||||
"[BTCoex], FW write 0x66 = 0x%x\n",
|
"[BTCoex], FW write 0x66 = 0x%x\n",
|
||||||
h2c_parameter[0]<<16|h2c_parameter[1]<<8|h2c_parameter[2]);
|
h2c_parameter[0] << 16 |
|
||||||
|
h2c_parameter[1] << 8 |
|
||||||
|
h2c_parameter[2]);
|
||||||
|
|
||||||
btcoexist->btc_fill_h2c(btcoexist, 0x66, 3, h2c_parameter);
|
btcoexist->btc_fill_h2c(btcoexist, 0x66, 3, h2c_parameter);
|
||||||
}
|
}
|
||||||
@ -2702,7 +2690,7 @@ void ex_halbtc8821a1ant_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_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[BTCoex], special Packet(%d) notify\n", type);
|
"[BTCoex], special Packet(%d) notify\n", type);
|
||||||
btc8821a1ant_act_wifi_conn_sp_pkt(btcoexist);
|
btc8821a1ant_act_wifi_conn_sp_pkt(btcoexist);
|
||||||
}
|
}
|
||||||
@ -2727,7 +2715,7 @@ void ex_halbtc8821a1ant_bt_info_notify(struct btc_coexist *btcoexist,
|
|||||||
rsp_source = BT_INFO_SRC_8821A_1ANT_WIFI_FW;
|
rsp_source = BT_INFO_SRC_8821A_1ANT_WIFI_FW;
|
||||||
coex_sta->bt_info_c2h_cnt[rsp_source]++;
|
coex_sta->bt_info_c2h_cnt[rsp_source]++;
|
||||||
|
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[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++) {
|
||||||
@ -2735,10 +2723,10 @@ void ex_halbtc8821a1ant_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_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"0x%02x]\n", tmp_buf[i]);
|
"0x%02x]\n", tmp_buf[i]);
|
||||||
} else {
|
} else {
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"0x%02x, ", tmp_buf[i]);
|
"0x%02x, ", tmp_buf[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2756,7 +2744,7 @@ void ex_halbtc8821a1ant_bt_info_notify(struct btc_coexist *btcoexist,
|
|||||||
/* Here we need to resend some wifi info to BT*/
|
/* Here we need to resend some wifi info to BT*/
|
||||||
/* 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_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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,
|
btcoexist->btc_get(btcoexist,
|
||||||
BTC_GET_BL_WIFI_CONNECTED,
|
BTC_GET_BL_WIFI_CONNECTED,
|
||||||
@ -2773,7 +2761,7 @@ void ex_halbtc8821a1ant_bt_info_notify(struct btc_coexist *btcoexist,
|
|||||||
if ((coex_sta->bt_info_ext & BIT3) && !wifi_under_5g) {
|
if ((coex_sta->bt_info_ext & BIT3) && !wifi_under_5g) {
|
||||||
if (!btcoexist->manual_control &&
|
if (!btcoexist->manual_control &&
|
||||||
!btcoexist->stop_coex_dm) {
|
!btcoexist->stop_coex_dm) {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT ext info bit3 check, set BT NOT to ignore Wlan active!!\n");
|
"[BTCoex], BT ext info bit3 check, set BT NOT to ignore Wlan active!!\n");
|
||||||
halbtc8821a1ant_ignore_wlan_act(btcoexist,
|
halbtc8821a1ant_ignore_wlan_act(btcoexist,
|
||||||
FORCE_EXEC,
|
FORCE_EXEC,
|
||||||
@ -2782,7 +2770,7 @@ void ex_halbtc8821a1ant_bt_info_notify(struct btc_coexist *btcoexist,
|
|||||||
}
|
}
|
||||||
#if (BT_AUTO_REPORT_ONLY_8821A_1ANT == 0)
|
#if (BT_AUTO_REPORT_ONLY_8821A_1ANT == 0)
|
||||||
if (!(coex_sta->bt_info_ext & BIT4)) {
|
if (!(coex_sta->bt_info_ext & BIT4)) {
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BT ext info bit4 check, set BT to enable Auto Report!!\n");
|
"[BTCoex], BT ext info bit4 check, set BT to enable Auto Report!!\n");
|
||||||
halbtc8821a1ant_bt_auto_report(btcoexist,
|
halbtc8821a1ant_bt_auto_report(btcoexist,
|
||||||
FORCE_EXEC, true);
|
FORCE_EXEC, true);
|
||||||
@ -2828,27 +2816,27 @@ void ex_halbtc8821a1ant_bt_info_notify(struct btc_coexist *btcoexist,
|
|||||||
|
|
||||||
if (!(bt_info&BT_INFO_8821A_1ANT_B_CONNECTION)) {
|
if (!(bt_info&BT_INFO_8821A_1ANT_B_CONNECTION)) {
|
||||||
coex_dm->bt_status = BT_8821A_1ANT_BT_STATUS_NON_CONNECTED_IDLE;
|
coex_dm->bt_status = BT_8821A_1ANT_BT_STATUS_NON_CONNECTED_IDLE;
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BtInfoNotify(), BT Non-Connected idle!!!\n");
|
"[BTCoex], BtInfoNotify(), BT Non-Connected idle!!!\n");
|
||||||
} else if (bt_info == BT_INFO_8821A_1ANT_B_CONNECTION) {
|
} else if (bt_info == BT_INFO_8821A_1ANT_B_CONNECTION) {
|
||||||
/* connection exists but no busy*/
|
/* connection exists but no busy*/
|
||||||
coex_dm->bt_status = BT_8821A_1ANT_BT_STATUS_CONNECTED_IDLE;
|
coex_dm->bt_status = BT_8821A_1ANT_BT_STATUS_CONNECTED_IDLE;
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BtInfoNotify(), BT Connected-idle!!!\n");
|
"[BTCoex], BtInfoNotify(), BT Connected-idle!!!\n");
|
||||||
} else if ((bt_info&BT_INFO_8821A_1ANT_B_SCO_ESCO) ||
|
} else if ((bt_info&BT_INFO_8821A_1ANT_B_SCO_ESCO) ||
|
||||||
(bt_info&BT_INFO_8821A_1ANT_B_SCO_BUSY)) {
|
(bt_info&BT_INFO_8821A_1ANT_B_SCO_BUSY)) {
|
||||||
coex_dm->bt_status = BT_8821A_1ANT_BT_STATUS_SCO_BUSY;
|
coex_dm->bt_status = BT_8821A_1ANT_BT_STATUS_SCO_BUSY;
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BtInfoNotify(), BT SCO busy!!!\n");
|
"[BTCoex], BtInfoNotify(), BT SCO busy!!!\n");
|
||||||
} else if (bt_info&BT_INFO_8821A_1ANT_B_ACL_BUSY) {
|
} else if (bt_info&BT_INFO_8821A_1ANT_B_ACL_BUSY) {
|
||||||
if (BT_8821A_1ANT_BT_STATUS_ACL_BUSY != coex_dm->bt_status)
|
if (BT_8821A_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_8821A_1ANT_BT_STATUS_ACL_BUSY;
|
coex_dm->bt_status = BT_8821A_1ANT_BT_STATUS_ACL_BUSY;
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BtInfoNotify(), BT ACL busy!!!\n");
|
"[BTCoex], BtInfoNotify(), BT ACL busy!!!\n");
|
||||||
} else {
|
} else {
|
||||||
coex_dm->bt_status = BT_8821A_1ANT_BT_STATUS_MAX;
|
coex_dm->bt_status = BT_8821A_1ANT_BT_STATUS_MAX;
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[BTCoex], BtInfoNotify(), BT Non-Defined state!!!\n");
|
"[BTCoex], BtInfoNotify(), BT Non-Defined state!!!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2866,7 +2854,7 @@ void ex_halbtc8821a1ant_bt_info_notify(struct btc_coexist *btcoexist,
|
|||||||
|
|
||||||
void ex_halbtc8821a1ant_halt_notify(struct btc_coexist *btcoexist)
|
void ex_halbtc8821a1ant_halt_notify(struct btc_coexist *btcoexist)
|
||||||
{
|
{
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[BTCoex], Halt notify\n");
|
"[BTCoex], Halt notify\n");
|
||||||
|
|
||||||
btcoexist->stop_coex_dm = true;
|
btcoexist->stop_coex_dm = true;
|
||||||
@ -2885,11 +2873,11 @@ void ex_halbtc8821a1ant_halt_notify(struct btc_coexist *btcoexist)
|
|||||||
|
|
||||||
void ex_halbtc8821a1ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state)
|
void ex_halbtc8821a1ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state)
|
||||||
{
|
{
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[BTCoex], Pnp notify\n");
|
"[BTCoex], Pnp notify\n");
|
||||||
|
|
||||||
if (BTC_WIFI_PNP_SLEEP == pnp_state) {
|
if (BTC_WIFI_PNP_SLEEP == pnp_state) {
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[BTCoex], Pnp notify to SLEEP\n");
|
"[BTCoex], Pnp notify to SLEEP\n");
|
||||||
btcoexist->stop_coex_dm = true;
|
btcoexist->stop_coex_dm = true;
|
||||||
halbtc8821a1ant_ignore_wlan_act(btcoexist, FORCE_EXEC, true);
|
halbtc8821a1ant_ignore_wlan_act(btcoexist, FORCE_EXEC, true);
|
||||||
@ -2897,7 +2885,7 @@ void ex_halbtc8821a1ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state)
|
|||||||
0x0, 0x0);
|
0x0, 0x0);
|
||||||
halbtc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 9);
|
halbtc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 9);
|
||||||
} else if (BTC_WIFI_PNP_WAKE_UP == pnp_state) {
|
} else if (BTC_WIFI_PNP_WAKE_UP == pnp_state) {
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY,
|
btc_iface_dbg(INTF_NOTIFY,
|
||||||
"[BTCoex], Pnp notify to WAKE UP\n");
|
"[BTCoex], Pnp notify to WAKE UP\n");
|
||||||
btcoexist->stop_coex_dm = false;
|
btcoexist->stop_coex_dm = false;
|
||||||
halbtc8821a1ant_init_hw_config(btcoexist, false);
|
halbtc8821a1ant_init_hw_config(btcoexist, false);
|
||||||
@ -2914,32 +2902,32 @@ ex_halbtc8821a1ant_periodical(
|
|||||||
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;
|
||||||
|
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"[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_PRINT(BTC_MSG_INTERFACE, INTF_INIT,
|
btc_iface_dbg(INTF_INIT,
|
||||||
"[BTCoex], ****************************************************************\n");
|
"[BTCoex], ****************************************************************\n");
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT,
|
btc_iface_dbg(INTF_INIT,
|
||||||
"[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->pg_ant_num,
|
||||||
board_info->btdm_ant_num,
|
board_info->btdm_ant_num,
|
||||||
board_info->btdm_ant_pos);
|
board_info->btdm_ant_pos);
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT,
|
btc_iface_dbg(INTF_INIT,
|
||||||
"[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_PRINT(BTC_MSG_INTERFACE, INTF_INIT,
|
btc_iface_dbg(INTF_INIT,
|
||||||
"[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_8821a_1ant,
|
glcoex_ver_date_8821a_1ant,
|
||||||
glcoex_ver_8821a_1ant,
|
glcoex_ver_8821a_1ant,
|
||||||
fw_ver, bt_patch_ver,
|
fw_ver, bt_patch_ver,
|
||||||
bt_patch_ver);
|
bt_patch_ver);
|
||||||
BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT,
|
btc_iface_dbg(INTF_INIT,
|
||||||
"[BTCoex], ****************************************************************\n");
|
"[BTCoex], ****************************************************************\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -141,7 +141,7 @@ static u8 halbtc_get_wifi_central_chnl(struct btc_coexist *btcoexist)
|
|||||||
|
|
||||||
if (rtlphy->current_channel != 0)
|
if (rtlphy->current_channel != 0)
|
||||||
chnl = rtlphy->current_channel;
|
chnl = rtlphy->current_channel;
|
||||||
BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE,
|
btc_alg_dbg(ALGO_TRACE,
|
||||||
"static halbtc_get_wifi_central_chnl:%d\n", chnl);
|
"static halbtc_get_wifi_central_chnl:%d\n", chnl);
|
||||||
return chnl;
|
return chnl;
|
||||||
}
|
}
|
||||||
|
@ -116,12 +116,17 @@ extern u32 btc_dbg_type[];
|
|||||||
#define WIFI_P2P_GO_CONNECTED BIT3
|
#define WIFI_P2P_GO_CONNECTED BIT3
|
||||||
#define WIFI_P2P_GC_CONNECTED BIT4
|
#define WIFI_P2P_GC_CONNECTED BIT4
|
||||||
|
|
||||||
#define BTC_PRINT(dbgtype, dbgflag, printstr, ...) \
|
#define btc_alg_dbg(dbgflag, fmt, ...) \
|
||||||
do { \
|
do { \
|
||||||
if (unlikely(btc_dbg_type[dbgtype] & dbgflag)) {\
|
if (unlikely(btc_dbg_type[BTC_MSG_ALGORITHM] & dbgflag)) \
|
||||||
printk(printstr, ##__VA_ARGS__); \
|
printk(KERN_DEBUG fmt, ##__VA_ARGS__); \
|
||||||
} \
|
} while (0)
|
||||||
} while (0)
|
#define btc_iface_dbg(dbgflag, fmt, ...) \
|
||||||
|
do { \
|
||||||
|
if (unlikely(btc_dbg_type[BTC_MSG_INTERFACE] & dbgflag)) \
|
||||||
|
printk(KERN_DEBUG fmt, ##__VA_ARGS__); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
#define BTC_RSSI_HIGH(_rssi_) \
|
#define BTC_RSSI_HIGH(_rssi_) \
|
||||||
((_rssi_ == BTC_RSSI_STATE_HIGH || \
|
((_rssi_ == BTC_RSSI_STATE_HIGH || \
|
||||||
|
Loading…
Reference in New Issue
Block a user