Lines Matching defs:btc

670 	struct rtw89_btc *btc = &rtwdev->btc;
671 struct rtw89_btc_btf_fwinfo *pfwinfo = &btc->fwinfo;
672 struct rtw89_btc_cx *cx = &btc->cx;
678 "[BTC], %s(): return by btc not init!!\n", __func__);
701 struct rtw89_btc *btc = &rtwdev->btc;
702 struct rtw89_btc_cx *cx = &btc->cx;
703 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
704 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
717 memset(&btc->ctrl, 0, sizeof(btc->ctrl));
718 btc->ctrl.trace_step = FCXDEF_STEP;
723 memset(&btc->dm, 0, sizeof(btc->dm));
731 btc->dm.tdma_now = t_def[CXTD_OFF];
732 btc->dm.tdma = t_def[CXTD_OFF];
733 memcpy(&btc->dm.slot_now, s_def, sizeof(btc->dm.slot_now));
734 memcpy(&btc->dm.slot, s_def, sizeof(btc->dm.slot));
736 btc->policy_len = 0;
737 btc->bt_req_len = 0;
739 btc->dm.coex_info_map = BTC_COEX_INFO_ALL;
740 btc->dm.wl_tx_limit.tx_time = BTC_MAX_TX_TIME_DEF;
741 btc->dm.wl_tx_limit.tx_retry = BTC_MAX_TX_RETRY_DEF;
745 memset(&btc->mdinfo, 0, sizeof(btc->mdinfo));
755 struct rtw89_btc *btc = &rtwdev->btc;
756 struct rtw89_btc_cx *cx = &btc->cx;
757 struct rtw89_btc_dm *dm = &btc->dm;
766 if (dm->cnt_dm[BTC_DCNT_RPT] == cnt && btc->fwinfo.rpt_en_map)
901 struct rtw89_btc *btc = &rtwdev->btc;
902 const struct rtw89_btc_ver *ver = btc->ver;
903 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
992 struct rtw89_btc *btc = &rtwdev->btc;
993 const struct rtw89_btc_ver *ver = btc->ver;
994 struct rtw89_btc_dm *dm = &btc->dm;
996 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
997 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
1004 u32 trace_step = btc->ctrl.trace_step, rpt_len = 0, diff_t = 0;
1209 btc->fwinfo.rpt_en_map = prpt->v1.rpt_enable;
1223 btc->cx.cnt_bt[BTC_BCNT_POLUT] =
1229 btc->fwinfo.rpt_en_map = le32_to_cpu(prpt->v4.rpt_info.en);
1238 btc->cx.cnt_bt[BTC_BCNT_HIPRI_TX] =
1240 btc->cx.cnt_bt[BTC_BCNT_HIPRI_RX] =
1242 btc->cx.cnt_bt[BTC_BCNT_LOPRI_TX] =
1244 btc->cx.cnt_bt[BTC_BCNT_LOPRI_RX] =
1246 btc->cx.cnt_bt[BTC_BCNT_POLUT] =
1270 btc->cx.cnt_bt[BTC_BCNT_HIPRI_TX] =
1272 btc->cx.cnt_bt[BTC_BCNT_HIPRI_RX] =
1274 btc->cx.cnt_bt[BTC_BCNT_LOPRI_TX] =
1276 btc->cx.cnt_bt[BTC_BCNT_LOPRI_RX] =
1278 btc->cx.cnt_bt[BTC_BCNT_POLUT] =
1297 btc->cx.cnt_bt[BTC_BCNT_HIPRI_TX] =
1299 btc->cx.cnt_bt[BTC_BCNT_HIPRI_RX] =
1301 btc->cx.cnt_bt[BTC_BCNT_LOPRI_TX] =
1303 btc->cx.cnt_bt[BTC_BCNT_LOPRI_RX] =
1305 btc->cx.cnt_bt[BTC_BCNT_POLUT] =
1403 btc->bt_req_len != 0) {
1405 if (btc->bt_req_len > bt_slot_real) {
1406 diff_t = btc->bt_req_len - bt_slot_real;
1444 btc->bt_req_len != 0) {
1447 if (btc->bt_req_len > bt_slot_real) {
1448 diff_t = btc->bt_req_len - bt_slot_real;
1486 bt_slot_set = btc->bt_req_len;
1530 const struct rtw89_btc_ver *ver = rtwdev->btc.ver;
1558 struct rtw89_btc *btc = &rtwdev->btc;
1559 const struct rtw89_btc_ver *ver = btc->ver;
1560 struct rtw89_btc_dm *dm = &btc->dm;
1564 u16 len = btc->policy_len;
1566 if (!btc->update_policy_force &&
1574 tlv = (struct rtw89_btc_btf_tlv *)&btc->policy[len];
1580 btc->policy_len += BTC_TLV_HDR_LEN + sizeof(*v);
1586 btc->policy_len += BTC_TLV_HDR_LEN + sizeof(*v3);
1598 struct rtw89_btc *btc = &rtwdev->btc;
1599 struct rtw89_btc_dm *dm = &btc->dm;
1606 "[BTC], %s(): A:btc->policy_len = %d\n",
1607 __func__, btc->policy_len);
1610 if (!btc->update_policy_force &&
1615 len = btc->policy_len;
1617 tlv = (struct rtw89_btc_btf_tlv *)&btc->policy[len];
1632 btc->policy_len += BTC_TLV_HDR_LEN + sizeof(*v);
1643 struct rtw89_btc *btc = &rtwdev->btc;
1644 const struct rtw89_btc_ver *ver = btc->ver;
1789 struct rtw89_btc *btc = &rtwdev->btc;
1790 struct rtw89_btc_wl_smap *wl_smap = &btc->cx.wl.status.map;
1791 struct rtw89_btc_btf_fwinfo *fwinfo = &btc->fwinfo;
1846 const struct rtw89_btc_ver *ver = rtwdev->btc.ver;
1891 struct rtw89_btc *btc = &rtwdev->btc;
1892 struct rtw89_btc_dm *dm = &btc->dm;
1907 struct rtw89_btc *btc = &rtwdev->btc;
1908 struct rtw89_btc_dm *dm = &btc->dm;
1915 btc->policy_len = 0;
1916 btc->policy_type = policy_type;
1921 if (btc->policy_len == 0 || btc->policy_len > RTW89_BTC_POLICY_MAXLEN)
1926 __func__, action, policy_type, btc->policy_len);
1930 btc->lps = 1;
1932 btc->lps = 0;
1934 if (btc->lps == 1)
1935 rtw89_set_coex_ctrl_lps(rtwdev, btc->lps);
1938 btc->policy, btc->policy_len);
1943 if (btc->update_policy_force)
1944 btc->update_policy_force = false;
1946 if (btc->lps == 0)
1947 rtw89_set_coex_ctrl_lps(rtwdev, btc->lps);
1952 struct rtw89_btc *btc = &rtwdev->btc;
1953 const struct rtw89_btc_ver *ver = btc->ver;
1954 struct rtw89_btc_dm *dm = &btc->dm;
1955 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
1997 struct rtw89_btc *btc = &rtwdev->btc;
1998 struct rtw89_btc_btf_fwinfo *pfwinfo = &btc->fwinfo;
2018 struct rtw89_btc *btc = &rtwdev->btc;
2019 struct rtw89_btc_dm *dm = &btc->dm;
2086 struct rtw89_btc *btc = &rtwdev->btc;
2087 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
2094 btc->dm.rf_trx_para.wl_tx_power = level;
2118 struct rtw89_btc *btc = &rtwdev->btc;
2119 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
2125 btc->dm.rf_trx_para.wl_rx_gain = level;
2136 struct rtw89_btc *btc = &rtwdev->btc;
2137 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
2144 btc->dm.rf_trx_para.bt_tx_power = level;
2158 struct rtw89_btc *btc = &rtwdev->btc;
2159 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
2166 btc->dm.rf_trx_para.bt_rx_gain = level;
2183 struct rtw89_btc *btc = &rtwdev->btc;
2184 struct rtw89_btc_dm *dm = &btc->dm;
2185 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
2186 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
2194 if ((btc->dm.wl_btg_rx && b->profile_cnt.now != 0) ||
2242 struct rtw89_btc *btc = &rtwdev->btc;
2243 struct rtw89_btc_cx *cx = &btc->cx;
2269 struct rtw89_btc *btc = &rtwdev->btc;
2270 const struct rtw89_btc_ver *ver = btc->ver;
2271 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
2272 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
2283 if (btc->ctrl.manual || wl->status.map.scan)
2396 btc->cx.cnt_wl[BTC_WCNT_CH_UPDATE]++;
2401 struct rtw89_btc *btc = &rtwdev->btc;
2402 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
2403 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
2409 if (btc->mdinfo.ant.type == BTC_ANT_SHARED) {
2410 btc->dm.trx_para_level = 0;
2417 btc->dm.trx_para_level = 5;
2422 btc->dm.trx_para_level = 5;
2427 btc->dm.trx_para_level = 5;
2432 if (btc->mdinfo.ant.isolation >= BTC_FREERUN_ANTISO_MIN) {
2433 btc->dm.trx_para_level = 5;
2438 btc->dm.trx_para_level = 5;
2441 btc->dm.trx_para_level = 0;
2445 btc->dm.trx_para_level = 6;
2448 btc->dm.trx_para_level = 7;
2451 btc->dm.trx_para_level = 0;
2455 btc->dm.trx_para_level = 6;
2460 btc->dm.trx_para_level = 0;
2464 #define _tdma_set_flctrl(btc, flc) ({(btc)->dm.tdma.rxflctrl = flc; })
2465 #define _tdma_set_flctrl_role(btc, role) ({(btc)->dm.tdma.rxflctrl_role = role; })
2466 #define _tdma_set_tog(btc, wtg) ({(btc)->dm.tdma.wtgle_n = wtg; })
2467 #define _tdma_set_lek(btc, lek) ({(btc)->dm.tdma.leak_n = lek; })
2469 #define _slot_set(btc, sid, dura, tbl, type) \
2472 typeof(btc) _btc = (btc); \
2478 #define _slot_set_dur(btc, sid, dura) (btc)->dm.slot[sid].dur = cpu_to_le16(dura)
2479 #define _slot_set_tbl(btc, sid, tbl) (btc)->dm.slot[sid].cxtbl = cpu_to_le32(tbl)
2480 #define _slot_set_type(btc, sid, type) (btc)->dm.slot[sid].cxtype = cpu_to_le16(type)
2553 struct rtw89_btc *btc = &rtwdev->btc;
2554 struct rtw89_btc_dm *dm = &btc->dm;
2560 if (btc->mdinfo.ant.type == BTC_ANT_SHARED) {
2561 if (btc->cx.wl.status.map._4way)
2574 btc->bt_req_en = false;
2580 _slot_set_tbl(btc, CXST_OFF, cxtbl[2]);
2581 btc->update_policy_force = true;
2590 _slot_set_tbl(btc, CXST_OFF, cxtbl[2]);
2593 _slot_set_tbl(btc, CXST_OFF, cxtbl[1]);
2596 _slot_set_tbl(btc, CXST_OFF, cxtbl[0]);
2599 _slot_set_tbl(btc, CXST_OFF, cxtbl[16]);
2602 _slot_set_tbl(btc, CXST_OFF, cxtbl[17]);
2605 _slot_set_tbl(btc, CXST_OFF, cxtbl[18]);
2608 _slot_set_tbl(btc, CXST_OFF, cxtbl[5]);
2611 _slot_set_tbl(btc, CXST_OFF, cxtbl[8]);
2614 _slot_set_tbl(btc, CXST_OFF, cxtbl[6]);
2624 _slot_set_tbl(btc, CXST_OFF, cxtbl[8]);
2629 btc->bt_req_en = true;
2640 _slot_set(btc, CXST_E2G, 20, cxtbl[1], SLOT_ISO);
2652 _slot_set(btc, CXST_W1, 30, tbl_w1, SLOT_ISO);
2653 _slot_set(btc, CXST_B1, 30, tbl_b1, SLOT_MIX);
2656 _slot_set(btc, CXST_W1, 50, tbl_w1, SLOT_ISO);
2657 _slot_set(btc, CXST_B1, 50, tbl_b1, SLOT_MIX);
2660 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
2661 _slot_set(btc, CXST_B1, 30, tbl_b1, SLOT_MIX);
2664 _slot_set(btc, CXST_W1, 40, tbl_w1, SLOT_ISO);
2665 _slot_set(btc, CXST_B1, 10, tbl_b1, SLOT_MIX);
2668 _slot_set(btc, CXST_W1, 40, cxtbl[1], SLOT_MIX);
2669 _slot_set(btc, CXST_B1, 20, tbl_b1, SLOT_MIX);
2672 _slot_set(btc, CXST_W1, 70, tbl_w1, SLOT_ISO);
2673 _slot_set(btc, CXST_B1, 10, tbl_b1, SLOT_MIX);
2676 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
2677 _slot_set(btc, CXST_B1, 60, tbl_b1, SLOT_MIX);
2680 _slot_set(btc, CXST_W1, 30, tbl_w1, SLOT_ISO);
2681 _slot_set(btc, CXST_B1, 60, tbl_b1, SLOT_MIX);
2684 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
2685 _slot_set(btc, CXST_B1, 80, tbl_b1, SLOT_MIX);
2688 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1],
2690 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1],
2698 if (btc->cx.wl.role_info.role_map.role.ap)
2699 _tdma_set_flctrl(btc, CXFLC_QOSNULL);
2703 _slot_set(btc, CXST_W1, 30, tbl_w1, SLOT_ISO);
2704 _slot_set(btc, CXST_B1, 30, tbl_b1, SLOT_MIX);
2707 _slot_set(btc, CXST_W1, 50, tbl_w1, SLOT_ISO);
2708 _slot_set(btc, CXST_B1, 50, tbl_b1, SLOT_MIX);
2711 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
2712 _slot_set(btc, CXST_B1, 30, tbl_b1, SLOT_MIX);
2715 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
2716 _slot_set(btc, CXST_B1, 60, tbl_b1, SLOT_MIX);
2719 _slot_set(btc, CXST_W1, 30, tbl_w1, SLOT_ISO);
2720 _slot_set(btc, CXST_B1, 60, tbl_b1, SLOT_MIX);
2723 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
2724 _slot_set(btc, CXST_B1, 80, tbl_b1, SLOT_MIX);
2733 _slot_set(btc, CXST_W1, 50, tbl_w1, SLOT_ISO);
2734 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
2737 _slot_set(btc, CXST_W1, 60, tbl_w1, SLOT_ISO);
2738 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
2741 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
2742 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
2745 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1],
2747 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1],
2757 _slot_set(btc, CXST_W1, 50, tbl_w1, SLOT_ISO);
2758 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
2761 _slot_set(btc, CXST_W1, 60, tbl_w1, SLOT_ISO);
2762 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
2765 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
2766 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
2769 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1],
2771 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1],
2781 _slot_set(btc, CXST_W1, 30, tbl_w1, SLOT_ISO);
2782 _slot_set(btc, CXST_B4, 50, tbl_b4, SLOT_MIX);
2783 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
2786 _slot_set(btc, CXST_W1, 30, tbl_w1, SLOT_ISO);
2787 _slot_set(btc, CXST_B4, 70, tbl_b4, SLOT_MIX);
2788 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
2791 _slot_set(btc, CXST_W1, 50, tbl_w1, SLOT_ISO);
2792 _slot_set(btc, CXST_B4, 50, tbl_b4, SLOT_MIX);
2793 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
2796 _slot_set(btc, CXST_W1, 60, tbl_w1, SLOT_ISO);
2797 _slot_set(btc, CXST_B4, 60, tbl_b4, SLOT_MIX);
2798 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
2801 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
2802 _slot_set(btc, CXST_B4, 80, tbl_b4, SLOT_MIX);
2803 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
2806 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1],
2808 _slot_set(btc, CXST_B4, dm->slot_dur[CXST_B4],
2818 _slot_set(btc, CXST_W1, 30, tbl_w1, SLOT_ISO);
2819 _slot_set(btc, CXST_B4, 50, tbl_b4, SLOT_MIX);
2820 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
2823 _slot_set(btc, CXST_W1, 30, tbl_w1, SLOT_ISO);
2824 _slot_set(btc, CXST_B4, 70, tbl_b4, SLOT_MIX);
2825 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
2828 _slot_set(btc, CXST_W1, 50, tbl_w1, SLOT_ISO);
2829 _slot_set(btc, CXST_B4, 50, tbl_b4, SLOT_MIX);
2830 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
2833 _slot_set(btc, CXST_W1, 60, tbl_w1, SLOT_ISO);
2834 _slot_set(btc, CXST_B4, 60, tbl_b4, SLOT_MIX);
2835 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
2838 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
2839 _slot_set(btc, CXST_B4, 80, tbl_b4, SLOT_MIX);
2840 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
2843 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1],
2845 _slot_set(btc, CXST_B4, dm->slot_dur[CXST_B4],
2856 struct rtw89_btc *btc = &rtwdev->btc;
2857 struct rtw89_btc_dm *dm = &btc->dm;
2860 struct rtw89_btc_wl_role_info_v1 *wl_rinfo = &btc->cx.wl.role_info_v1;
2861 struct rtw89_btc_bt_hid_desc *hid = &btc->cx.bt.link_info.hid_desc;
2862 struct rtw89_btc_bt_hfp_desc *hfp = &btc->cx.bt.link_info.hfp_desc;
2868 if (btc->mdinfo.ant.type == BTC_ANT_SHARED) {
2869 if (btc->cx.wl.status.map._4way)
2893 btc->bt_req_en = false;
2897 btc->update_policy_force = true;
2900 _slot_set_tbl(btc, CXST_OFF, cxtbl[2]);
2909 _slot_set_tbl(btc, CXST_OFF, cxtbl[2]);
2912 _slot_set_tbl(btc, CXST_OFF, cxtbl[1]);
2915 _slot_set_tbl(btc, CXST_OFF, cxtbl[0]);
2916 _slot_set_type(btc, CXST_OFF, SLOT_ISO);
2919 _slot_set_tbl(btc, CXST_OFF, cxtbl[16]);
2922 _slot_set_tbl(btc, CXST_OFF, cxtbl[0]);
2925 _slot_set_tbl(btc, CXST_OFF, cxtbl[24]);
2928 _slot_set_tbl(btc, CXST_OFF, cxtbl[5]);
2931 _slot_set_tbl(btc, CXST_OFF, cxtbl[8]);
2934 _slot_set_tbl(btc, CXST_OFF, cxtbl[7]);
2937 _slot_set_tbl(btc, CXST_OFF, cxtbl[6]);
2950 _slot_set_tbl(btc, CXST_OFF, cxtbl[8]);
2957 btc->bt_req_en = true;
2973 _slot_set(btc, CXST_E2G, 20, cxtbl[1], SLOT_ISO);
2989 _slot_set(btc, CXST_W1, 30, tbl_w1, SLOT_ISO);
2990 _slot_set(btc, CXST_B1, 30, tbl_b1, SLOT_MIX);
2993 _slot_set(btc, CXST_W1, 50, tbl_w1, SLOT_ISO);
2994 _slot_set(btc, CXST_B1, 50, tbl_b1, SLOT_MIX);
2997 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
2998 _slot_set(btc, CXST_B1, 30, tbl_b1, SLOT_MIX);
3001 _slot_set(btc, CXST_W1, 40, tbl_w1, SLOT_ISO);
3002 _slot_set(btc, CXST_B1, 10, tbl_b1, SLOT_MIX);
3005 _slot_set(btc, CXST_W1, 40, cxtbl[1], SLOT_ISO);
3006 _slot_set(btc, CXST_B1, 10, tbl_b1, SLOT_MIX);
3009 _slot_set(btc, CXST_W1, 40, cxtbl[1], SLOT_MIX);
3010 _slot_set(btc, CXST_B1, 20, tbl_b1, SLOT_MIX);
3013 _slot_set(btc, CXST_W1, 70, tbl_w1, SLOT_ISO);
3014 _slot_set(btc, CXST_B1, 10, tbl_b1, SLOT_MIX);
3017 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
3018 _slot_set(btc, CXST_B1, 60, tbl_b1, SLOT_MIX);
3021 _slot_set(btc, CXST_W1, 30, tbl_w1, SLOT_ISO);
3022 _slot_set(btc, CXST_B1, 60, tbl_b1, SLOT_MIX);
3025 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
3026 _slot_set(btc, CXST_B1, 80, tbl_b1, SLOT_MIX);
3029 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1],
3031 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1],
3044 _slot_set(btc, CXST_W1, 30, tbl_w1, SLOT_ISO);
3045 _slot_set(btc, CXST_B1, 30, tbl_b1, SLOT_MIX);
3048 _slot_set(btc, CXST_W1, 50, tbl_w1, SLOT_ISO);
3049 _slot_set(btc, CXST_B1, 50, tbl_b1, SLOT_MIX);
3052 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
3053 _slot_set(btc, CXST_B1, 30, tbl_b1, SLOT_MIX);
3056 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
3057 _slot_set(btc, CXST_B1, 60, tbl_b1, SLOT_MIX);
3060 _slot_set(btc, CXST_W1, 30, tbl_w1, SLOT_ISO);
3061 _slot_set(btc, CXST_B1, 60, tbl_b1, SLOT_MIX);
3064 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
3065 _slot_set(btc, CXST_B1, 80, tbl_b1, SLOT_MIX);
3068 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1],
3070 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1],
3083 _slot_set(btc, CXST_W1, 50, tbl_w1, SLOT_ISO);
3084 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
3087 _slot_set(btc, CXST_W1, 60, tbl_w1, SLOT_ISO);
3088 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
3091 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
3092 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
3095 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1],
3097 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1],
3110 _slot_set(btc, CXST_W1, 50, tbl_w1, SLOT_ISO);
3111 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
3114 _slot_set(btc, CXST_W1, 60, tbl_w1, SLOT_ISO);
3115 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
3118 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
3119 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
3122 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1],
3124 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1],
3137 _slot_set(btc, CXST_W1, 30, tbl_w1, SLOT_ISO);
3138 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
3139 _slot_set(btc, CXST_B4, 50, tbl_b4, SLOT_MIX);
3142 _slot_set(btc, CXST_W1, 30, tbl_w1, SLOT_ISO);
3143 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
3144 _slot_set(btc, CXST_B4, 70, tbl_b4, SLOT_MIX);
3147 _slot_set(btc, CXST_W1, 50, tbl_w1, SLOT_ISO);
3148 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
3149 _slot_set(btc, CXST_B4, 50, tbl_b4, SLOT_MIX);
3152 _slot_set(btc, CXST_W1, 60, tbl_w1, SLOT_ISO);
3153 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
3154 _slot_set(btc, CXST_B4, 60, tbl_b4, SLOT_MIX);
3157 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
3158 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
3159 _slot_set(btc, CXST_B4, 80, tbl_b4, SLOT_MIX);
3162 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1],
3164 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1],
3166 _slot_set(btc, CXST_B4, dm->slot_dur[CXST_B4],
3179 _slot_set(btc, CXST_W1, 30, tbl_w1, SLOT_ISO);
3180 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
3181 _slot_set(btc, CXST_B4, 50, tbl_b4, SLOT_MIX);
3184 _slot_set(btc, CXST_W1, 30, tbl_w1, SLOT_ISO);
3185 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
3186 _slot_set(btc, CXST_B4, 70, tbl_b4, SLOT_MIX);
3189 _slot_set(btc, CXST_W1, 50, tbl_w1, SLOT_ISO);
3190 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
3191 _slot_set(btc, CXST_B4, 50, tbl_b4, SLOT_MIX);
3194 _slot_set(btc, CXST_W1, 60, tbl_w1, SLOT_ISO);
3195 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
3196 _slot_set(btc, CXST_B4, 60, tbl_b4, SLOT_MIX);
3199 _slot_set(btc, CXST_W1, 20, tbl_w1, SLOT_ISO);
3200 _slot_set(btc, CXST_B1, BTC_B1_MAX, tbl_b1, SLOT_MIX);
3201 _slot_set(btc, CXST_B4, 80, tbl_b4, SLOT_MIX);
3204 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1],
3206 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1],
3208 _slot_set(btc, CXST_B4, dm->slot_dur[CXST_B4],
3220 _tdma_set_flctrl_role(btc, null_role);
3225 _tdma_set_lek(btc, 1);
3228 btc->dm.tdma.option_ctrl |= BIT(0);
3229 btc->update_policy_force = true;
3257 struct rtw89_btc *btc = &rtwdev->btc;
3258 struct rtw89_btc_dm *dm = &btc->dm;
3259 struct rtw89_btc_cx *cx = &btc->cx;
3260 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
3268 if (btc->dm.run_reason == BTC_RSN_NTFY_POWEROFF ||
3269 btc->dm.run_reason == BTC_RSN_NTFY_RADIO_STATE ||
3270 btc->dm.run_reason == BTC_RSN_CMD_SET_COEX)
3282 } else if (btc->dm.run_reason != BTC_RSN_NTFY_WL_RFK &&
3389 struct rtw89_btc *btc = &rtwdev->btc;
3390 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
3394 if (wl->status.map.rf_off || btc->dm.bt_only)
3402 struct rtw89_btc *btc = &rtwdev->btc;
3409 btc->dm.freerun = true;
3430 struct rtw89_btc *btc = &rtwdev->btc;
3431 struct rtw89_btc_bt_link_info *b = &btc->cx.bt.link_info;
3435 if (btc->mdinfo.ant.type == BTC_ANT_SHARED) { /* shared-antenna */
3436 switch (btc->cx.state_map) {
3476 struct rtw89_btc *btc = &rtwdev->btc;
3477 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
3481 if (btc->mdinfo.ant.type == BTC_ANT_SHARED) {
3482 if (btc->cx.wl.status.map._4way) {
3485 btc->cx.bt.scan_rx_low_pri = true;
3498 struct rtw89_btc *btc = &rtwdev->btc;
3499 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
3500 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
3506 if (btc->mdinfo.ant.type == BTC_ANT_SHARED) { /* shared-antenna */
3510 btc->cx.bt.scan_rx_low_pri = true;
3532 struct rtw89_btc *btc = &rtwdev->btc;
3533 struct rtw89_btc_bt_link_info *bt_linfo = &btc->cx.bt.link_info;
3535 struct rtw89_btc_dm *dm = &btc->dm;
3539 switch (btc->cx.state_map) {
3577 struct rtw89_btc *btc = &rtwdev->btc;
3581 switch (btc->cx.state_map) {
3605 struct rtw89_btc *btc = &rtwdev->btc;
3609 switch (btc->cx.state_map) {
3633 struct rtw89_btc *btc = &rtwdev->btc;
3634 struct rtw89_btc_bt_link_info *bt_linfo = &btc->cx.bt.link_info;
3636 struct rtw89_btc_dm *dm = &btc->dm;
3640 switch (btc->cx.state_map) {
3677 struct rtw89_btc *btc = &rtwdev->btc;
3681 switch (btc->cx.state_map) {
3705 struct rtw89_btc *btc = &rtwdev->btc;
3709 switch (btc->cx.state_map) {
3733 struct rtw89_btc *btc = &rtwdev->btc;
3737 switch (btc->cx.state_map) {
3770 struct rtw89_btc *btc = &rtwdev->btc;
3774 if (btc->mdinfo.ant.type == BTC_ANT_SHARED)
3788 struct rtw89_btc *btc = &rtwdev->btc;
3789 struct rtw89_btc_wl_rfk_info rfk = btc->cx.wl.rfk_info;
3803 struct rtw89_btc *btc = &rtwdev->btc;
3804 const struct rtw89_btc_ver *ver = btc->ver;
3805 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
3813 if (btc->ctrl.manual)
3834 if (btc->dm.run_reason != BTC_RSN_NTFY_INIT &&
3835 is_btg == btc->dm.wl_btg_rx)
3838 btc->dm.wl_btg_rx = is_btg;
3862 struct rtw89_btc *btc = &rtwdev->btc;
3863 struct rtw89_btc_cx *cx = &btc->cx;
3913 struct rtw89_btc *btc = &rtwdev->btc;
3914 const struct rtw89_btc_ver *ver = btc->ver;
3915 struct rtw89_btc_cx *cx = &btc->cx;
3916 struct rtw89_btc_dm *dm = &btc->dm;
3932 if (btc->ctrl.manual)
3944 if (btc->dm.freerun || btc->ctrl.igno_bt || b->profile_cnt.now == 0 ||
3987 struct rtw89_btc *btc = &rtwdev->btc;
3988 const struct rtw89_btc_ver *ver = btc->ver;
3989 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
3993 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
4006 if (mode != BTC_WLINK_NOLINK && btc->dm.wl_btg_rx)
4017 struct rtw89_btc *btc = &rtwdev->btc;
4018 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
4026 struct rtw89_btc *btc = &rtwdev->btc;
4027 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
4041 btc->cx.cnt_wl[BTC_WCNT_SCBDUPDATE]++;
4043 btc->dm.tdma_instant_excute = 0;
4048 struct rtw89_btc *btc = &rtwdev->btc;
4049 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
4134 struct rtw89_btc *btc = &rtwdev->btc;
4135 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
4140 if (btc->mdinfo.ant.type == BTC_ANT_SHARED)
4164 struct rtw89_btc *btc = &rtwdev->btc;
4168 if (btc->mdinfo.ant.type == BTC_ANT_SHARED) {
4169 if (btc->cx.bt.link_info.profile_cnt.now == 0)
4181 { struct rtw89_btc *btc = &rtwdev->btc;
4185 if (btc->mdinfo.ant.type == BTC_ANT_SHARED) { /* shared-antenna */
4186 if (btc->cx.bt.link_info.profile_cnt.now == 0)
4199 struct rtw89_btc *btc = &rtwdev->btc;
4203 if (btc->mdinfo.ant.type == BTC_ANT_SHARED) { /* shared-antenna */
4204 if (btc->cx.bt.link_info.profile_cnt.now == 0)
4217 struct rtw89_btc *btc = &rtwdev->btc;
4218 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
4219 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
4220 struct rtw89_btc_dm *dm = &btc->dm;
4225 if (btc->mdinfo.ant.type == BTC_ANT_DEDICATED) {
4256 dur < btc->bt_req_len) {
4279 struct rtw89_btc *btc = &rtwdev->btc;
4280 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
4281 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
4282 struct rtw89_btc_dm *dm = &btc->dm;
4287 if (btc->mdinfo.ant.type == BTC_ANT_DEDICATED) {
4318 dur < btc->bt_req_len) {
4341 struct rtw89_btc *btc = &rtwdev->btc;
4345 if (btc->mdinfo.ant.type == BTC_ANT_SHARED) {
4346 if (btc->cx.bt.link_info.profile_cnt.now == 0)
4358 struct rtw89_btc *btc = &rtwdev->btc;
4362 if (btc->mdinfo.ant.type == BTC_ANT_SHARED) { /* shared-antenna */
4363 if (btc->cx.bt.link_info.profile_cnt.now == 0)
4376 struct rtw89_btc *btc = &rtwdev->btc;
4380 if (btc->mdinfo.ant.type == BTC_ANT_SHARED) { /* shared-antenna */
4389 struct rtw89_btc *btc = &rtwdev->btc;
4393 if (btc->mdinfo.ant.type == BTC_ANT_SHARED) { /* shared-antenna */
4394 if (btc->cx.bt.link_info.profile_cnt.now == 0)
4408 struct rtw89_btc *btc = &rtwdev->btc;
4418 btc->cx.cnt_bt[BTC_BCNT_SCBDREAD]++;
4425 struct rtw89_btc *btc = &rtwdev->btc;
4426 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
4469 struct rtw89_btc *btc = &rtwdev->btc;
4471 btc->cx.wl.dbcc_info.real_band[phy_idx] =
4472 btc->cx.wl.scan_info.phy_map & BIT(phy_idx) ?
4473 btc->cx.wl.dbcc_info.scan_band[phy_idx] :
4474 btc->cx.wl.dbcc_info.op_band[phy_idx];
4479 struct rtw89_btc *btc = &rtwdev->btc;
4480 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
4630 struct rtw89_btc *btc = &rtwdev->btc;
4631 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
4780 struct rtw89_btc *btc = &rtwdev->btc;
4781 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
4935 struct rtw89_btc *btc = &rtwdev->btc;
4936 struct rtw89_btc_dm *dm = &rtwdev->btc.dm;
4937 struct rtw89_btc_cx *cx = &btc->cx;
4956 struct rtw89_btc *btc = &rtwdev->btc;
4957 struct rtw89_btc_dm *dm = &rtwdev->btc.dm;
4958 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc;
4972 struct rtw89_btc *btc = &rtwdev->btc;
4973 struct rtw89_btc_dm *dm = &rtwdev->btc.dm;
4974 struct rtw89_btc_cx *cx = &btc->cx;
4995 struct rtw89_btc *btc = &rtwdev->btc;
4996 struct rtw89_btc_cx *cx = &btc->cx;
4997 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
5015 btc->dm.cnt_dm[BTC_DCNT_BTCNT_HANG] >= BTC_CHK_HANG_MAX)
5057 struct rtw89_btc *btc = &rtwdev->btc;
5058 struct rtw89_btc_cx *cx = &btc->cx;
5078 struct rtw89_btc *btc = &rtwdev->btc;
5079 const struct rtw89_btc_ver *ver = btc->ver;
5080 struct rtw89_btc_dm *dm = &rtwdev->btc.dm;
5081 struct rtw89_btc_cx *cx = &btc->cx;
5082 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
5083 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
5110 if (btc->ctrl.manual) {
5117 if (btc->ctrl.igno_bt &&
5146 if (btc->ctrl.always_freerun) {
5148 btc->ctrl.igno_bt = true;
5154 btc->ctrl.igno_bt = true;
5160 btc->ctrl.igno_bt = true;
5164 btc->ctrl.igno_bt = false;
5257 struct rtw89_btc *btc = &rtwdev->btc;
5260 btc->dm.cnt_notify[BTC_NCNT_POWER_ON]++;
5265 struct rtw89_btc *btc = &rtwdev->btc;
5266 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
5269 btc->dm.cnt_notify[BTC_NCNT_POWER_OFF]++;
5271 btc->cx.wl.status.map.rf_off = 1;
5272 btc->cx.wl.status.map.busy = 0;
5280 btc->cx.wl.status.map.rf_off_pre = btc->cx.wl.status.map.rf_off;
5286 struct rtw89_btc *btc = &rtwdev->btc;
5287 struct rtw89_btc_dm *dm = &btc->dm;
5288 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
5294 dm->init_info.cx_other = btc->cx.other.type;
5296 dm->init_info.module = btc->mdinfo;
5301 struct rtw89_btc *btc = &rtwdev->btc;
5302 struct rtw89_btc_dm *dm = &rtwdev->btc.dm;
5303 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
5307 btc->dm.run_reason = BTC_RSN_NONE;
5308 btc->dm.run_action = BTC_ACT_NONE;
5309 btc->ctrl.igno_bt = true;
5352 struct rtw89_btc *btc = &rtwdev->btc;
5353 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
5358 btc->dm.cnt_notify[BTC_NCNT_SCAN_START]++;
5375 struct rtw89_btc *btc = &rtwdev->btc;
5376 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
5380 btc->dm.cnt_notify[BTC_NCNT_SCAN_FINISH]++;
5396 struct rtw89_btc *btc = &rtwdev->btc;
5397 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
5402 btc->dm.cnt_notify[BTC_NCNT_SWITCH_BAND]++;
5419 struct rtw89_btc *btc = &rtwdev->btc;
5420 struct rtw89_btc_cx *cx = &btc->cx;
5476 btc->dm.cnt_notify[BTC_NCNT_SPECIAL_PACKET]++;
5483 btc.eapol_notify_work);
5494 btc.arp_notify_work);
5504 btc.dhcp_notify_work);
5515 btc.icmp_notify_work);
5528 struct rtw89_btc *btc = &rtwdev->btc;
5529 struct rtw89_btc_cx *cx = &btc->cx;
5581 btc->dm.trx_info.bt_profile = u32_get_bits(btinfo.val, BT_PROFILE_PROTOCOL_MASK);
5598 btc->dm.trx_info.bt_rssi = b->rssi;
5673 struct rtw89_btc *btc = &rtwdev->btc;
5674 const struct rtw89_btc_ver *ver = btc->ver;
5675 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
5733 btc->dm.cnt_notify[BTC_NCNT_ROLE_INFO]++;
5747 btc->dm.leak_ap = 0;
5763 struct rtw89_btc *btc = &rtwdev->btc;
5764 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
5769 btc->dm.cnt_notify[BTC_NCNT_RADIO_STATE]++;
5809 btc->dm.cnt_dm[BTC_DCNT_BTCNT_HANG] = 0;
5812 btc->dm.tdma_instant_excute = 1;
5814 btc->dm.tdma_instant_excute = 0;
5817 btc->dm.tdma_instant_excute = 0;
5826 struct rtw89_btc *btc = &rtwdev->btc;
5827 struct rtw89_btc_cx *cx = &btc->cx;
5848 btc->dm.cnt_notify[BTC_NCNT_WL_RFK]++;
5885 __func__, btc->dm.cnt_notify[BTC_NCNT_WL_RFK], result);
5940 struct rtw89_btc *btc = &rtwdev->btc;
5941 struct rtw89_btc_dm *dm = &btc->dm;
5942 const struct rtw89_btc_ver *ver = btc->ver;
5943 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
5984 if (btc->mdinfo.ant.type == BTC_ANT_DEDICATED &&
6067 struct rtw89_btc *btc = &rtwdev->btc;
6068 struct rtw89_btc_dm *dm = &btc->dm;
6069 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
6078 btc->dm.cnt_notify[BTC_NCNT_WL_STA]++;
6101 } else if (btc->dm.cnt_notify[BTC_NCNT_WL_STA] >=
6102 btc->dm.cnt_dm[BTC_DCNT_WL_STA_LAST] + BTC_NHM_CHK_INTVL) {
6103 btc->dm.cnt_dm[BTC_DCNT_WL_STA_LAST] =
6104 btc->dm.cnt_notify[BTC_NCNT_WL_STA];
6105 } else if (btc->dm.cnt_notify[BTC_NCNT_WL_STA] <
6106 btc->dm.cnt_dm[BTC_DCNT_WL_STA_LAST]) {
6107 btc->dm.cnt_dm[BTC_DCNT_WL_STA_LAST] =
6108 btc->dm.cnt_notify[BTC_NCNT_WL_STA];
6115 struct rtw89_btc *btc = &rtwdev->btc;
6116 struct rtw89_btc_btf_fwinfo *pfwinfo = &btc->fwinfo;
6138 btc->cx.cnt_bt[BTC_BCNT_INFOUPDATE]++;
6144 btc->cx.cnt_bt[BTC_BCNT_SCBDUPDATE]++;
6150 btc->dbg.rb_done = true;
6151 btc->dbg.rb_val = le32_to_cpu(*((__le32 *)buf));
6155 btc->dbg.rb_done = true;
6156 btc->dbg.rb_val = buf[0];
6159 btc->dm.cnt_dm[BTC_DCNT_CX_RUNINFO]++;
6170 struct rtw89_btc *btc = &rtwdev->btc;
6171 struct rtw89_btc_dm *dm = &btc->dm;
6172 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
6173 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
6225 "[hw_info]", btc->mdinfo.cv, btc->mdinfo.rfe_type,
6226 btc->mdinfo.ant.isolation, btc->mdinfo.ant.num,
6227 (btc->mdinfo.ant.num > 1 ? "" : (btc->mdinfo.ant.single_pos ?
6231 btc->cx.other.type, rtwdev->dbcc_en, hal->tx_nss,
6237 struct rtw89_btc *btc = &rtwdev->btc;
6239 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
6258 plink = &btc->cx.wl.link_info[i];
6296 struct rtw89_btc *btc = &rtwdev->btc;
6297 const struct rtw89_btc_ver *ver = btc->ver;
6298 struct rtw89_btc_cx *cx = &btc->cx;
6305 if (!(btc->dm.coex_info_map & BTC_COEX_INFO_WL))
6345 struct rtw89_btc *btc = &rtwdev->btc;
6346 struct rtw89_btc_bt_link_info *bt_linfo = &btc->cx.bt.link_info;
6396 struct rtw89_btc *btc = &rtwdev->btc;
6397 const struct rtw89_btc_ver *ver = btc->ver;
6398 struct rtw89_btc_cx *cx = &btc->cx;
6401 struct rtw89_btc_module *module = &btc->mdinfo;
6406 if (!(btc->dm.coex_info_map & BTC_COEX_INFO_BT))
6752 struct rtw89_btc *btc = &rtwdev->btc;
6753 struct rtw89_btc_dm *dm = &btc->dm;
6766 struct rtw89_btc *btc = &rtwdev->btc;
6767 struct rtw89_btc_module *module = &btc->mdinfo;
6768 struct rtw89_btc_dm *dm = &btc->dm;
6769 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
6770 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
6776 (btc->ctrl.manual ? "(Manual)" : "(Auto)"));
6790 "[dm_flag]", dm->wl_only, dm->bt_only, btc->ctrl.igno_bt,
6791 dm->freerun, btc->lps, dm->wl_mimo_ps);
6818 dm->wl_tx_limit.tx_retry, btc->bt_req_len, bt->scan_rx_low_pri);
6823 struct rtw89_btc *btc = &rtwdev->btc;
6824 const struct rtw89_btc_ver *ver = btc->ver;
6825 struct rtw89_btc_btf_fwinfo *pfwinfo = &btc->fwinfo;
6885 struct rtw89_btc *btc = &rtwdev->btc;
6886 const struct rtw89_btc_ver *ver = btc->ver;
6887 struct rtw89_btc_btf_fwinfo *pfwinfo = &btc->fwinfo;
6913 (u32)btc->policy_type);
6920 struct rtw89_btc *btc = &rtwdev->btc;
6921 struct rtw89_btc_dm *dm = &btc->dm;
6946 struct rtw89_btc *btc = &rtwdev->btc;
6947 struct rtw89_btc_btf_fwinfo *pfwinfo = &btc->fwinfo;
6948 struct rtw89_btc_dm *dm = &btc->dm;
6949 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc;
7074 struct rtw89_btc *btc = &rtwdev->btc;
7075 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc;
7076 struct rtw89_btc_btf_fwinfo *pfwinfo = &btc->fwinfo;
7077 struct rtw89_btc_dm *dm = &btc->dm;
7204 struct rtw89_btc *btc = &rtwdev->btc;
7205 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc;
7206 struct rtw89_btc_btf_fwinfo *pfwinfo = &btc->fwinfo;
7207 struct rtw89_btc_dm *dm = &btc->dm;
7336 struct rtw89_btc *btc = &rtwdev->btc;
7337 struct rtw89_btc_bt_a2dp_desc *a2dp = &btc->cx.bt.link_info.a2dp_desc;
7338 struct rtw89_btc_btf_fwinfo *pfwinfo = &btc->fwinfo;
7339 struct rtw89_btc_dm *dm = &btc->dm;
7467 struct rtw89_btc *btc = &rtwdev->btc;
7468 const struct rtw89_btc_ver *ver = btc->ver;
7469 struct rtw89_btc_btf_fwinfo *pfwinfo = &btc->fwinfo;
7474 if (!btc->dm.tdma_now.rxflctrl)
7527 struct rtw89_btc *btc = &rtwdev->btc;
7528 struct rtw89_btc_btf_fwinfo *pfwinfo = &btc->fwinfo;
7555 n_stop = btc->ctrl.trace_step - 1;
7596 struct rtw89_btc *btc = &rtwdev->btc;
7597 struct rtw89_btc_btf_fwinfo *pfwinfo = &btc->fwinfo;
7653 struct rtw89_btc *btc = &rtwdev->btc;
7654 const struct rtw89_btc_ver *ver = btc->ver;
7656 if (!(btc->dm.coex_info_map & BTC_COEX_INFO_DM))
7725 struct rtw89_btc *btc = &rtwdev->btc;
7726 struct rtw89_btc_btf_fwinfo *pfwinfo = &btc->fwinfo;
7730 struct rtw89_btc_cx *cx = &btc->cx;
7731 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
7732 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
7738 if (!(btc->dm.coex_info_map & BTC_COEX_INFO_MREG))
7751 btc->dm.pta_owner = rtw89_mac_get_ctrl_path(rtwdev);
7759 btc->dm.pta_owner == BTC_CTRL_BY_WL ? "WL" : "BT",
7829 struct rtw89_btc *btc = &rtwdev->btc;
7830 struct rtw89_btc_btf_fwinfo *pfwinfo = &btc->fwinfo;
7834 struct rtw89_btc_cx *cx = &btc->cx;
7835 struct rtw89_btc_wl_info *wl = &btc->cx.wl;
7836 struct rtw89_btc_bt_info *bt = &btc->cx.bt;
7842 if (!(btc->dm.coex_info_map & BTC_COEX_INFO_MREG))
7855 btc->dm.pta_owner = rtw89_mac_get_ctrl_path(rtwdev);
7863 btc->dm.pta_owner == BTC_CTRL_BY_WL ? "WL" : "BT",
7932 struct rtw89_btc *btc = &rtwdev->btc;
7933 struct rtw89_btc_btf_fwinfo *pfwinfo = &btc->fwinfo;
7936 struct rtw89_btc_cx *cx = &btc->cx;
7937 struct rtw89_btc_dm *dm = &btc->dm;
7940 u32 cnt_sum = 0, *cnt = btc->dm.cnt_notify;
8004 btc->fwinfo.rpt_en_map);
8036 struct rtw89_btc *btc = &rtwdev->btc;
8037 struct rtw89_btc_btf_fwinfo *pfwinfo = &btc->fwinfo;
8040 struct rtw89_btc_cx *cx = &btc->cx;
8041 struct rtw89_btc_dm *dm = &btc->dm;
8044 u32 cnt_sum = 0, *cnt = btc->dm.cnt_notify;
8116 btc->fwinfo.rpt_en_map);
8148 struct rtw89_btc *btc = &rtwdev->btc;
8149 struct rtw89_btc_btf_fwinfo *pfwinfo = &btc->fwinfo;
8152 struct rtw89_btc_cx *cx = &btc->cx;
8153 struct rtw89_btc_dm *dm = &btc->dm;
8155 u32 cnt_sum = 0, *cnt = btc->dm.cnt_notify;
8263 struct rtw89_btc *btc = &rtwdev->btc;
8264 struct rtw89_btc_btf_fwinfo *pfwinfo = &btc->fwinfo;
8267 struct rtw89_btc_cx *cx = &btc->cx;
8268 struct rtw89_btc_dm *dm = &btc->dm;
8270 u32 cnt_sum = 0, *cnt = btc->dm.cnt_notify;
8379 struct rtw89_btc *btc = &rtwdev->btc;
8380 const struct rtw89_btc_ver *ver = btc->ver;
8381 struct rtw89_btc_cx *cx = &btc->cx;
8388 seq_printf(m, "manual %d\n", btc->ctrl.manual);
8427 struct rtw89_btc *btc = &rtwdev->btc;
8443 btc->ver = btc_ver_def;
8448 btc->ver = &rtw89_btc_ver_defs[RTW89_DEFAULT_BTC_VER_IDX];
8452 (int)(btc->ver - rtw89_btc_ver_defs), btc->ver->fw_ver_code);