Lines Matching full:bt
408 /* TDMA off + pri: BT > WL */
411 /* TDMA off + pri: WL > BT */
414 /* TDMA off + pri: BT = WL */
417 /* TDMA off + pri: BT = WL > BT_Lo */
420 /* TDMA off + pri: WL = BT, BT_Rx > WL_Lo_Tx */
423 /* TDMA off + pri: WL_Rx = BT, BT_HI > WL_Tx > BT_Lo */
426 /* TDMA off + pri: WL_Rx = BT, BT_HI > WL_Tx > BT_Lo */
429 /* TDMA off + pri: WL_Rx = BT, BT_HI > WL_Tx > BT_Lo */
438 /* TDMA off + pri: WL_Hi-Tx > BT, BT_Hi > other-WL > BT_Lo */
441 /* TDMA off + pri: WL_Hi-Tx = BT */
444 /* TDMA off + pri: WL > BT, Block-BT*/
453 /* TDMA off + Ext-Ctrl + pri: E2G-slot block all BT */
459 /* TDMA off + Ext-Ctrl + pri: E2G-slot block all BT */
462 /* TDMA off + Ext-Ctrl + pri: E2G-slot WL > BT */
465 /* TDMA off + Ext-Ctrl + pri: E2G/EBT-slot WL > BT */
812 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
813 struct rtw89_btc_bt_link_info *bt_linfo = &bt->link_info;
822 if (type & BTC_RESET_BTINFO) /* only for BT enable */
823 memset(bt, 0, sizeof(*bt));
991 struct rtw89_btc_bt_info *bt = &cx->bt;
1105 if (cnt == 0 && bt->link_info.slave_role)
1127 bt->enable.now) || (!dm->cnt_dm[BTC_DCNT_BTCNT_HANG] &&
1128 !bt->enable.now))
1161 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
1162 struct rtw89_btc_bt_link_info *bt_linfo = &bt->link_info;
1183 bt->ver_info.fw = le32_to_cpu(pver->v7.fw_ver);
1184 bt->ver_info.fw_coex = le32_get_bits(pver->v7.coex_ver,
1186 bt->feature = le32_to_cpu(pver->v7.feature);
1189 bt->ver_info.fw = le32_to_cpu(pver->v1.fw_ver);
1190 bt->ver_info.fw_coex = le32_get_bits(pver->v1.coex_ver,
1192 bt->feature = le32_to_cpu(pver->v1.feature);
1199 bt->scan_info_v1[i] = pscan_v1->scan[i];
1200 if (bt->scan_info_v1[i].win == 0 &&
1201 bt->scan_info_v1[i].intvl == 0)
1207 bt->scan_info_v2[i] = pscan_v2->para[i];
1216 bt->scan_info_v2[i] = pscan_v7->para[i];
1224 bt->scan_info_update = 1;
1301 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
1599 bt->rfk_info.map.timeout = 1;
1601 bt->rfk_info.map.timeout = 0;
1603 dm->error.map.bt_rfk_timeout = bt->rfk_info.map.timeout;
1630 dm->error.map.bt_rfk_timeout = bt->rfk_info.map.timeout;
1657 dm->error.map.bt_rfk_timeout = bt->rfk_info.map.timeout;
1804 /* Check diff time between real BT slot and EBT/E5G slot */
1848 /* Check diff time between real BT slot and EBT/E5G slot */
1895 /* Check diff time between real BT slot and EBT/E5G slot */
1939 /* Check diff between real BT slot and EBT/E5G slot */
1942 /* Check bt slot length for P2P mode*/
1950 else if (bt->link_info.status.map.connect == 0)
2734 dm->gnt.bt[i].wlan_act_en = 0;
2735 dm->gnt.bt[i].wlan_act = 0;
2738 dm->gnt.bt[i].wlan_act_en = 1;
2739 dm->gnt.bt[i].wlan_act = 0;
2742 dm->gnt.bt[i].wlan_act_en = 1;
2743 dm->gnt.bt[i].wlan_act = 1;
2756 "[BTC], %s(): set bt %s wlan_act\n", __func__,
2824 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
2831 if (bt->rf_para.tx_pwr_freerun == level)
2841 bt->rf_para.tx_pwr_freerun = level;
2851 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
2856 if ((bt->rf_para.rx_gain_freerun == level ||
2858 (!rtwdev->chip->scbd || bt->lna_constrain == level))
2861 bt->rf_para.rx_gain_freerun = level;
2883 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
2884 struct rtw89_btc_bt_link_info *b = &bt->link_info;
2909 dm->trx_para_level = 1; /* for better BT ACI issue */
2914 /* modify trx_para if WK 2.4G-STA-DL + bt link */
2918 if (wl->rssi_level == 4 && bt->rssi_level > 2)
2920 else if (wl->rssi_level == 3 && bt->rssi_level > 3)
2949 if (!bt->enable.now || dm->wl_only || wl_smap->rf_off ||
2969 struct rtw89_btc_bt_info *bt = &cx->bt;
2970 struct rtw89_btc_bt_link_info *bt_linfo = &bt->link_info;
2996 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
2997 struct rtw89_btc_bt_link_info *b = &bt->link_info;
3028 if (wl->status.map.rf_off || bt->whql_test ||
3145 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
3150 struct rtw89_btc_bt_link_info *bt_linfo = &bt->link_info;
3191 /* TODO get isolation by BT psd */
3615 struct rtw89_btc_bt_hid_desc *hid = &btc->cx.bt.link_info.hid_desc;
3616 struct rtw89_btc_bt_hfp_desc *hfp = &btc->cx.bt.link_info.hfp_desc;
3628 tbl_w1 = cxtbl[7]; /* Ack/BA no break bt Hi-Pri-rx */
3637 tbl_b1 = cxtbl[4]; /* Ack/BA no break bt Hi-Pri-rx */
3740 case BTC_CXP_OFFE_2GISOB: /* for bt no-link */
4073 struct rtw89_btc_bt_info *bt = &cx->bt;
4098 } else if (bt->rfk_info.map.run) {
4100 "[BTC], %s(): return by bt rfk!!\n", __func__);
4121 if (bt->enable.now)
4146 /* BT should control by GNT_BT if WL_2G at S0 */
4198 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
4219 } else if (bt->rfk_info.map.run) {
4221 "[BTC], %s(): return by bt rfk!!\n", __func__);
4238 /* To avoid BT MP driver case (bt_enable but no mailbox) */
4239 if (bt->enable.now && bt->run_patch_code)
4286 BTC_WLACT_SW_HI); /* no BT-Tx */
4337 if (btc->cx.bt.link_info.a2dp_desc.active)
4377 struct rtw89_btc_bt_link_info *b = &btc->cx.bt.link_info;
4384 case BTC_WBUSY_BNOSCAN: /*wl-busy + bt idle*/
4385 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-idle */
4393 case BTC_WBUSY_BSCAN: /*wl-busy + bt-inq */
4397 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq */
4401 case BTC_WLINKING: /* wl-connecting + bt-inq or bt-idle */
4405 case BTC_WIDLE: /* wl-idle + bt-idle */
4425 btc->cx.bt.scan_rx_low_pri = true;
4445 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
4446 struct rtw89_btc_bt_hid_desc *hid = &bt->link_info.hid_desc;
4455 btc->cx.bt.scan_rx_low_pri = true;
4461 bt->scan_rx_low_pri = true;
4483 struct rtw89_btc_bt_link_info *bt_linfo = &btc->cx.bt.link_info;
4490 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-A2DP */
4501 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-A2DP */
4504 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-A2DP */
4507 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-A2DP */
4508 case BTC_WLINKING: /* wl-connecting + bt-A2DP */
4519 case BTC_WIDLE: /* wl-idle + bt-A2DP */
4532 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-A2dp_Sink */
4535 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-A2dp_Sink */
4538 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-A2dp_Sink */
4541 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-A2dp_Sink */
4544 case BTC_WLINKING: /* wl-connecting + bt-A2dp_Sink */
4547 case BTC_WIDLE: /* wl-idle + bt-A2dp_Sink */
4560 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-PAN */
4563 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-PAN */
4566 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-PAN */
4569 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-PAN */
4572 case BTC_WLINKING: /* wl-connecting + bt-PAN */
4575 case BTC_WIDLE: /* wl-idle + bt-pan */
4584 struct rtw89_btc_bt_link_info *bt_linfo = &btc->cx.bt.link_info;
4591 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-A2DP+HID */
4592 case BTC_WIDLE: /* wl-idle + bt-A2DP */
4603 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-A2DP+HID */
4607 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-A2DP+HID */
4610 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-A2DP+HID */
4611 case BTC_WLINKING: /* wl-connecting + bt-A2DP+HID */
4632 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-A2DP+PAN */
4635 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-A2DP+PAN */
4638 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-A2DP+PAN */
4641 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-A2DP+PAN */
4644 case BTC_WLINKING: /* wl-connecting + bt-A2DP+PAN */
4647 case BTC_WIDLE: /* wl-idle + bt-A2DP+PAN */
4660 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-PAN+HID */
4663 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-PAN+HID */
4666 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-PAN+HID */
4669 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-PAN+HID */
4672 case BTC_WLINKING: /* wl-connecting + bt-PAN+HID */
4675 case BTC_WIDLE: /* wl-idle + bt-PAN+HID */
4688 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-A2DP+PAN+HID */
4692 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-A2DP+PAN+HID */
4696 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-A2DP+PAN+HID */
4700 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-A2DP+PAN+HID */
4701 case BTC_WLINKING: /* wl-connecting + bt-A2DP+PAN+HID */
4705 case BTC_WIDLE: /* wl-idle + bt-A2DP+PAN+HID */
4762 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
4802 else if (!(bt->run_patch_code && bt->enable.now))
4836 struct rtw89_btc_bt_link_info *bt_linfo = &btc->cx.bt.link_info;
4841 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
4850 else if (!(bt->run_patch_code && bt->enable.now))
4855 btc->cx.bt.link_info.profile_cnt.now == 0)
4964 struct rtw89_btc_bt_info *bt = &cx->bt;
4965 struct rtw89_btc_bt_link_info *b = &bt->link_info;
5047 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
5065 if (bt_hi_lna_rx == bt->hi_lna_rx)
5074 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
5076 _write_scbd(rtwdev, BTC_WSCB_RXSCAN_PRI, (bool)(!!bt->scan_rx_low_pri));
5084 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
5097 bt_fw_ver = bt->ver_info.fw & 0xffff;
5098 if (bt->enable.now &&
5100 (bt_fw_ver == bt_rom_code_id && bt->run_patch_code && rtwdev->chip->scbd)))
5129 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
5130 struct rtw89_btc_bt_link_info *bt_linfo = &bt->link_info;
5222 else if (btc->cx.bt.link_info.profile_cnt.now == 0)
5265 if (btc->cx.bt.link_info.profile_cnt.now == 0)
5283 if (btc->cx.bt.link_info.profile_cnt.now == 0)
5298 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
5331 } else if (bt->link_info.status.map.connect == 0) {
5334 } else if (bt->link_info.a2dp_desc.exist &&
5338 } else if (bt->link_info.a2dp_desc.exist ||
5339 bt->link_info.pan_desc.exist) {
5360 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
5393 } else if (bt->link_info.status.map.connect == 0) {
5396 } else if (bt->link_info.a2dp_desc.exist &&
5400 } else if (bt->link_info.a2dp_desc.exist ||
5401 bt->link_info.pan_desc.exist) {
5422 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
5429 else if (bt->link_info.status.map.connect == 0)
5450 if (btc->cx.bt.link_info.profile_cnt.now == 0)
5467 if (btc->cx.bt.link_info.profile_cnt.now == 0)
5498 if (btc->cx.bt.link_info.profile_cnt.now == 0)
5637 /* only care 2 roles + BT coex */
5787 /* only care 2 roles + BT coex */
5937 /* only care 2 roles + BT coex */
6246 /* for WL 5G-Rx interfered with BT issue */
6368 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc;
6407 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
6425 bt->enable.now = 0;
6427 bt->enable.now = 1;
6429 if (bt->enable.now != bt->enable.last)
6432 /* reset bt info if bt re-enable */
6433 if (bt->enable.now && !bt->enable.last) {
6436 bt->enable.now = 1;
6439 bt->enable.last = bt->enable.now;
6440 bt->scbd = val;
6441 bt->mbx_avl = !!(val & BTC_BSCB_ACT);
6443 if (bt->whql_test != !!(val & BTC_BSCB_WHQL))
6446 bt->whql_test = !!(val & BTC_BSCB_WHQL);
6447 bt->btg_type = val & BTC_BSCB_BT_S1 ? BTC_BT_BTG : BTC_BT_ALONE;
6448 bt->link_info.a2dp_desc.exist = !!(val & BTC_BSCB_A2DP_ACT);
6450 bt->lna_constrain = !!(val & BTC_BSCB_BT_LNAB0) +
6454 if (bt->rfk_info.map.run && !(val & BTC_BSCB_RFK_RUN))
6457 bt->rfk_info.map.run = !!(val & BTC_BSCB_RFK_RUN);
6458 bt->rfk_info.map.req = !!(val & BTC_BSCB_RFK_REQ);
6459 bt->hi_lna_rx = !!(val & BTC_BSCB_BT_HILNA);
6460 bt->link_info.status.map.connect = !!(val & BTC_BSCB_BT_CONNECT);
6461 bt->run_patch_code = !!(val & BTC_BSCB_PATCH_CODE);
6471 struct rtw89_btc_bt_info *bt = &cx->bt;
6477 if ((bt->rfk_info.map.run || bt->rfk_info.map.req) &&
6478 !bt->rfk_info.map.timeout) {
6495 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
6577 bt->scan_rx_low_pri = false;
6603 if (!cx->bt.enable.now && !cx->other.type) {
6608 if (cx->bt.whql_test) {
6622 bt->scan_rx_low_pri = false;
6629 bt->scan_rx_low_pri = false;
6639 bt->scan_rx_low_pri = true;
6643 bt->scan_rx_low_pri = true;
6647 bt->scan_rx_low_pri = true;
6651 bt->scan_rx_low_pri = true;
6655 bt->scan_rx_low_pri = true;
6666 bt->scan_rx_low_pri = true;
6670 bt->scan_rx_low_pri = true;
6883 struct rtw89_btc_bt_link_info *b = &cx->bt.link_info;
6988 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
7003 rssi_st = &bt->link_info.rssi_state[i];
7038 struct rtw89_btc_bt_info *bt = &cx->bt;
7039 struct rtw89_btc_bt_link_info *b = &bt->link_info;
7049 if (!memcmp(bt->raw_info, buf, BTC_BTINFO_MAX)) {
7051 "[BTC], %s(): return by bt-info duplicate!!\n",
7057 memcpy(bt->raw_info, buf, BTC_BTINFO_MAX);
7061 __func__, bt->raw_info[2]);
7069 bt->inq_pag.last = bt->inq_pag.now;
7074 btinfo.val = bt->raw_info[BTC_BTINFO_L2];
7079 bt->inq_pag.now = btinfo.lb2.inq_pag;
7080 cx->cnt_bt[BTC_BCNT_INQPAG] += !!(bt->inq_pag.now && !bt->inq_pag.last);
7092 btinfo.val = bt->raw_info[BTC_BTINFO_L3];
7096 cx->cnt_bt[BTC_BCNT_INQ] += !!(btinfo.lb3.inq && !bt->inq);
7097 bt->inq = btinfo.lb3.inq;
7098 cx->cnt_bt[BTC_BCNT_PAGE] += !!(btinfo.lb3.pag && !bt->pag);
7099 bt->pag = btinfo.lb3.pag;
7103 btinfo.val = bt->raw_info[BTC_BTINFO_H0];
7106 bt->rssi_level = _update_bt_rssi_level(rtwdev, b->rssi);
7107 btc->dm.trx_info.bt_rssi = bt->rssi_level;
7110 btinfo.val = bt->raw_info[BTC_BTINFO_H1];
7115 cx->cnt_bt[BTC_BCNT_REINIT] += !!(btinfo.hb1.reinit && !bt->reinit);
7116 bt->reinit = btinfo.hb1.reinit;
7119 cx->cnt_bt[BTC_BCNT_IGNOWL] += !!(btinfo.hb1.igno_wl && !bt->igno_wl);
7120 bt->igno_wl = btinfo.hb1.igno_wl;
7122 if (bt->igno_wl && !cx->wl.status.map.rf_off)
7126 bt->ble_scan_en = btinfo.hb1.ble_scan;
7134 btinfo.val = bt->raw_info[BTC_BTINFO_H2];
7147 btinfo.val = bt->raw_info[BTC_BTINFO_H3];
7659 "[BTC], %s(): C2H BT len:%d class:%d fun:%d\n",
7674 "[BTC], handle C2H BT INFO with data %8ph\n", buf);
7680 "[BTC], handle C2H BT SCBD with data %8ph\n", buf);
7711 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
7746 bt->ver_info.fw_coex,
7747 (bt->ver_info.fw_coex >= chip->btcx_desired ?
7750 if (bt->enable.now && bt->ver_info.fw == 0)
7762 bt->ver_info.fw, bt->run_patch_code ? "patch" : "ROM");
7905 struct rtw89_btc_bt_link_info *bt_linfo = &btc->cx.bt.link_info;
7958 struct rtw89_btc_bt_info *bt = &cx->bt;
7960 struct rtw89_btc_bt_link_info *bt_linfo = &bt->link_info;
7974 seq_puts(m, "========== [BT Status] ==========\n");
7977 "[status]", bt->enable.now ? "Y" : "N",
7978 bt->btg_type ? "Y" : "N",
7979 (bt->enable.now && (bt->btg_type != bt_pos) ?
7984 bt->igno_wl ? "Y" : "N",
7985 bt->mbx_avl ? "Y" : "N", bt->rfk_info.val);
8008 bt->rssi_level,
8045 "[bt_info]", bt->raw_info[2], bt->raw_info[3],
8046 bt->raw_info[4], bt->raw_info[5], bt->raw_info[6],
8047 bt->raw_info[7],
8048 bt->raw_info[0] == BTC_BTINFO_AUTO ? "auto" : "reply",
8058 if (!bt->scan_info_update) {
8066 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_INQ].win),
8067 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_INQ].intvl),
8068 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_PAGE].win),
8069 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_PAGE].intvl),
8070 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_BLE].win),
8071 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_BLE].intvl),
8072 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_INIT].win),
8073 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_INIT].intvl));
8077 le16_to_cpu(bt->scan_info_v2[CXSCAN_BG].win),
8078 le16_to_cpu(bt->scan_info_v2[CXSCAN_BG].intvl),
8079 le16_to_cpu(bt->scan_info_v2[CXSCAN_INIT].win),
8080 le16_to_cpu(bt->scan_info_v2[CXSCAN_INIT].intvl),
8081 le16_to_cpu(bt->scan_info_v2[CXSCAN_LE].win),
8082 le16_to_cpu(bt->scan_info_v2[CXSCAN_LE].intvl));
8125 CASE_BTC_POLUT_STR(BT);
8370 CASE_BTC_INIT(BT);
8441 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
8491 (bt->hi_lna_rx ? "Hi" : "Ori"), dm->wl_btg_rx);
8496 dm->wl_tx_limit.tx_retry, btc->bt_req_len, bt->scan_rx_low_pri);
8644 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc;
8657 " %-15s : cycle:%d, bcn[all:%d/all_ok:%d/bt:%d/bt_ok:%d]",
8688 seq_printf(m, " %-15s : avg_t[wl:%d/bt:%d/lk:%d.%03d]",
8694 seq_printf(m, ", max_t[wl:%d/bt:%d/lk:%d.%03d]",
8699 seq_printf(m, ", maxdiff_t[wl:%d/bt:%d]\n",
8706 /* 1 cycle record 1 wl-slot and 1 bt-slot */
8770 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc;
8785 " %-15s : cycle:%d, bcn[all:%d/all_ok:%d/bt:%d/bt_ok:%d]",
8812 seq_printf(m, " %-15s : avg_t[wl:%d/bt:%d/lk:%d.%03d]",
8819 ", max_t[wl:%d/bt:%d/lk:%d.%03d]",
8825 ", maxdiff_t[wl:%d/bt:%d]\n",
8833 /* 1 cycle record 1 wl-slot and 1 bt-slot */
8900 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc;
8915 " %-15s : cycle:%d, bcn[all:%d/all_ok:%d/bt:%d/bt_ok:%d]",
8944 seq_printf(m, " %-15s : avg_t[wl:%d/bt:%d/lk:%d.%03d]",
8951 ", max_t[wl:%d/bt:%d/lk:%d.%03d]",
8957 ", maxdiff_t[wl:%d/bt:%d]\n",
8965 /* 1 cycle record 1 wl-slot and 1 bt-slot */
9032 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc;
9047 " %-15s : cycle:%d, bcn[all:%d/all_ok:%d/bt:%d/bt_ok:%d]",
9076 seq_printf(m, " %-15s : avg_t[wl:%d/bt:%d/lk:%d.%03d]",
9083 ", max_t[wl:%d/bt:%d/lk:%d.%03d]\n",
9093 /* 1 cycle record 1 wl-slot and 1 bt-slot */
9162 struct rtw89_btc_bt_info *bt = &rtwdev->btc.cx.bt;
9163 struct rtw89_btc_bt_a2dp_desc *a2dp = &bt->link_info.a2dp_desc;
9197 seq_printf(m, "\n\r %-15s : avg_t[wl:%d/bt:%d/lk:%d.%03d]",
9203 seq_printf(m, ", max_t[wl:%d/bt:%d(>%dms:%d)/lk:%d.%03d]",
9231 /* 1 cycle = 1 wl-slot + 1 bt-slot */
9627 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
9639 " %-15s : WL->BT:0x%08x(cnt:%d), BT->WL:0x%08x(total:%d, bt_update:%d)\n",
9641 bt->scbd, cx->cnt_bt[BTC_BCNT_SCBDREAD],
9652 btc->dm.pta_owner == BTC_CTRL_BY_WL ? "WL" : "BT",
9705 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
9717 " %-15s : WL->BT:0x%08x(cnt:%d), BT->WL:0x%08x(total:%d, bt_update:%d)\n",
9719 bt->scbd, cx->cnt_bt[BTC_BCNT_SCBDREAD],
9730 btc->dm.pta_owner == BTC_CTRL_BY_WL ? "WL" : "BT",
9783 struct rtw89_btc_bt_info *bt = &cx->bt;
9795 "\n\r %-15s : WL->BT:0x%08x(cnt:%d), BT->WL:0x%08x(total:%d, bt_update:%d)",
9797 bt->scbd, cx->cnt_bt[BTC_BCNT_SCBDREAD],
9807 dm->pta_owner == BTC_CTRL_BY_WL ? "WL" : "BT",
9854 struct rtw89_btc_bt_info *bt = &cx->bt;
9908 bt->rfk_info.map.timeout = 1;
9910 bt->rfk_info.map.timeout = 0;
9912 dm->error.map.wl_rfk_timeout = bt->rfk_info.map.timeout;
9958 struct rtw89_btc_bt_info *bt = &cx->bt;
10020 bt->rfk_info.map.timeout = 1;
10022 bt->rfk_info.map.timeout = 0;
10024 dm->error.map.wl_rfk_timeout = bt->rfk_info.map.timeout;
10399 struct rtw89_btc_bt_info *bt = &cx->bt;
10402 seq_printf(m, "WL FW / BT FW %d.%d.%d.%d / NA\n",
10411 bt->raw_info[2], bt->raw_info[3],
10412 bt->raw_info[4], bt->raw_info[5],
10413 bt->raw_info[6], bt->raw_info[7],
10414 bt->raw_info[0] == BTC_BTINFO_AUTO ? "auto" : "reply",