rtlwifi: btcoex: 21a 2ant: update bt profiling information
This function updates the information of bt profiling to help us decide the network status and dispatch the resource properly. Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Cc: Pkshih <pkshih@realtek.com> Cc: Birming Chiu <birming@realtek.com> Cc: Shaofu <shaofu@realtek.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
eebc58782e
commit
4b1f6eaac3
|
@ -359,6 +359,54 @@ static void btc8821a2ant_query_bt_info(struct btc_coexist *btcoexist)
|
|||
btcoexist->btc_fill_h2c(btcoexist, 0x61, 1, h2c_parameter);
|
||||
}
|
||||
|
||||
static void btc8821a2ant_update_bt_link_info(struct btc_coexist *btcoexist)
|
||||
{
|
||||
struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
|
||||
bool bt_hs_on = false;
|
||||
|
||||
btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
|
||||
|
||||
bt_link_info->bt_link_exist = coex_sta->bt_link_exist;
|
||||
bt_link_info->sco_exist = coex_sta->sco_exist;
|
||||
bt_link_info->a2dp_exist = coex_sta->a2dp_exist;
|
||||
bt_link_info->pan_exist = coex_sta->pan_exist;
|
||||
bt_link_info->hid_exist = coex_sta->hid_exist;
|
||||
|
||||
/* work around for HS mode. */
|
||||
if (bt_hs_on) {
|
||||
bt_link_info->pan_exist = true;
|
||||
bt_link_info->bt_link_exist = true;
|
||||
}
|
||||
|
||||
/* check if Sco only */
|
||||
if (bt_link_info->sco_exist && !bt_link_info->a2dp_exist &&
|
||||
!bt_link_info->pan_exist && !bt_link_info->hid_exist)
|
||||
bt_link_info->sco_only = true;
|
||||
else
|
||||
bt_link_info->sco_only = false;
|
||||
|
||||
/* check if A2dp only */
|
||||
if (!bt_link_info->sco_exist && bt_link_info->a2dp_exist &&
|
||||
!bt_link_info->pan_exist && !bt_link_info->hid_exist)
|
||||
bt_link_info->a2dp_only = true;
|
||||
else
|
||||
bt_link_info->a2dp_only = false;
|
||||
|
||||
/* check if Pan only */
|
||||
if (!bt_link_info->sco_exist && !bt_link_info->a2dp_exist &&
|
||||
bt_link_info->pan_exist && !bt_link_info->hid_exist)
|
||||
bt_link_info->pan_only = true;
|
||||
else
|
||||
bt_link_info->pan_only = false;
|
||||
|
||||
/* check if Hid only */
|
||||
if (!bt_link_info->sco_exist && !bt_link_info->a2dp_exist &&
|
||||
!bt_link_info->pan_exist && bt_link_info->hid_exist)
|
||||
bt_link_info->hid_only = true;
|
||||
else
|
||||
bt_link_info->hid_only = false;
|
||||
}
|
||||
|
||||
static u8 btc8821a2ant_action_algorithm(struct btc_coexist *btcoexist)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = btcoexist->adapter;
|
||||
|
@ -2856,8 +2904,7 @@ void ex_btc8821a2ant_bt_info_notify(struct btc_coexist *btcoexist,
|
|||
coex_dm->bt_status = BT_8821A_2ANT_BT_STATUS_IDLE;
|
||||
}
|
||||
|
||||
if (bt_hs_on)
|
||||
coex_dm->bt_status = BT_8821A_2ANT_BT_STATUS_NON_IDLE;
|
||||
btc8821a2ant_update_bt_link_info(btcoexist);
|
||||
}
|
||||
|
||||
if (BT_8821A_2ANT_BT_STATUS_NON_IDLE == coex_dm->bt_status)
|
||||
|
|
Loading…
Reference in New Issue