Lines Matching full:bt
336 /* TDMA off + pri: BT > WL */
339 /* TDMA off + pri: WL > BT */
342 /* TDMA off + pri: BT = WL */
345 /* TDMA off + pri: BT = WL > BT_Lo */
348 /* TDMA off + pri: WL = BT, BT_Rx > WL_Lo_Tx */
351 /* TDMA off + pri: WL_Rx = BT, BT_HI > WL_Tx > BT_Lo */
360 /* TDMA off + pri: WL_Hi-Tx > BT, BT_Hi > other-WL > BT_Lo */
363 /* TDMA off + pri: WL_Hi-Tx = BT */
372 /* TDMA off + Ext-Ctrl + pri: E2G-slot block all BT */
378 /* TDMA off + Ext-Ctrl + pri: E2G-slot block all BT */
381 /* TDMA off + Ext-Ctrl + pri: E2G-slot WL > BT */
384 /* TDMA off + Ext-Ctrl + pri: E2G/EBT-slot WL > BT */
716 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _reset_btc_var() local
717 struct rtw89_btc_bt_link_info *bt_linfo = &bt->link_info; in _reset_btc_var()
726 if (type & BTC_RESET_BTINFO) /* only for BT enable */ in _reset_btc_var()
727 memset(bt, 0, sizeof(*bt)); in _reset_btc_var()
874 struct rtw89_btc_bt_info *bt = &cx->bt; in _chk_btc_err() local
985 bt->enable.now) || (!dm->cnt_dm[BTC_DCNT_BTCNT_HANG] && in _chk_btc_err()
986 !bt->enable.now)) in _chk_btc_err()
1019 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _update_bt_report() local
1020 struct rtw89_btc_bt_link_info *bt_linfo = &bt->link_info; in _update_bt_report()
1040 bt->ver_info.fw = le32_to_cpu(pver->fw_ver); in _update_bt_report()
1041 bt->ver_info.fw_coex = le32_get_bits(pver->coex_ver, GENMASK(7, 0)); in _update_bt_report()
1042 bt->feature = le32_to_cpu(pver->feature); in _update_bt_report()
1048 bt->scan_info_v1[i] = pscan_v1->scan[i]; in _update_bt_report()
1049 if (bt->scan_info_v1[i].win == 0 && in _update_bt_report()
1050 bt->scan_info_v1[i].intvl == 0) in _update_bt_report()
1056 bt->scan_info_v2[i] = pscan_v2->para[i]; in _update_bt_report()
1064 bt->scan_info_update = 1; in _update_bt_report()
1113 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _chk_btc_report() local
1370 bt->rfk_info.map.timeout = 1; in _chk_btc_report()
1372 bt->rfk_info.map.timeout = 0; in _chk_btc_report()
1374 dm->error.map.bt_rfk_timeout = bt->rfk_info.map.timeout; in _chk_btc_report()
1401 dm->error.map.bt_rfk_timeout = bt->rfk_info.map.timeout; in _chk_btc_report()
1428 dm->error.map.bt_rfk_timeout = bt->rfk_info.map.timeout; in _chk_btc_report()
1516 /* Check diff time between real BT slot and EBT/E5G slot */ in _chk_btc_report()
1557 /* Check diff time between real BT slot and EBT/E5G slot */ in _chk_btc_report()
1601 /* Check diff time between real BT slot and EBT/E5G slot */ in _chk_btc_report()
2195 "[BTC], %s(): set bt %s wlan_act\n", __func__, in _set_bt_ignore_wlan_act()
2263 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _set_bt_tx_power() local
2266 if (bt->rf_para.tx_pwr_freerun == level) in _set_bt_tx_power()
2269 bt->rf_para.tx_pwr_freerun = level; in _set_bt_tx_power()
2285 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _set_bt_rx_gain() local
2287 if ((bt->rf_para.rx_gain_freerun == level || in _set_bt_rx_gain()
2289 (!rtwdev->chip->scbd || bt->lna_constrain == level)) in _set_bt_rx_gain()
2292 bt->rf_para.rx_gain_freerun = level; in _set_bt_rx_gain()
2314 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _set_rf_trx_para() local
2315 struct rtw89_btc_bt_link_info *b = &bt->link_info; in _set_rf_trx_para()
2340 dm->trx_para_level = 1; /* for better BT ACI issue */ in _set_rf_trx_para()
2345 /* modify trx_para if WK 2.4G-STA-DL + bt link */ in _set_rf_trx_para()
2349 if (wl->rssi_level == 4 && bt->rssi_level > 2) in _set_rf_trx_para()
2351 else if (wl->rssi_level == 3 && bt->rssi_level > 3) in _set_rf_trx_para()
2380 if (!bt->enable.now || dm->wl_only || wl_smap->rf_off || in _set_rf_trx_para()
2400 struct rtw89_btc_bt_info *bt = &cx->bt; in _update_btc_state_map() local
2401 struct rtw89_btc_bt_link_info *bt_linfo = &bt->link_info; in _update_btc_state_map()
2427 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _set_bt_afh_info() local
2428 struct rtw89_btc_bt_link_info *b = &bt->link_info; in _set_bt_afh_info()
2454 if (wl->status.map.rf_off || bt->whql_test || in _set_bt_afh_info()
2558 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _check_freerun() local
2561 struct rtw89_btc_bt_link_info *bt_linfo = &bt->link_info; in _check_freerun()
2586 /* TODO get isolation by BT psd */ in _check_freerun()
3024 struct rtw89_btc_bt_hid_desc *hid = &btc->cx.bt.link_info.hid_desc; in rtw89_btc_set_policy_v1()
3025 struct rtw89_btc_bt_hfp_desc *hfp = &btc->cx.bt.link_info.hfp_desc; in rtw89_btc_set_policy_v1()
3035 tbl_w1 = cxtbl[7]; /* Ack/BA no break bt Hi-Pri-rx */ in rtw89_btc_set_policy_v1()
3044 tbl_b1 = cxtbl[4]; /* Ack/BA no break bt Hi-Pri-rx */ in rtw89_btc_set_policy_v1()
3428 struct rtw89_btc_bt_info *bt = &cx->bt; in _set_ant() local
3445 } else if (bt->rfk_info.map.run) { in _set_ant()
3447 "[BTC], %s(): return by bt rfk!!\n", __func__); in _set_ant()
3468 if (bt->enable.now) in _set_ant()
3493 /* BT should control by GNT_BT if WL_2G at S0 */ in _set_ant()
3573 if (btc->cx.bt.link_info.a2dp_desc.active) in _action_wl_off()
3613 struct rtw89_btc_bt_link_info *b = &btc->cx.bt.link_info; in _action_bt_idle()
3620 case BTC_WBUSY_BNOSCAN: /*wl-busy + bt idle*/ in _action_bt_idle()
3621 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-idle */ in _action_bt_idle()
3629 case BTC_WBUSY_BSCAN: /*wl-busy + bt-inq */ in _action_bt_idle()
3633 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq */ in _action_bt_idle()
3637 case BTC_WLINKING: /* wl-connecting + bt-inq or bt-idle */ in _action_bt_idle()
3641 case BTC_WIDLE: /* wl-idle + bt-idle */ in _action_bt_idle()
3661 btc->cx.bt.scan_rx_low_pri = true; in _action_bt_hfp()
3676 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _action_bt_hid() local
3677 struct rtw89_btc_bt_hid_desc *hid = &bt->link_info.hid_desc; in _action_bt_hid()
3686 btc->cx.bt.scan_rx_low_pri = true; in _action_bt_hid()
3692 bt->scan_rx_low_pri = true; in _action_bt_hid()
3709 struct rtw89_btc_bt_link_info *bt_linfo = &btc->cx.bt.link_info; in _action_bt_a2dp()
3716 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-A2DP */ in _action_bt_a2dp()
3727 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-A2DP */ in _action_bt_a2dp()
3730 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-A2DP */ in _action_bt_a2dp()
3733 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-A2DP */ in _action_bt_a2dp()
3734 case BTC_WLINKING: /* wl-connecting + bt-A2DP */ in _action_bt_a2dp()
3745 case BTC_WIDLE: /* wl-idle + bt-A2DP */ in _action_bt_a2dp()
3758 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-A2dp_Sink */ in _action_bt_a2dpsink()
3761 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-A2dp_Sink */ in _action_bt_a2dpsink()
3764 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-A2dp_Sink */ in _action_bt_a2dpsink()
3767 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-A2dp_Sink */ in _action_bt_a2dpsink()
3770 case BTC_WLINKING: /* wl-connecting + bt-A2dp_Sink */ in _action_bt_a2dpsink()
3773 case BTC_WIDLE: /* wl-idle + bt-A2dp_Sink */ in _action_bt_a2dpsink()
3786 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-PAN */ in _action_bt_pan()
3789 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-PAN */ in _action_bt_pan()
3792 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-PAN */ in _action_bt_pan()
3795 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-PAN */ in _action_bt_pan()
3798 case BTC_WLINKING: /* wl-connecting + bt-PAN */ in _action_bt_pan()
3801 case BTC_WIDLE: /* wl-idle + bt-pan */ in _action_bt_pan()
3810 struct rtw89_btc_bt_link_info *bt_linfo = &btc->cx.bt.link_info; in _action_bt_a2dp_hid()
3817 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-A2DP+HID */ in _action_bt_a2dp_hid()
3818 case BTC_WIDLE: /* wl-idle + bt-A2DP */ in _action_bt_a2dp_hid()
3829 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-A2DP+HID */ in _action_bt_a2dp_hid()
3833 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-A2DP+HID */ in _action_bt_a2dp_hid()
3836 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-A2DP+HID */ in _action_bt_a2dp_hid()
3837 case BTC_WLINKING: /* wl-connecting + bt-A2DP+HID */ in _action_bt_a2dp_hid()
3858 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-A2DP+PAN */ in _action_bt_a2dp_pan()
3861 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-A2DP+PAN */ in _action_bt_a2dp_pan()
3864 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-A2DP+PAN */ in _action_bt_a2dp_pan()
3867 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-A2DP+PAN */ in _action_bt_a2dp_pan()
3870 case BTC_WLINKING: /* wl-connecting + bt-A2DP+PAN */ in _action_bt_a2dp_pan()
3873 case BTC_WIDLE: /* wl-idle + bt-A2DP+PAN */ in _action_bt_a2dp_pan()
3886 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-PAN+HID */ in _action_bt_pan_hid()
3889 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-PAN+HID */ in _action_bt_pan_hid()
3892 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-PAN+HID */ in _action_bt_pan_hid()
3895 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-PAN+HID */ in _action_bt_pan_hid()
3898 case BTC_WLINKING: /* wl-connecting + bt-PAN+HID */ in _action_bt_pan_hid()
3901 case BTC_WIDLE: /* wl-idle + bt-PAN+HID */ in _action_bt_pan_hid()
3914 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-A2DP+PAN+HID */ in _action_bt_a2dp_pan_hid()
3918 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-A2DP+PAN+HID */ in _action_bt_a2dp_pan_hid()
3922 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-A2DP+PAN+HID */ in _action_bt_a2dp_pan_hid()
3926 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-A2DP+PAN+HID */ in _action_bt_a2dp_pan_hid()
3927 case BTC_WLINKING: /* wl-connecting + bt-A2DP+PAN+HID */ in _action_bt_a2dp_pan_hid()
3931 case BTC_WIDLE: /* wl-idle + bt-A2DP+PAN+HID */ in _action_bt_a2dp_pan_hid()
3987 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _set_btg_ctrl() local
4023 else if (!(bt->run_patch_code && bt->enable.now)) in _set_btg_ctrl()
4057 struct rtw89_btc_bt_link_info *bt_linfo = &btc->cx.bt.link_info; in _set_wl_preagc_ctrl()
4062 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _set_wl_preagc_ctrl() local
4071 else if (!(bt->run_patch_code && bt->enable.now)) in _set_wl_preagc_ctrl()
4076 btc->cx.bt.link_info.profile_cnt.now == 0) in _set_wl_preagc_ctrl()
4182 struct rtw89_btc_bt_info *bt = &cx->bt; in _set_wl_tx_limit() local
4183 struct rtw89_btc_bt_link_info *b = &bt->link_info; in _set_wl_tx_limit()
4257 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _set_bt_rx_agc() local
4273 if (bt_hi_lna_rx == bt->hi_lna_rx) in _set_bt_rx_agc()
4282 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _set_bt_rx_scan_pri() local
4284 _write_scbd(rtwdev, BTC_WSCB_RXSCAN_PRI, (bool)(!!bt->scan_rx_low_pri)); in _set_bt_rx_scan_pri()
4314 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _action_by_bt() local
4315 struct rtw89_btc_bt_link_info *bt_linfo = &bt->link_info; in _action_by_bt()
4434 if (btc->cx.bt.link_info.profile_cnt.now == 0) in _action_wl_25g_mcc()
4451 if (btc->cx.bt.link_info.profile_cnt.now == 0) in _action_wl_2g_mcc()
4469 if (btc->cx.bt.link_info.profile_cnt.now == 0) in _action_wl_2g_scc()
4484 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _action_wl_2g_scc_v1() local
4517 } else if (bt->link_info.status.map.connect == 0) { in _action_wl_2g_scc_v1()
4520 } else if (bt->link_info.a2dp_desc.exist && in _action_wl_2g_scc_v1()
4524 } else if (bt->link_info.a2dp_desc.exist || in _action_wl_2g_scc_v1()
4525 bt->link_info.pan_desc.exist) { in _action_wl_2g_scc_v1()
4546 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _action_wl_2g_scc_v2() local
4579 } else if (bt->link_info.status.map.connect == 0) { in _action_wl_2g_scc_v2()
4582 } else if (bt->link_info.a2dp_desc.exist && in _action_wl_2g_scc_v2()
4586 } else if (bt->link_info.a2dp_desc.exist || in _action_wl_2g_scc_v2()
4587 bt->link_info.pan_desc.exist) { in _action_wl_2g_scc_v2()
4611 if (btc->cx.bt.link_info.profile_cnt.now == 0) in _action_wl_2g_ap()
4628 if (btc->cx.bt.link_info.profile_cnt.now == 0) in _action_wl_2g_go()
4659 if (btc->cx.bt.link_info.profile_cnt.now == 0) in _action_wl_2g_nan()
4798 /* only care 2 roles + BT coex */ in _update_wl_info()
4948 /* only care 2 roles + BT coex */ in _update_wl_info_v1()
5098 /* only care 2 roles + BT coex */ in _update_wl_info_v2()
5223 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc; in rtw89_coex_bt_devinfo_work()
5262 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _update_bt_scbd() local
5280 bt->enable.now = 0; in _update_bt_scbd()
5282 bt->enable.now = 1; in _update_bt_scbd()
5284 if (bt->enable.now != bt->enable.last) in _update_bt_scbd()
5287 /* reset bt info if bt re-enable */ in _update_bt_scbd()
5288 if (bt->enable.now && !bt->enable.last) { in _update_bt_scbd()
5291 bt->enable.now = 1; in _update_bt_scbd()
5294 bt->enable.last = bt->enable.now; in _update_bt_scbd()
5295 bt->scbd = val; in _update_bt_scbd()
5296 bt->mbx_avl = !!(val & BTC_BSCB_ACT); in _update_bt_scbd()
5298 if (bt->whql_test != !!(val & BTC_BSCB_WHQL)) in _update_bt_scbd()
5301 bt->whql_test = !!(val & BTC_BSCB_WHQL); in _update_bt_scbd()
5302 bt->btg_type = val & BTC_BSCB_BT_S1 ? BTC_BT_BTG : BTC_BT_ALONE; in _update_bt_scbd()
5303 bt->link_info.a2dp_desc.exist = !!(val & BTC_BSCB_A2DP_ACT); in _update_bt_scbd()
5305 bt->lna_constrain = !!(val & BTC_BSCB_BT_LNAB0) + in _update_bt_scbd()
5309 if (bt->rfk_info.map.run && !(val & BTC_BSCB_RFK_RUN)) in _update_bt_scbd()
5312 bt->rfk_info.map.run = !!(val & BTC_BSCB_RFK_RUN); in _update_bt_scbd()
5313 bt->rfk_info.map.req = !!(val & BTC_BSCB_RFK_REQ); in _update_bt_scbd()
5314 bt->hi_lna_rx = !!(val & BTC_BSCB_BT_HILNA); in _update_bt_scbd()
5315 bt->link_info.status.map.connect = !!(val & BTC_BSCB_BT_CONNECT); in _update_bt_scbd()
5316 bt->run_patch_code = !!(val & BTC_BSCB_PATCH_CODE); in _update_bt_scbd()
5326 struct rtw89_btc_bt_info *bt = &cx->bt; in _chk_wl_rfk_request() local
5332 if ((bt->rfk_info.map.run || bt->rfk_info.map.req) && in _chk_wl_rfk_request()
5333 !bt->rfk_info.map.timeout) { in _chk_wl_rfk_request()
5350 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _run_coex() local
5422 bt->scan_rx_low_pri = false; in _run_coex()
5447 if (!cx->bt.enable.now && !cx->other.type) { in _run_coex()
5452 if (cx->bt.whql_test) { in _run_coex()
5466 bt->scan_rx_low_pri = false; in _run_coex()
5473 bt->scan_rx_low_pri = false; in _run_coex()
5483 bt->scan_rx_low_pri = true; in _run_coex()
5487 bt->scan_rx_low_pri = true; in _run_coex()
5491 bt->scan_rx_low_pri = true; in _run_coex()
5495 bt->scan_rx_low_pri = true; in _run_coex()
5499 bt->scan_rx_low_pri = true; in _run_coex()
5508 bt->scan_rx_low_pri = true; in _run_coex()
5512 bt->scan_rx_low_pri = true; in _run_coex()
5707 struct rtw89_btc_bt_link_info *b = &cx->bt.link_info; in rtw89_btc_ntfy_specific_packet()
5812 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _update_bt_rssi_level() local
5827 rssi_st = &bt->link_info.rssi_state[i]; in _update_bt_rssi_level()
5846 struct rtw89_btc_bt_info *bt = &cx->bt; in _update_bt_info() local
5847 struct rtw89_btc_bt_link_info *b = &bt->link_info; in _update_bt_info()
5857 if (!memcmp(bt->raw_info, buf, BTC_BTINFO_MAX)) { in _update_bt_info()
5859 "[BTC], %s(): return by bt-info duplicate!!\n", in _update_bt_info()
5865 memcpy(bt->raw_info, buf, BTC_BTINFO_MAX); in _update_bt_info()
5869 __func__, bt->raw_info[2]); in _update_bt_info()
5877 bt->inq_pag.last = bt->inq_pag.now; in _update_bt_info()
5882 btinfo.val = bt->raw_info[BTC_BTINFO_L2]; in _update_bt_info()
5887 bt->inq_pag.now = btinfo.lb2.inq_pag; in _update_bt_info()
5888 cx->cnt_bt[BTC_BCNT_INQPAG] += !!(bt->inq_pag.now && !bt->inq_pag.last); in _update_bt_info()
5900 btinfo.val = bt->raw_info[BTC_BTINFO_L3]; in _update_bt_info()
5904 cx->cnt_bt[BTC_BCNT_INQ] += !!(btinfo.lb3.inq && !bt->inq); in _update_bt_info()
5905 bt->inq = btinfo.lb3.inq; in _update_bt_info()
5906 cx->cnt_bt[BTC_BCNT_PAGE] += !!(btinfo.lb3.pag && !bt->pag); in _update_bt_info()
5907 bt->pag = btinfo.lb3.pag; in _update_bt_info()
5911 btinfo.val = bt->raw_info[BTC_BTINFO_H0]; in _update_bt_info()
5914 bt->rssi_level = _update_bt_rssi_level(rtwdev, b->rssi); in _update_bt_info()
5915 btc->dm.trx_info.bt_rssi = bt->rssi_level; in _update_bt_info()
5918 btinfo.val = bt->raw_info[BTC_BTINFO_H1]; in _update_bt_info()
5923 cx->cnt_bt[BTC_BCNT_REINIT] += !!(btinfo.hb1.reinit && !bt->reinit); in _update_bt_info()
5924 bt->reinit = btinfo.hb1.reinit; in _update_bt_info()
5927 cx->cnt_bt[BTC_BCNT_IGNOWL] += !!(btinfo.hb1.igno_wl && !bt->igno_wl); in _update_bt_info()
5928 bt->igno_wl = btinfo.hb1.igno_wl; in _update_bt_info()
5930 if (bt->igno_wl && !cx->wl.status.map.rf_off) in _update_bt_info()
5934 bt->ble_scan_en = btinfo.hb1.ble_scan; in _update_bt_info()
5942 btinfo.val = bt->raw_info[BTC_BTINFO_H2]; in _update_bt_info()
5955 btinfo.val = bt->raw_info[BTC_BTINFO_H3]; in _update_bt_info()
6446 "[BTC], %s(): C2H BT len:%d class:%d fun:%d\n", in rtw89_btc_c2h_handle()
6461 "[BTC], handle C2H BT INFO with data %8ph\n", buf); in rtw89_btc_c2h_handle()
6467 "[BTC], handle C2H BT SCBD with data %8ph\n", buf); in rtw89_btc_c2h_handle()
6496 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _show_cx_info() local
6530 bt->ver_info.fw_coex, in _show_cx_info()
6531 (bt->ver_info.fw_coex >= chip->btcx_desired ? in _show_cx_info()
6534 if (bt->enable.now && bt->ver_info.fw == 0) in _show_cx_info()
6546 bt->ver_info.fw, bt->run_patch_code ? "patch" : "ROM"); in _show_cx_info()
6670 struct rtw89_btc_bt_link_info *bt_linfo = &btc->cx.bt.link_info; in _show_bt_profile_info()
6723 struct rtw89_btc_bt_info *bt = &cx->bt; in _show_bt_info() local
6726 struct rtw89_btc_bt_link_info *bt_linfo = &bt->link_info; in _show_bt_info()
6733 seq_puts(m, "========== [BT Status] ==========\n"); in _show_bt_info()
6736 "[status]", bt->enable.now ? "Y" : "N", in _show_bt_info()
6737 bt->btg_type ? "Y" : "N", in _show_bt_info()
6738 (bt->enable.now && (bt->btg_type != module->bt_pos) ? in _show_bt_info()
6743 bt->igno_wl ? "Y" : "N", in _show_bt_info()
6744 bt->mbx_avl ? "Y" : "N", bt->rfk_info.val); in _show_bt_info()
6767 bt->rssi_level, in _show_bt_info()
6804 "[bt_info]", bt->raw_info[2], bt->raw_info[3], in _show_bt_info()
6805 bt->raw_info[4], bt->raw_info[5], bt->raw_info[6], in _show_bt_info()
6806 bt->raw_info[7], in _show_bt_info()
6807 bt->raw_info[0] == BTC_BTINFO_AUTO ? "auto" : "reply", in _show_bt_info()
6817 if (!bt->scan_info_update) { in _show_bt_info()
6825 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_INQ].win), in _show_bt_info()
6826 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_INQ].intvl), in _show_bt_info()
6827 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_PAGE].win), in _show_bt_info()
6828 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_PAGE].intvl), in _show_bt_info()
6829 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_BLE].win), in _show_bt_info()
6830 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_BLE].intvl), in _show_bt_info()
6831 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_INIT].win), in _show_bt_info()
6832 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_INIT].intvl)); in _show_bt_info()
6836 le16_to_cpu(bt->scan_info_v2[CXSCAN_BG].win), in _show_bt_info()
6837 le16_to_cpu(bt->scan_info_v2[CXSCAN_BG].intvl), in _show_bt_info()
6838 le16_to_cpu(bt->scan_info_v2[CXSCAN_INIT].win), in _show_bt_info()
6839 le16_to_cpu(bt->scan_info_v2[CXSCAN_INIT].intvl), in _show_bt_info()
6840 le16_to_cpu(bt->scan_info_v2[CXSCAN_LE].win), in _show_bt_info()
6841 le16_to_cpu(bt->scan_info_v2[CXSCAN_LE].intvl)); in _show_bt_info()
6846 if (bt->enable.now && bt->ver_info.fw == 0) in _show_bt_info()
7058 CASE_BTC_INIT(BT); in id_to_mode()
7129 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _show_dm_info() local
7173 (bt->hi_lna_rx ? "Hi" : "Ori"), dm->wl_btg_rx); in _show_dm_info()
7178 dm->wl_tx_limit.tx_retry, btc->bt_req_len, bt->scan_rx_low_pri); in _show_dm_info()
7309 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc; in _show_fbtc_cysta_v2()
7322 " %-15s : cycle:%d, bcn[all:%d/all_ok:%d/bt:%d/bt_ok:%d]", in _show_fbtc_cysta_v2()
7353 seq_printf(m, " %-15s : avg_t[wl:%d/bt:%d/lk:%d.%03d]", in _show_fbtc_cysta_v2()
7359 seq_printf(m, ", max_t[wl:%d/bt:%d/lk:%d.%03d]", in _show_fbtc_cysta_v2()
7364 seq_printf(m, ", maxdiff_t[wl:%d/bt:%d]\n", in _show_fbtc_cysta_v2()
7371 /* 1 cycle record 1 wl-slot and 1 bt-slot */ in _show_fbtc_cysta_v2()
7435 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc; in _show_fbtc_cysta_v3()
7450 " %-15s : cycle:%d, bcn[all:%d/all_ok:%d/bt:%d/bt_ok:%d]", in _show_fbtc_cysta_v3()
7477 seq_printf(m, " %-15s : avg_t[wl:%d/bt:%d/lk:%d.%03d]", in _show_fbtc_cysta_v3()
7484 ", max_t[wl:%d/bt:%d/lk:%d.%03d]", in _show_fbtc_cysta_v3()
7490 ", maxdiff_t[wl:%d/bt:%d]\n", in _show_fbtc_cysta_v3()
7498 /* 1 cycle record 1 wl-slot and 1 bt-slot */ in _show_fbtc_cysta_v3()
7565 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc; in _show_fbtc_cysta_v4()
7580 " %-15s : cycle:%d, bcn[all:%d/all_ok:%d/bt:%d/bt_ok:%d]", in _show_fbtc_cysta_v4()
7609 seq_printf(m, " %-15s : avg_t[wl:%d/bt:%d/lk:%d.%03d]", in _show_fbtc_cysta_v4()
7616 ", max_t[wl:%d/bt:%d/lk:%d.%03d]", in _show_fbtc_cysta_v4()
7622 ", maxdiff_t[wl:%d/bt:%d]\n", in _show_fbtc_cysta_v4()
7630 /* 1 cycle record 1 wl-slot and 1 bt-slot */ in _show_fbtc_cysta_v4()
7697 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc; in _show_fbtc_cysta_v5()
7712 " %-15s : cycle:%d, bcn[all:%d/all_ok:%d/bt:%d/bt_ok:%d]", in _show_fbtc_cysta_v5()
7741 seq_printf(m, " %-15s : avg_t[wl:%d/bt:%d/lk:%d.%03d]", in _show_fbtc_cysta_v5()
7748 ", max_t[wl:%d/bt:%d/lk:%d.%03d]\n", in _show_fbtc_cysta_v5()
7758 /* 1 cycle record 1 wl-slot and 1 bt-slot */ in _show_fbtc_cysta_v5()
8093 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _show_mreg_v1() local
8105 " %-15s : WL->BT:0x%08x(cnt:%d), BT->WL:0x%08x(total:%d, bt_update:%d)\n", in _show_mreg_v1()
8107 bt->scbd, cx->cnt_bt[BTC_BCNT_SCBDREAD], in _show_mreg_v1()
8118 btc->dm.pta_owner == BTC_CTRL_BY_WL ? "WL" : "BT", in _show_mreg_v1()
8195 struct rtw89_btc_bt_info *bt = &btc->cx.bt; in _show_mreg_v2() local
8207 " %-15s : WL->BT:0x%08x(cnt:%d), BT->WL:0x%08x(total:%d, bt_update:%d)\n", in _show_mreg_v2()
8209 bt->scbd, cx->cnt_bt[BTC_BCNT_SCBDREAD], in _show_mreg_v2()
8220 btc->dm.pta_owner == BTC_CTRL_BY_WL ? "WL" : "BT", in _show_mreg_v2()
8296 struct rtw89_btc_bt_info *bt = &cx->bt; in _show_summary_v1() local
8350 bt->rfk_info.map.timeout = 1; in _show_summary_v1()
8352 bt->rfk_info.map.timeout = 0; in _show_summary_v1()
8354 dm->error.map.wl_rfk_timeout = bt->rfk_info.map.timeout; in _show_summary_v1()
8400 struct rtw89_btc_bt_info *bt = &cx->bt; in _show_summary_v4() local
8462 bt->rfk_info.map.timeout = 1; in _show_summary_v4()
8464 bt->rfk_info.map.timeout = 0; in _show_summary_v4()
8466 dm->error.map.wl_rfk_timeout = bt->rfk_info.map.timeout; in _show_summary_v4()
8739 struct rtw89_btc_bt_info *bt = &cx->bt; in rtw89_btc_dump_info() local
8742 seq_printf(m, "WL FW / BT FW %d.%d.%d.%d / NA\n", in rtw89_btc_dump_info()
8751 bt->raw_info[2], bt->raw_info[3], in rtw89_btc_dump_info()
8752 bt->raw_info[4], bt->raw_info[5], in rtw89_btc_dump_info()
8753 bt->raw_info[6], bt->raw_info[7], in rtw89_btc_dump_info()
8754 bt->raw_info[0] == BTC_BTINFO_AUTO ? "auto" : "reply", in rtw89_btc_dump_info()