bt_info
h2c.bt_info.cmd = H2C_8723B_BT_INFO;
h2c.bt_info.data = BIT(0);
rtl8xxxu_gen2_h2c_cmd(priv, &h2c, sizeof(h2c.bt_info));
void rtl8723bu_update_bt_link_info(struct rtl8xxxu_priv *priv, u8 bt_info)
if (bt_info & BT_INFO_8723B_1ANT_B_INQ_PAGE)
if (!(bt_info & BT_INFO_8723B_1ANT_B_CONNECTION)) {
if ((bt_info & 0x1f) == BT_INFO_8723B_1ANT_B_CONNECTION)
else if ((bt_info & BT_INFO_8723B_1ANT_B_SCO_ESCO) ||
(bt_info & BT_INFO_8723B_1ANT_B_SCO_BUSY))
else if (bt_info & BT_INFO_8723B_1ANT_B_ACL_BUSY)
if (bt_info & BT_INFO_8723B_1ANT_B_FTP)
if (bt_info & BT_INFO_8723B_1ANT_B_A2DP)
if (bt_info & BT_INFO_8723B_1ANT_B_HID)
if (bt_info & BT_INFO_8723B_1ANT_B_SCO_ESCO)
u8 bt_info = 0;
bt_info = c2h->bt_info.bt_info;
rtl8723bu_update_bt_link_info(priv, bt_info);
c2h->id, c2h->seq, len, c2h->bt_info.response_source);
if (c2h->bt_info.response_source >
if (c2h->bt_info.bt_has_reset)
if (c2h->bt_info.tx_rx_mask)
} __packed bt_info;
u8 bt_info;
} __packed bt_info;
((btcoexist->bt_info.bt_disabled) ? ("disabled") :
btcoexist->bt_info.ra_mask);
btcoexist->bt_info.bt_disabled)
u8 bt_info = 0;
bt_info = tmp_buf[i];
if (bt_info & BT_INFO_8192E_2ANT_B_INQ_PAGE)
if (!(bt_info&BT_INFO_8192E_2ANT_B_CONNECTION)) {
if (bt_info & BT_INFO_8192E_2ANT_B_FTP)
if (bt_info & BT_INFO_8192E_2ANT_B_A2DP)
if (bt_info & BT_INFO_8192E_2ANT_B_HID)
if (bt_info & BT_INFO_8192E_2ANT_B_SCO_ESCO)
if (!(bt_info & BT_INFO_8192E_2ANT_B_CONNECTION)) {
} else if (bt_info == BT_INFO_8192E_2ANT_B_CONNECTION) {
} else if ((bt_info & BT_INFO_8192E_2ANT_B_SCO_ESCO) ||
(bt_info & BT_INFO_8192E_2ANT_B_SCO_BUSY)) {
} else if (bt_info & BT_INFO_8192E_2ANT_B_ACL_BUSY) {
btcoexist->bt_info.lps_val,
btcoexist->bt_info.rpwm_val);
(btcoexist->bt_info.reject_agg_pkt ? "Yes" : "No"),
(btcoexist->bt_info.bt_ctrl_buf_size ? "Yes" : "No"),
btcoexist->bt_info.agg_buf_size);
"Rate Mask", btcoexist->bt_info.ra_mask);
u8 bt_info = 0;
bt_info = tmp_buf[i];
if (bt_info == 0xff)
if (bt_info & BT_INFO_8723B_1ANT_B_INQ_PAGE)
if (!(bt_info & BT_INFO_8723B_1ANT_B_CONNECTION)) {
if (bt_info & BT_INFO_8723B_1ANT_B_FTP) {
if (bt_info & BT_INFO_8723B_1ANT_B_A2DP) {
if (bt_info & BT_INFO_8723B_1ANT_B_HID) {
if (bt_info & BT_INFO_8723B_1ANT_B_SCO_ESCO) {
bt_info = bt_info | 0x28;
if ((bt_info & BT_INFO_8723B_1ANT_B_ACL_BUSY) &&
bt_info = bt_info | 0x88;
bt_info = bt_info & 0x1f;
if (!(bt_info & BT_INFO_8723B_1ANT_B_CONNECTION)) {
} else if (bt_info == BT_INFO_8723B_1ANT_B_CONNECTION) {
} else if ((bt_info & BT_INFO_8723B_1ANT_B_SCO_ESCO) ||
(bt_info & BT_INFO_8723B_1ANT_B_SCO_BUSY)) {
} else if (bt_info & BT_INFO_8723B_1ANT_B_ACL_BUSY) {
u8 bt_info = 0;
bt_info = tmpbuf[i];
if (bt_info & BT_INFO_8723B_2ANT_B_INQ_PAGE)
if (!(bt_info & BT_INFO_8723B_2ANT_B_CONNECTION)) {
if (bt_info & BT_INFO_8723B_2ANT_B_FTP)
if (bt_info & BT_INFO_8723B_2ANT_B_A2DP)
if (bt_info & BT_INFO_8723B_2ANT_B_HID)
if (bt_info & BT_INFO_8723B_2ANT_B_SCO_ESCO)
bt_info = bt_info | 0x28;
if (!(bt_info & BT_INFO_8723B_2ANT_B_CONNECTION)) {
} else if (bt_info == BT_INFO_8723B_2ANT_B_CONNECTION) {
} else if ((bt_info & BT_INFO_8723B_2ANT_B_SCO_ESCO) ||
(bt_info & BT_INFO_8723B_2ANT_B_SCO_BUSY)) {
} else if (bt_info&BT_INFO_8723B_2ANT_B_ACL_BUSY) {
btcoexist->bt_info.lps_val,
btcoexist->bt_info.rpwm_val);
(btcoexist->bt_info.reject_agg_pkt ? "Yes" : "No"),
(btcoexist->bt_info.bt_ctrl_buf_size ? "Yes" : "No"),
btcoexist->bt_info.agg_buf_size);
btcoexist->bt_info.ra_mask);
u8 bt_info = 0;
bt_info = tmp_buf[i];
if (bt_info & BT_INFO_8821A_1ANT_B_INQ_PAGE)
if (!(bt_info & BT_INFO_8821A_1ANT_B_CONNECTION)) {
if (bt_info & BT_INFO_8821A_1ANT_B_FTP)
if (bt_info & BT_INFO_8821A_1ANT_B_A2DP)
if (bt_info & BT_INFO_8821A_1ANT_B_HID)
if (bt_info & BT_INFO_8821A_1ANT_B_SCO_ESCO)
bt_info = bt_info & 0x1f;
if (!(bt_info & BT_INFO_8821A_1ANT_B_CONNECTION)) {
} else if (bt_info == BT_INFO_8821A_1ANT_B_CONNECTION) {
} else if ((bt_info&BT_INFO_8821A_1ANT_B_SCO_ESCO) ||
(bt_info & BT_INFO_8821A_1ANT_B_SCO_BUSY)) {
} else if (bt_info & BT_INFO_8821A_1ANT_B_ACL_BUSY) {
u8 bt_info = 0;
bt_info = tmp_buf[i];
if (bt_info & BT_INFO_8821A_2ANT_B_INQ_PAGE) {
if (!(bt_info & BT_INFO_8821A_2ANT_B_CONNECTION)) {
if (bt_info & BT_INFO_8821A_2ANT_B_FTP)
if (bt_info & BT_INFO_8821A_2ANT_B_A2DP)
if (bt_info & BT_INFO_8821A_2ANT_B_HID)
if (bt_info & BT_INFO_8821A_2ANT_B_SCO_ESCO)
if (!(bt_info & BT_INFO_8821A_2ANT_B_CONNECTION)) {
} else if (bt_info == BT_INFO_8821A_2ANT_B_CONNECTION) {
} else if ((bt_info & BT_INFO_8821A_2ANT_B_SCO_ESCO) ||
(bt_info & BT_INFO_8821A_2ANT_B_SCO_BUSY)) {
} else if (bt_info & BT_INFO_8821A_2ANT_B_ACL_BUSY) {
return btcoexist->bt_info.bt_ant_det_val;
return btcoexist->bt_info.bt_ble_scan_type;
return btcoexist->bt_info.bt_ble_scan_para;
*afh_map_l = btcoexist->bt_info.afh_map_l;
*afh_map_m = btcoexist->bt_info.afh_map_m;
*afh_map_h = btcoexist->bt_info.afh_map_h;
btcoexist->bt_info.bt_ctrl_buf_size = false;
btcoexist->bt_info.agg_buf_size = 5;
btcoexist->bt_info.increase_scan_dev_num = false;
btcoexist->bt_info.bt_ctrl_agg_buf_size = false;
btcoexist->bt_info.agg_buf_size = 5;
btcoexist->bt_info.increase_scan_dev_num = false;
btcoexist->bt_info.miracast_plus_bt = false;
btcoexist->bt_info.bt_ctrl_lps = true;
btcoexist->bt_info.bt_lps_on = false;
btcoexist->bt_info.bt_ctrl_lps = true;
btcoexist->bt_info.bt_lps_on = true;
if (btcoexist->bt_info.bt_ctrl_lps) {
btcoexist->bt_info.bt_lps_on = false;
btcoexist->bt_info.bt_ctrl_lps = false;
if (btcoexist->bt_info.bt_ctrl_lps) {
btcoexist->bt_info.bt_lps_on = false;
if (btcoexist->bt_info.bt_ctrl_lps)
btcoexist->bt_info.bt_ctrl_lps = false;
btcoexist->bt_info.bt_disable_low_pwr = low_pwr_disable;
if (btcoexist->bt_info.reject_agg_pkt) {
btcoexist->bt_info.pre_reject_agg_pkt =
btcoexist->bt_info.reject_agg_pkt;
if (btcoexist->bt_info.pre_reject_agg_pkt) {
btcoexist->bt_info.pre_reject_agg_pkt =
btcoexist->bt_info.reject_agg_pkt;
if (btcoexist->bt_info.pre_bt_ctrl_agg_buf_size !=
btcoexist->bt_info.bt_ctrl_agg_buf_size) {
btcoexist->bt_info.pre_bt_ctrl_agg_buf_size =
btcoexist->bt_info.bt_ctrl_agg_buf_size;
if (btcoexist->bt_info.bt_ctrl_agg_buf_size) {
if (btcoexist->bt_info.pre_agg_buf_size !=
btcoexist->bt_info.agg_buf_size) {
btcoexist->bt_info.pre_agg_buf_size =
btcoexist->bt_info.agg_buf_size;
if (btcoexist->bt_info.bt_real_fw_ver)
return btcoexist->bt_info.bt_real_fw_ver;
if (btcoexist->bt_info.bt_supported_feature)
return btcoexist->bt_info.bt_supported_feature;
if (btcoexist->bt_info.bt_supported_version)
return btcoexist->bt_info.bt_supported_version;
return btcoexist->bt_info.bt_device_info;
return btcoexist->bt_info.bt_forb_slot_val;
btcoexist->bt_info.bt_disabled = *bool_tmp;
btcoexist->bt_info.bt_busy = *bool_tmp;
btcoexist->bt_info.limited_dig = *bool_tmp;
btcoexist->bt_info.force_to_roam = *bool_tmp;
btcoexist->bt_info.reject_agg_pkt = *bool_tmp;
btcoexist->bt_info.bt_ctrl_agg_buf_size = *bool_tmp;
btcoexist->bt_info.increase_scan_dev_num = *bool_tmp;
btcoexist->bt_info.bt_tx_rx_mask = *bool_tmp;
btcoexist->bt_info.miracast_plus_bt = *bool_tmp;
btcoexist->bt_info.rssi_adjust_for_agc_table_on = *u8_tmp;
btcoexist->bt_info.agg_buf_size = *u8_tmp;
btcoexist->bt_info.rssi_adjust_for_1ant_coex_type = *u8_tmp;
btcoexist->bt_info.lps_val = *u8_tmp;
btcoexist->bt_info.rpwm_val = *u8_tmp;
btcoexist->bt_info.ra_mask = *u32_tmp;
btcoexist->bt_info.lps_val,
btcoexist->bt_info.rpwm_val);
struct btc_bt_info bt_info;
return btcoexist->bt_info.bt_lps_on;
*reject_agg = btcoexist->bt_info.reject_agg_pkt;
*ctrl_agg_size = btcoexist->bt_info.bt_ctrl_agg_buf_size;
*agg_size = btcoexist->bt_info.agg_buf_size;
btcoexist->bt_info.bt_real_fw_ver = bt_real_fw_ver;
btcoexist->bt_info.bt_fw_ver = bt_fw_ver;
btcoexist->bt_info.afh_map_l = le32_to_cpu(*(__le32 *)data);
btcoexist->bt_info.afh_map_m = le32_to_cpu(*(__le32 *)data);
btcoexist->bt_info.afh_map_h = le16_to_cpu(*(__le16 *)data);
btcoexist->bt_info.bt_supported_feature = tmp_buf[3] |
btcoexist->bt_info.bt_supported_version = tmp_buf[3] |
btcoexist->bt_info.bt_ant_det_val = tmp_buf[3];
btcoexist->bt_info.bt_ble_scan_para = tmp_buf[3] |
btcoexist->bt_info.bt_ble_scan_type = tmp_buf[3];
btcoexist->bt_info.bt_device_info =
btcoexist->bt_info.bt_forb_slot_val =
return btcoexist->bt_info.limited_dig;
if (btcoexist->bt_info.bt_disabled)
return btcoexist->bt_info.lps_val;
return btcoexist->bt_info.rpwm_val;
return btcoexist->bt_info.bt_ctrl_lps;
u8 bt_info;
bt_info = hal_coex_8723.c2h_bt_info_original;
if (bt_info & BIT(2))
if (bt_info & BTINFO_B_CONNECTION) {
void bt_info(const char *fmt, ...);
#define BT_INFO(fmt, ...) bt_info(fmt "\n", ##__VA_ARGS__)
EXPORT_SYMBOL(bt_info);