Lines Matching refs:bt

811 	struct rtw89_btc_bt_info *bt = &btc->cx.bt;
812 struct rtw89_btc_bt_link_info *bt_linfo = &bt->link_info;
822 memset(bt, 0, sizeof(*bt));
990 struct rtw89_btc_bt_info *bt = &cx->bt;
1104 if (cnt == 0 && bt->link_info.slave_role)
1126 bt->enable.now) || (!dm->cnt_dm[BTC_DCNT_BTCNT_HANG] &&
1127 !bt->enable.now))
1160 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
1161 struct rtw89_btc_bt_link_info *bt_linfo = &bt->link_info;
1182 bt->ver_info.fw = le32_to_cpu(pver->v7.fw_ver);
1183 bt->ver_info.fw_coex = le32_get_bits(pver->v7.coex_ver,
1185 bt->feature = le32_to_cpu(pver->v7.feature);
1188 bt->ver_info.fw = le32_to_cpu(pver->v1.fw_ver);
1189 bt->ver_info.fw_coex = le32_get_bits(pver->v1.coex_ver,
1191 bt->feature = le32_to_cpu(pver->v1.feature);
1198 bt->scan_info_v1[i] = pscan_v1->scan[i];
1199 if (bt->scan_info_v1[i].win == 0 &&
1200 bt->scan_info_v1[i].intvl == 0)
1206 bt->scan_info_v2[i] = pscan_v2->para[i];
1215 bt->scan_info_v2[i] = pscan_v7->para[i];
1223 bt->scan_info_update = 1;
1300 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
1598 bt->rfk_info.map.timeout = 1;
1600 bt->rfk_info.map.timeout = 0;
1602 dm->error.map.bt_rfk_timeout = bt->rfk_info.map.timeout;
1629 dm->error.map.bt_rfk_timeout = bt->rfk_info.map.timeout;
1656 dm->error.map.bt_rfk_timeout = bt->rfk_info.map.timeout;
1941 /* Check bt slot length for P2P mode*/
1949 else if (bt->link_info.status.map.connect == 0)
2733 dm->gnt.bt[i].wlan_act_en = 0;
2734 dm->gnt.bt[i].wlan_act = 0;
2737 dm->gnt.bt[i].wlan_act_en = 1;
2738 dm->gnt.bt[i].wlan_act = 0;
2741 dm->gnt.bt[i].wlan_act_en = 1;
2742 dm->gnt.bt[i].wlan_act = 1;
2755 "[BTC], %s(): set bt %s wlan_act\n", __func__,
2823 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
2830 if (bt->rf_para.tx_pwr_freerun == level)
2840 bt->rf_para.tx_pwr_freerun = level;
2850 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
2855 if ((bt->rf_para.rx_gain_freerun == level ||
2857 (!rtwdev->chip->scbd || bt->lna_constrain == level))
2860 bt->rf_para.rx_gain_freerun = level;
2882 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
2883 struct rtw89_btc_bt_link_info *b = &bt->link_info;
2913 /* modify trx_para if WK 2.4G-STA-DL + bt link */
2917 if (wl->rssi_level == 4 && bt->rssi_level > 2)
2919 else if (wl->rssi_level == 3 && bt->rssi_level > 3)
2948 if (!bt->enable.now || dm->wl_only || wl_smap->rf_off ||
2968 struct rtw89_btc_bt_info *bt = &cx->bt;
2969 struct rtw89_btc_bt_link_info *bt_linfo = &bt->link_info;
2995 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
2996 struct rtw89_btc_bt_link_info *b = &bt->link_info;
3027 if (wl->status.map.rf_off || bt->whql_test ||
3144 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
3149 struct rtw89_btc_bt_link_info *bt_linfo = &bt->link_info;
3614 struct rtw89_btc_bt_hid_desc *hid = &btc->cx.bt.link_info.hid_desc;
3615 struct rtw89_btc_bt_hfp_desc *hfp = &btc->cx.bt.link_info.hfp_desc;
3626 tbl_w1 = cxtbl[7]; /* Ack/BA no break bt Hi-Pri-rx */
3635 tbl_b1 = cxtbl[4]; /* Ack/BA no break bt Hi-Pri-rx */
4048 struct rtw89_btc_bt_info *bt = &cx->bt;
4073 } else if (bt->rfk_info.map.run) {
4075 "[BTC], %s(): return by bt rfk!!\n", __func__);
4096 if (bt->enable.now)
4173 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
4194 } else if (bt->rfk_info.map.run) {
4196 "[BTC], %s(): return by bt rfk!!\n", __func__);
4214 if (bt->enable.now && bt->run_patch_code)
4312 if (btc->cx.bt.link_info.a2dp_desc.active)
4352 struct rtw89_btc_bt_link_info *b = &btc->cx.bt.link_info;
4359 case BTC_WBUSY_BNOSCAN: /*wl-busy + bt idle*/
4360 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-idle */
4368 case BTC_WBUSY_BSCAN: /*wl-busy + bt-inq */
4372 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq */
4376 case BTC_WLINKING: /* wl-connecting + bt-inq or bt-idle */
4380 case BTC_WIDLE: /* wl-idle + bt-idle */
4400 btc->cx.bt.scan_rx_low_pri = true;
4420 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
4421 struct rtw89_btc_bt_hid_desc *hid = &bt->link_info.hid_desc;
4430 btc->cx.bt.scan_rx_low_pri = true;
4436 bt->scan_rx_low_pri = true;
4458 struct rtw89_btc_bt_link_info *bt_linfo = &btc->cx.bt.link_info;
4465 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-A2DP */
4476 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-A2DP */
4479 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-A2DP */
4482 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-A2DP */
4483 case BTC_WLINKING: /* wl-connecting + bt-A2DP */
4494 case BTC_WIDLE: /* wl-idle + bt-A2DP */
4507 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-A2dp_Sink */
4510 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-A2dp_Sink */
4513 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-A2dp_Sink */
4516 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-A2dp_Sink */
4519 case BTC_WLINKING: /* wl-connecting + bt-A2dp_Sink */
4522 case BTC_WIDLE: /* wl-idle + bt-A2dp_Sink */
4535 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-PAN */
4538 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-PAN */
4541 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-PAN */
4544 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-PAN */
4547 case BTC_WLINKING: /* wl-connecting + bt-PAN */
4550 case BTC_WIDLE: /* wl-idle + bt-pan */
4559 struct rtw89_btc_bt_link_info *bt_linfo = &btc->cx.bt.link_info;
4566 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-A2DP+HID */
4567 case BTC_WIDLE: /* wl-idle + bt-A2DP */
4578 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-A2DP+HID */
4582 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-A2DP+HID */
4585 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-A2DP+HID */
4586 case BTC_WLINKING: /* wl-connecting + bt-A2DP+HID */
4607 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-A2DP+PAN */
4610 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-A2DP+PAN */
4613 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-A2DP+PAN */
4616 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-A2DP+PAN */
4619 case BTC_WLINKING: /* wl-connecting + bt-A2DP+PAN */
4622 case BTC_WIDLE: /* wl-idle + bt-A2DP+PAN */
4635 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-PAN+HID */
4638 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-PAN+HID */
4641 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-PAN+HID */
4644 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-PAN+HID */
4647 case BTC_WLINKING: /* wl-connecting + bt-PAN+HID */
4650 case BTC_WIDLE: /* wl-idle + bt-PAN+HID */
4663 case BTC_WBUSY_BNOSCAN: /* wl-busy + bt-A2DP+PAN+HID */
4667 case BTC_WBUSY_BSCAN: /* wl-busy + bt-inq + bt-A2DP+PAN+HID */
4671 case BTC_WSCAN_BSCAN: /* wl-scan + bt-inq + bt-A2DP+PAN+HID */
4675 case BTC_WSCAN_BNOSCAN: /* wl-scan + bt-A2DP+PAN+HID */
4676 case BTC_WLINKING: /* wl-connecting + bt-A2DP+PAN+HID */
4680 case BTC_WIDLE: /* wl-idle + bt-A2DP+PAN+HID */
4737 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
4777 else if (!(bt->run_patch_code && bt->enable.now))
4811 struct rtw89_btc_bt_link_info *bt_linfo = &btc->cx.bt.link_info;
4816 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
4825 else if (!(bt->run_patch_code && bt->enable.now))
4830 btc->cx.bt.link_info.profile_cnt.now == 0)
4939 struct rtw89_btc_bt_info *bt = &cx->bt;
4940 struct rtw89_btc_bt_link_info *b = &bt->link_info;
5022 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
5040 if (bt_hi_lna_rx == bt->hi_lna_rx)
5049 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
5051 _write_scbd(rtwdev, BTC_WSCB_RXSCAN_PRI, (bool)(!!bt->scan_rx_low_pri));
5059 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
5072 bt_fw_ver = bt->ver_info.fw & 0xffff;
5073 if (bt->enable.now &&
5075 (bt_fw_ver == bt_rom_code_id && bt->run_patch_code && rtwdev->chip->scbd)))
5104 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
5105 struct rtw89_btc_bt_link_info *bt_linfo = &bt->link_info;
5197 else if (btc->cx.bt.link_info.profile_cnt.now == 0)
5240 if (btc->cx.bt.link_info.profile_cnt.now == 0)
5258 if (btc->cx.bt.link_info.profile_cnt.now == 0)
5273 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
5306 } else if (bt->link_info.status.map.connect == 0) {
5309 } else if (bt->link_info.a2dp_desc.exist &&
5313 } else if (bt->link_info.a2dp_desc.exist ||
5314 bt->link_info.pan_desc.exist) {
5335 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
5368 } else if (bt->link_info.status.map.connect == 0) {
5371 } else if (bt->link_info.a2dp_desc.exist &&
5375 } else if (bt->link_info.a2dp_desc.exist ||
5376 bt->link_info.pan_desc.exist) {
5397 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
5404 else if (bt->link_info.status.map.connect == 0)
5425 if (btc->cx.bt.link_info.profile_cnt.now == 0)
5442 if (btc->cx.bt.link_info.profile_cnt.now == 0)
5473 if (btc->cx.bt.link_info.profile_cnt.now == 0)
6343 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc;
6382 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
6400 bt->enable.now = 0;
6402 bt->enable.now = 1;
6404 if (bt->enable.now != bt->enable.last)
6407 /* reset bt info if bt re-enable */
6408 if (bt->enable.now && !bt->enable.last) {
6411 bt->enable.now = 1;
6414 bt->enable.last = bt->enable.now;
6415 bt->scbd = val;
6416 bt->mbx_avl = !!(val & BTC_BSCB_ACT);
6418 if (bt->whql_test != !!(val & BTC_BSCB_WHQL))
6421 bt->whql_test = !!(val & BTC_BSCB_WHQL);
6422 bt->btg_type = val & BTC_BSCB_BT_S1 ? BTC_BT_BTG : BTC_BT_ALONE;
6423 bt->link_info.a2dp_desc.exist = !!(val & BTC_BSCB_A2DP_ACT);
6425 bt->lna_constrain = !!(val & BTC_BSCB_BT_LNAB0) +
6429 if (bt->rfk_info.map.run && !(val & BTC_BSCB_RFK_RUN))
6432 bt->rfk_info.map.run = !!(val & BTC_BSCB_RFK_RUN);
6433 bt->rfk_info.map.req = !!(val & BTC_BSCB_RFK_REQ);
6434 bt->hi_lna_rx = !!(val & BTC_BSCB_BT_HILNA);
6435 bt->link_info.status.map.connect = !!(val & BTC_BSCB_BT_CONNECT);
6436 bt->run_patch_code = !!(val & BTC_BSCB_PATCH_CODE);
6446 struct rtw89_btc_bt_info *bt = &cx->bt;
6452 if ((bt->rfk_info.map.run || bt->rfk_info.map.req) &&
6453 !bt->rfk_info.map.timeout) {
6470 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
6552 bt->scan_rx_low_pri = false;
6578 if (!cx->bt.enable.now && !cx->other.type) {
6583 if (cx->bt.whql_test) {
6597 bt->scan_rx_low_pri = false;
6604 bt->scan_rx_low_pri = false;
6614 bt->scan_rx_low_pri = true;
6618 bt->scan_rx_low_pri = true;
6622 bt->scan_rx_low_pri = true;
6626 bt->scan_rx_low_pri = true;
6630 bt->scan_rx_low_pri = true;
6641 bt->scan_rx_low_pri = true;
6645 bt->scan_rx_low_pri = true;
6858 struct rtw89_btc_bt_link_info *b = &cx->bt.link_info;
6963 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
6978 rssi_st = &bt->link_info.rssi_state[i];
7013 struct rtw89_btc_bt_info *bt = &cx->bt;
7014 struct rtw89_btc_bt_link_info *b = &bt->link_info;
7024 if (!memcmp(bt->raw_info, buf, BTC_BTINFO_MAX)) {
7026 "[BTC], %s(): return by bt-info duplicate!!\n",
7032 memcpy(bt->raw_info, buf, BTC_BTINFO_MAX);
7036 __func__, bt->raw_info[2]);
7044 bt->inq_pag.last = bt->inq_pag.now;
7049 btinfo.val = bt->raw_info[BTC_BTINFO_L2];
7054 bt->inq_pag.now = btinfo.lb2.inq_pag;
7055 cx->cnt_bt[BTC_BCNT_INQPAG] += !!(bt->inq_pag.now && !bt->inq_pag.last);
7067 btinfo.val = bt->raw_info[BTC_BTINFO_L3];
7071 cx->cnt_bt[BTC_BCNT_INQ] += !!(btinfo.lb3.inq && !bt->inq);
7072 bt->inq = btinfo.lb3.inq;
7073 cx->cnt_bt[BTC_BCNT_PAGE] += !!(btinfo.lb3.pag && !bt->pag);
7074 bt->pag = btinfo.lb3.pag;
7078 btinfo.val = bt->raw_info[BTC_BTINFO_H0];
7081 bt->rssi_level = _update_bt_rssi_level(rtwdev, b->rssi);
7082 btc->dm.trx_info.bt_rssi = bt->rssi_level;
7085 btinfo.val = bt->raw_info[BTC_BTINFO_H1];
7090 cx->cnt_bt[BTC_BCNT_REINIT] += !!(btinfo.hb1.reinit && !bt->reinit);
7091 bt->reinit = btinfo.hb1.reinit;
7094 cx->cnt_bt[BTC_BCNT_IGNOWL] += !!(btinfo.hb1.igno_wl && !bt->igno_wl);
7095 bt->igno_wl = btinfo.hb1.igno_wl;
7097 if (bt->igno_wl && !cx->wl.status.map.rf_off)
7101 bt->ble_scan_en = btinfo.hb1.ble_scan;
7109 btinfo.val = bt->raw_info[BTC_BTINFO_H2];
7122 btinfo.val = bt->raw_info[BTC_BTINFO_H3];
7686 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
7721 bt->ver_info.fw_coex,
7722 (bt->ver_info.fw_coex >= chip->btcx_desired ?
7725 if (bt->enable.now && bt->ver_info.fw == 0)
7737 bt->ver_info.fw, bt->run_patch_code ? "patch" : "ROM");
7880 struct rtw89_btc_bt_link_info *bt_linfo = &btc->cx.bt.link_info;
7933 struct rtw89_btc_bt_info *bt = &cx->bt;
7935 struct rtw89_btc_bt_link_info *bt_linfo = &bt->link_info;
7952 "[status]", bt->enable.now ? "Y" : "N",
7953 bt->btg_type ? "Y" : "N",
7954 (bt->enable.now && (bt->btg_type != bt_pos) ?
7959 bt->igno_wl ? "Y" : "N",
7960 bt->mbx_avl ? "Y" : "N", bt->rfk_info.val);
7983 bt->rssi_level,
8020 "[bt_info]", bt->raw_info[2], bt->raw_info[3],
8021 bt->raw_info[4], bt->raw_info[5], bt->raw_info[6],
8022 bt->raw_info[7],
8023 bt->raw_info[0] == BTC_BTINFO_AUTO ? "auto" : "reply",
8033 if (!bt->scan_info_update) {
8041 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_INQ].win),
8042 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_INQ].intvl),
8043 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_PAGE].win),
8044 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_PAGE].intvl),
8045 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_BLE].win),
8046 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_BLE].intvl),
8047 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_INIT].win),
8048 le16_to_cpu(bt->scan_info_v1[BTC_SCAN_INIT].intvl));
8052 le16_to_cpu(bt->scan_info_v2[CXSCAN_BG].win),
8053 le16_to_cpu(bt->scan_info_v2[CXSCAN_BG].intvl),
8054 le16_to_cpu(bt->scan_info_v2[CXSCAN_INIT].win),
8055 le16_to_cpu(bt->scan_info_v2[CXSCAN_INIT].intvl),
8056 le16_to_cpu(bt->scan_info_v2[CXSCAN_LE].win),
8057 le16_to_cpu(bt->scan_info_v2[CXSCAN_LE].intvl));
8416 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
8466 (bt->hi_lna_rx ? "Hi" : "Ori"), dm->wl_btg_rx);
8471 dm->wl_tx_limit.tx_retry, btc->bt_req_len, bt->scan_rx_low_pri);
8619 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc;
8632 " %-15s : cycle:%d, bcn[all:%d/all_ok:%d/bt:%d/bt_ok:%d]",
8663 seq_printf(m, " %-15s : avg_t[wl:%d/bt:%d/lk:%d.%03d]",
8669 seq_printf(m, ", max_t[wl:%d/bt:%d/lk:%d.%03d]",
8674 seq_printf(m, ", maxdiff_t[wl:%d/bt:%d]\n",
8681 /* 1 cycle record 1 wl-slot and 1 bt-slot */
8745 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc;
8760 " %-15s : cycle:%d, bcn[all:%d/all_ok:%d/bt:%d/bt_ok:%d]",
8787 seq_printf(m, " %-15s : avg_t[wl:%d/bt:%d/lk:%d.%03d]",
8794 ", max_t[wl:%d/bt:%d/lk:%d.%03d]",
8800 ", maxdiff_t[wl:%d/bt:%d]\n",
8808 /* 1 cycle record 1 wl-slot and 1 bt-slot */
8875 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc;
8890 " %-15s : cycle:%d, bcn[all:%d/all_ok:%d/bt:%d/bt_ok:%d]",
8919 seq_printf(m, " %-15s : avg_t[wl:%d/bt:%d/lk:%d.%03d]",
8926 ", max_t[wl:%d/bt:%d/lk:%d.%03d]",
8932 ", maxdiff_t[wl:%d/bt:%d]\n",
8940 /* 1 cycle record 1 wl-slot and 1 bt-slot */
9007 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc;
9022 " %-15s : cycle:%d, bcn[all:%d/all_ok:%d/bt:%d/bt_ok:%d]",
9051 seq_printf(m, " %-15s : avg_t[wl:%d/bt:%d/lk:%d.%03d]",
9058 ", max_t[wl:%d/bt:%d/lk:%d.%03d]\n",
9068 /* 1 cycle record 1 wl-slot and 1 bt-slot */
9137 struct rtw89_btc_bt_info *bt = &rtwdev->btc.cx.bt;
9138 struct rtw89_btc_bt_a2dp_desc *a2dp = &bt->link_info.a2dp_desc;
9172 seq_printf(m, "\n\r %-15s : avg_t[wl:%d/bt:%d/lk:%d.%03d]",
9178 seq_printf(m, ", max_t[wl:%d/bt:%d(>%dms:%d)/lk:%d.%03d]",
9206 /* 1 cycle = 1 wl-slot + 1 bt-slot */
9602 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
9616 bt->scbd, cx->cnt_bt[BTC_BCNT_SCBDREAD],
9680 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
9694 bt->scbd, cx->cnt_bt[BTC_BCNT_SCBDREAD],
9758 struct rtw89_btc_bt_info *bt = &cx->bt;
9772 bt->scbd, cx->cnt_bt[BTC_BCNT_SCBDREAD],
9829 struct rtw89_btc_bt_info *bt = &cx->bt;
9883 bt->rfk_info.map.timeout = 1;
9885 bt->rfk_info.map.timeout = 0;
9887 dm->error.map.wl_rfk_timeout = bt->rfk_info.map.timeout;
9933 struct rtw89_btc_bt_info *bt = &cx->bt;
9995 bt->rfk_info.map.timeout = 1;
9997 bt->rfk_info.map.timeout = 0;
9999 dm->error.map.wl_rfk_timeout = bt->rfk_info.map.timeout;
10374 struct rtw89_btc_bt_info *bt = &cx->bt;
10386 bt->raw_info[2], bt->raw_info[3],
10387 bt->raw_info[4], bt->raw_info[5],
10388 bt->raw_info[6], bt->raw_info[7],
10389 bt->raw_info[0] == BTC_BTINFO_AUTO ? "auto" : "reply",