Lines Matching full:dm

796 	struct rtw89_btc_dm *dm = &btc->dm;  in _send_fw_cmd()  local
801 dm->error.map.h2c_buffer_over = true; in _send_fw_cmd()
856 memset(&btc->dm, 0, sizeof(btc->dm)); in _reset_btc_var()
867 btc->dm.tdma_now = t_def[CXTD_OFF]; in _reset_btc_var()
868 btc->dm.tdma = t_def[CXTD_OFF]; in _reset_btc_var()
871 btc->dm.slot.v7[i].dur = s_def[i].dur; in _reset_btc_var()
872 btc->dm.slot.v7[i].cxtype = s_def[i].cxtype; in _reset_btc_var()
873 btc->dm.slot.v7[i].cxtbl = s_def[i].cxtbl; in _reset_btc_var()
875 memcpy(&btc->dm.slot_now.v7, &btc->dm.slot.v7, in _reset_btc_var()
876 sizeof(btc->dm.slot_now.v7)); in _reset_btc_var()
878 memcpy(&btc->dm.slot_now.v1, s_def, in _reset_btc_var()
879 sizeof(btc->dm.slot_now.v1)); in _reset_btc_var()
880 memcpy(&btc->dm.slot.v1, s_def, in _reset_btc_var()
881 sizeof(btc->dm.slot.v1)); in _reset_btc_var()
887 btc->dm.coex_info_map = BTC_COEX_INFO_ALL; in _reset_btc_var()
888 btc->dm.wl_tx_limit.tx_time = BTC_MAX_TX_TIME_DEF; in _reset_btc_var()
889 btc->dm.wl_tx_limit.tx_retry = BTC_MAX_TX_RETRY_DEF; in _reset_btc_var()
890 btc->dm.wl_pre_agc_rb = BTC_PREAGC_NOTFOUND; in _reset_btc_var()
891 btc->dm.wl_btg_rx_rb = BTC_BTGCTRL_BB_GNT_NOTFOUND; in _reset_btc_var()
1015 struct rtw89_btc_dm *dm = &btc->dm; in _chk_btc_err() local
1026 dm->error.map.wl_ver_mismatch = true; in _chk_btc_err()
1029 dm->error.map.wl_ver_mismatch = false; in _chk_btc_err()
1033 if (dm->cnt_dm[BTC_DCNT_RPT] == cnt && btc->fwinfo.rpt_en_map) in _chk_btc_err()
1034 dm->cnt_dm[BTC_DCNT_RPT_HANG]++; in _chk_btc_err()
1036 dm->cnt_dm[BTC_DCNT_RPT_HANG] = 0; in _chk_btc_err()
1038 if (dm->cnt_dm[BTC_DCNT_RPT_HANG] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1039 dm->error.map.wl_fw_hang = true; in _chk_btc_err()
1041 dm->error.map.wl_fw_hang = false; in _chk_btc_err()
1043 dm->cnt_dm[BTC_DCNT_RPT] = cnt; in _chk_btc_err()
1046 if (dm->cnt_dm[BTC_DCNT_CYCLE] == cnt && in _chk_btc_err()
1047 (dm->tdma_now.type != CXTDMA_OFF || in _chk_btc_err()
1048 dm->tdma_now.ext_ctrl == CXECTL_EXT)) in _chk_btc_err()
1049 dm->cnt_dm[BTC_DCNT_CYCLE_HANG]++; in _chk_btc_err()
1051 dm->cnt_dm[BTC_DCNT_CYCLE_HANG] = 0; in _chk_btc_err()
1053 if (dm->cnt_dm[BTC_DCNT_CYCLE_HANG] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1054 dm->error.map.cycle_hang = true; in _chk_btc_err()
1056 dm->error.map.cycle_hang = false; in _chk_btc_err()
1058 dm->cnt_dm[BTC_DCNT_CYCLE] = cnt; in _chk_btc_err()
1061 if (dm->cnt_dm[BTC_DCNT_W1] == cnt && in _chk_btc_err()
1062 dm->tdma_now.type != CXTDMA_OFF) in _chk_btc_err()
1063 dm->cnt_dm[BTC_DCNT_W1_HANG]++; in _chk_btc_err()
1065 dm->cnt_dm[BTC_DCNT_W1_HANG] = 0; in _chk_btc_err()
1067 if (dm->cnt_dm[BTC_DCNT_W1_HANG] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1068 dm->error.map.w1_hang = true; in _chk_btc_err()
1070 dm->error.map.w1_hang = false; in _chk_btc_err()
1072 dm->cnt_dm[BTC_DCNT_W1] = cnt; in _chk_btc_err()
1075 if (dm->cnt_dm[BTC_DCNT_B1] == cnt && in _chk_btc_err()
1076 dm->tdma_now.type != CXTDMA_OFF) in _chk_btc_err()
1077 dm->cnt_dm[BTC_DCNT_B1_HANG]++; in _chk_btc_err()
1079 dm->cnt_dm[BTC_DCNT_B1_HANG] = 0; in _chk_btc_err()
1081 if (dm->cnt_dm[BTC_DCNT_B1_HANG] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1082 dm->error.map.b1_hang = true; in _chk_btc_err()
1084 dm->error.map.b1_hang = false; in _chk_btc_err()
1086 dm->cnt_dm[BTC_DCNT_B1] = cnt; in _chk_btc_err()
1089 if (dm->cnt_dm[BTC_DCNT_E2G] == cnt && in _chk_btc_err()
1090 dm->tdma_now.ext_ctrl == CXECTL_EXT) in _chk_btc_err()
1091 dm->cnt_dm[BTC_DCNT_E2G_HANG]++; in _chk_btc_err()
1093 dm->cnt_dm[BTC_DCNT_E2G_HANG] = 0; in _chk_btc_err()
1095 if (dm->cnt_dm[BTC_DCNT_E2G_HANG] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1096 dm->error.map.wl_e2g_hang = true; in _chk_btc_err()
1098 dm->error.map.wl_e2g_hang = false; in _chk_btc_err()
1100 dm->cnt_dm[BTC_DCNT_E2G] = cnt; in _chk_btc_err()
1104 dm->cnt_dm[BTC_DCNT_TDMA_NONSYNC]++; in _chk_btc_err()
1106 dm->cnt_dm[BTC_DCNT_TDMA_NONSYNC] = 0; in _chk_btc_err()
1108 if (dm->cnt_dm[BTC_DCNT_TDMA_NONSYNC] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1109 dm->error.map.tdma_no_sync = true; in _chk_btc_err()
1111 dm->error.map.tdma_no_sync = false; in _chk_btc_err()
1115 dm->cnt_dm[BTC_DCNT_SLOT_NONSYNC]++; in _chk_btc_err()
1117 dm->cnt_dm[BTC_DCNT_SLOT_NONSYNC] = 0; in _chk_btc_err()
1119 if (dm->cnt_dm[BTC_DCNT_SLOT_NONSYNC] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1120 dm->error.map.slot_no_sync = true; in _chk_btc_err()
1122 dm->error.map.slot_no_sync = false; in _chk_btc_err()
1128 dm->cnt_dm[BTC_DCNT_BTTX_HANG]++; in _chk_btc_err()
1130 dm->cnt_dm[BTC_DCNT_BTTX_HANG] = 0; in _chk_btc_err()
1132 if (dm->cnt_dm[BTC_DCNT_BTTX_HANG] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1133 dm->error.map.bt_tx_hang = true; in _chk_btc_err()
1135 dm->error.map.bt_tx_hang = false; in _chk_btc_err()
1144 dm->cnt_dm[BTC_DCNT_BTCNT_HANG]++; in _chk_btc_err()
1146 dm->cnt_dm[BTC_DCNT_BTCNT_HANG] = 0; in _chk_btc_err()
1148 if ((dm->cnt_dm[BTC_DCNT_BTCNT_HANG] >= BTC_CHK_HANG_MAX && in _chk_btc_err()
1149 bt->enable.now) || (!dm->cnt_dm[BTC_DCNT_BTCNT_HANG] && in _chk_btc_err()
1155 dm->cnt_dm[BTC_DCNT_WL_SLOT_DRIFT]++; in _chk_btc_err()
1157 dm->cnt_dm[BTC_DCNT_WL_SLOT_DRIFT] = 0; in _chk_btc_err()
1159 if (dm->cnt_dm[BTC_DCNT_WL_SLOT_DRIFT] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1160 dm->error.map.wl_slot_drift = true; in _chk_btc_err()
1162 dm->error.map.wl_slot_drift = false; in _chk_btc_err()
1166 dm->cnt_dm[BTC_DCNT_BT_SLOT_DRIFT]++; in _chk_btc_err()
1168 dm->cnt_dm[BTC_DCNT_BT_SLOT_DRIFT] = 0; in _chk_btc_err()
1170 if (dm->cnt_dm[BTC_DCNT_BT_SLOT_DRIFT] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1171 dm->error.map.bt_slot_drift = true; in _chk_btc_err()
1173 dm->error.map.bt_slot_drift = false; in _chk_btc_err()
1320 struct rtw89_btc_dm *dm = &btc->dm; in _chk_btc_report() local
1583 dm->wl_fw_cx_offload = !!prpt->v1.wl_fw_cx_offload; in _chk_btc_report()
1603 dm->wl_fw_cx_offload = !!le32_to_cpu(prpt->v4.wl_fw_info.cx_offload); in _chk_btc_report()
1606 memcpy(&dm->gnt.band[i], &prpt->v4.gnt_val[i], in _chk_btc_report()
1607 sizeof(dm->gnt.band[i])); in _chk_btc_report()
1629 dm->error.map.bt_rfk_timeout = bt->rfk_info.map.timeout; in _chk_btc_report()
1635 dm->wl_fw_cx_offload = 0; in _chk_btc_report()
1638 memcpy(&dm->gnt.band[i], &prpt->v5.gnt_val[i][0], in _chk_btc_report()
1639 sizeof(dm->gnt.band[i])); in _chk_btc_report()
1656 dm->error.map.bt_rfk_timeout = bt->rfk_info.map.timeout; in _chk_btc_report()
1662 dm->wl_fw_cx_offload = 0; in _chk_btc_report()
1665 memcpy(&dm->gnt.band[i], &prpt->v105.gnt_val[i][0], in _chk_btc_report()
1666 sizeof(dm->gnt.band[i])); in _chk_btc_report()
1683 dm->error.map.bt_rfk_timeout = bt->rfk_info.map.timeout; in _chk_btc_report()
1691 memcpy(&dm->gnt.band[i], &prpt->v7.gnt_val[i][0], in _chk_btc_report()
1692 sizeof(dm->gnt.band[i])); in _chk_btc_report()
1723 memcpy(&dm->gnt.band[i], &prpt->v8.gnt_val[i][0], in _chk_btc_report()
1724 sizeof(dm->gnt.band[i])); in _chk_btc_report()
1746 dm->error.map.h2c_c2h_buffer_mismatch = true; in _chk_btc_report()
1748 dm->error.map.h2c_c2h_buffer_mismatch = false; in _chk_btc_report()
1762 sizeof(dm->tdma_now)); in _chk_btc_report()
1765 memcmp(&dm->tdma_now, in _chk_btc_report()
1767 sizeof(dm->tdma_now))); in _chk_btc_report()
1770 memcmp(&dm->tdma_now, in _chk_btc_report()
1772 sizeof(dm->tdma_now))); in _chk_btc_report()
1781 sizeof(dm->slot_now.v7)); in _chk_btc_report()
1783 memcmp(dm->slot_now.v7, in _chk_btc_report()
1785 sizeof(dm->slot_now.v7))); in _chk_btc_report()
1790 sizeof(dm->slot_now.v1)); in _chk_btc_report()
1792 memcmp(dm->slot_now.v1, in _chk_btc_report()
1794 sizeof(dm->slot_now.v1))); in _chk_btc_report()
1803 le32_to_cpu(pcysta->v2.leakrx_cnt) != 0 && dm->tdma_now.rxflctrl) { in _chk_btc_report()
1806 dm->leak_ap = 1; in _chk_btc_report()
1810 if (dm->tdma_now.type == CXTDMA_OFF && in _chk_btc_report()
1811 dm->tdma_now.ext_ctrl == CXECTL_EXT) { in _chk_btc_report()
1813 wl_slot_set = le16_to_cpu(dm->slot_now.v1[CXST_E2G].dur); in _chk_btc_report()
1815 wl_slot_set = le16_to_cpu(dm->slot_now.v7[CXST_E2G].dur); in _chk_btc_report()
1818 wl_slot_set = le16_to_cpu(dm->slot_now.v1[CXST_W1].dur); in _chk_btc_report()
1820 wl_slot_set = le16_to_cpu(dm->slot_now.v7[CXST_W1].dur); in _chk_btc_report()
1844 dm->tdma_now.rxflctrl) { in _chk_btc_report()
1846 dm->leak_ap = 1; in _chk_btc_report()
1850 if (dm->tdma_now.type == CXTDMA_OFF) { in _chk_btc_report()
1852 wl_slot_set = le16_to_cpu(dm->slot_now.v1[CXST_W1].dur); in _chk_btc_report()
1854 wl_slot_set = le16_to_cpu(dm->slot_now.v7[CXST_W1].dur); in _chk_btc_report()
1863 if (dm->tdma_now.type == CXTDMA_OFF && in _chk_btc_report()
1864 dm->tdma_now.ext_ctrl == CXECTL_EXT && in _chk_btc_report()
1888 dm->tdma_now.rxflctrl) { in _chk_btc_report()
1890 dm->leak_ap = 1; in _chk_btc_report()
1894 if (dm->tdma_now.type == CXTDMA_OFF) { in _chk_btc_report()
1896 wl_slot_set = le16_to_cpu(dm->slot_now.v1[CXST_W1].dur); in _chk_btc_report()
1898 wl_slot_set = le16_to_cpu(dm->slot_now.v7[CXST_W1].dur); in _chk_btc_report()
1907 if (dm->tdma_now.type == CXTDMA_OFF && in _chk_btc_report()
1908 dm->tdma_now.ext_ctrl == CXECTL_EXT && in _chk_btc_report()
1925 if (dm->fddt_train == BTC_FDDT_ENABLE) in _chk_btc_report()
1932 dm->tdma_now.rxflctrl) { in _chk_btc_report()
1935 dm->leak_ap = 1; in _chk_btc_report()
1939 if (dm->tdma_now.type == CXTDMA_OFF) { in _chk_btc_report()
1941 wl_slot_set = le16_to_cpu(dm->slot_now.v1[CXST_W1].dur); in _chk_btc_report()
1943 wl_slot_set = le16_to_cpu(dm->slot_now.v7[CXST_W1].dur); in _chk_btc_report()
1957 if (dm->tdma_now.type == CXTDMA_OFF && in _chk_btc_report()
1958 dm->tdma_now.ext_ctrl == CXECTL_EXT && in _chk_btc_report()
1976 if (dm->fddt_train == BTC_FDDT_ENABLE) in _chk_btc_report()
1981 if (dm->tdma_now.type != CXTDMA_OFF) { in _chk_btc_report()
1992 if (dm->tdma_now.rxflctrl && in _chk_btc_report()
1994 dm->leak_ap = 1; in _chk_btc_report()
1995 } else if (dm->tdma_now.ext_ctrl == CXECTL_EXT) { in _chk_btc_report()
2007 dm->slot_req_more = 1; in _chk_btc_report()
2009 dm->slot_req_more = 0; in _chk_btc_report()
2032 if (dm->wl_btg_rx == BTC_BTGCTRL_BB_GNT_FWCTRL) in _chk_btc_report()
2033 dm->wl_btg_rx_rb = BTC_BTGCTRL_BB_GNT_FWCTRL; in _chk_btc_report()
2035 dm->wl_btg_rx_rb = val; in _chk_btc_report()
2038 if (dm->wl_pre_agc == BTC_PREAGC_BB_FWCTRL) in _chk_btc_report()
2039 dm->wl_pre_agc_rb = BTC_PREAGC_BB_FWCTRL; in _chk_btc_report()
2041 dm->wl_pre_agc_rb = val; in _chk_btc_report()
2093 struct rtw89_btc_dm *dm = &btc->dm; in _append_tdma() local
2101 !memcmp(&dm->tdma, &dm->tdma_now, sizeof(dm->tdma))) { in _append_tdma()
2113 *v = dm->tdma; in _append_tdma()
2117 tlv_v7->len = sizeof(dm->tdma); in _append_tdma()
2120 memcpy(tlv_v7->val, &dm->tdma, tlv_v7->len); in _append_tdma()
2126 v3->tdma = dm->tdma; in _append_tdma()
2132 __func__, dm->tdma.type, dm->tdma.rxflctrl, in _append_tdma()
2133 dm->tdma.txpause, dm->tdma.wtgle_n, dm->tdma.leak_n, in _append_tdma()
2134 dm->tdma.ext_ctrl); in _append_tdma()
2140 struct rtw89_btc_dm *dm = &btc->dm; in _append_slot_v1() local
2152 !memcmp(&dm->slot.v1[i], &dm->slot_now.v1[i], in _append_slot_v1()
2153 sizeof(dm->slot.v1[i]))) in _append_slot_v1()
2165 v->slot = dm->slot.v1[i]; in _append_slot_v1()
2169 __func__, i, dm->slot.v1[i].dur, dm->slot.v1[i].cxtbl, in _append_slot_v1()
2170 dm->slot.v1[i].cxtype); in _append_slot_v1()
2186 struct rtw89_btc_dm *dm = &btc->dm; in _append_slot_v7() local
2192 !memcmp(&dm->slot.v7[i], &dm->slot_now.v7[i], in _append_slot_v7()
2193 sizeof(dm->slot.v7[i]))) in _append_slot_v7()
2208 tlv->len = sizeof(dm->slot.v7[0]) + BTC_TLV_SLOT_ID_LEN_V7; in _append_slot_v7()
2219 memcpy(&btc->policy[len + 1], &dm->slot.v7[i], in _append_slot_v7()
2220 sizeof(dm->slot.v7[0])); in _append_slot_v7()
2225 __func__, btc->policy_len, i, dm->slot.v7[i].dur, in _append_slot_v7()
2226 dm->slot.v7[i].cxtype, dm->slot.v7[i].cxtbl); in _append_slot_v7()
2398 struct rtw89_btc_dm *dm = &btc->dm; in rtw89_btc_fw_set_slots() local
2402 len = sizeof(*tlv_v7) + sizeof(dm->slot.v7); in rtw89_btc_fw_set_slots()
2409 tlv_v7->len = ARRAY_SIZE(dm->slot.v7); in rtw89_btc_fw_set_slots()
2410 memcpy(tlv_v7->val, dm->slot.v7, sizeof(dm->slot.v7)); in rtw89_btc_fw_set_slots()
2423 memcpy(tbl->tbls, dm->slot.v1, flex_array_size(tbl, tbls, CXST_MAX)); in rtw89_btc_fw_set_slots()
2547 struct rtw89_btc_dm *dm = &btc->dm; in _update_dm_step() local
2549 /* use ring-structure to store dm step */ in _update_dm_step()
2550 dm->dm_step.step[dm->dm_step.step_pos] = reason_or_action; in _update_dm_step()
2551 dm->dm_step.step_pos++; in _update_dm_step()
2553 if (dm->dm_step.step_pos >= ARRAY_SIZE(dm->dm_step.step)) { in _update_dm_step()
2554 dm->dm_step.step_pos = 0; in _update_dm_step()
2555 dm->dm_step.step_ov = true; in _update_dm_step()
2563 struct rtw89_btc_dm *dm = &btc->dm; in _fw_set_policy() local
2566 dm->run_action = action; in _fw_set_policy()
2584 if (dm->tdma.rxflctrl == CXFLC_NULLP || in _fw_set_policy()
2585 dm->tdma.rxflctrl == CXFLC_QOSNULL) in _fw_set_policy()
2596 memcpy(&dm->tdma_now, &dm->tdma, sizeof(dm->tdma_now)); in _fw_set_policy()
2598 memcpy(&dm->slot_now.v7, &dm->slot.v7, sizeof(dm->slot_now.v7)); in _fw_set_policy()
2600 memcpy(&dm->slot_now.v1, &dm->slot.v1, sizeof(dm->slot_now.v1)); in _fw_set_policy()
2614 struct rtw89_btc_dm *dm = &btc->dm; in _fw_set_drv_info() local
2616 struct rtw89_btc_rf_trx_para rf_para = dm->rf_trx_para; in _fw_set_drv_info()
2650 dm->trx_info.tx_power = u32_get_bits(rf_para.wl_tx_power, in _fw_set_drv_info()
2652 dm->trx_info.rx_gain = u32_get_bits(rf_para.wl_rx_gain, in _fw_set_drv_info()
2654 dm->trx_info.bt_tx_power = u32_get_bits(rf_para.bt_tx_power, in _fw_set_drv_info()
2656 dm->trx_info.bt_rx_gain = u32_get_bits(rf_para.bt_rx_gain, in _fw_set_drv_info()
2658 dm->trx_info.cn = wl->cn_report; in _fw_set_drv_info()
2659 dm->trx_info.nhm = wl->nhm.pwr; in _fw_set_drv_info()
2702 struct rtw89_btc_dm *dm = &btc->dm; in _set_gnt() local
2703 struct rtw89_mac_ax_gnt *g = dm->gnt.band; in _set_gnt()
2744 rtw89_chip_mac_cfg_gnt(rtwdev, &dm->gnt); in _set_gnt()
2751 struct rtw89_btc_dm *dm = &btc->dm; in _set_gnt_v1() local
2752 struct rtw89_mac_ax_gnt *g = dm->gnt.band; in _set_gnt_v1()
2753 u8 i, bt_idx = dm->bt_select + 1; in _set_gnt_v1()
2800 dm->gnt.bt[i].wlan_act_en = 0; in _set_gnt_v1()
2801 dm->gnt.bt[i].wlan_act = 0; in _set_gnt_v1()
2804 dm->gnt.bt[i].wlan_act_en = 1; in _set_gnt_v1()
2805 dm->gnt.bt[i].wlan_act = 0; in _set_gnt_v1()
2808 dm->gnt.bt[i].wlan_act_en = 1; in _set_gnt_v1()
2809 dm->gnt.bt[i].wlan_act = 1; in _set_gnt_v1()
2814 rtw89_mac_cfg_gnt_v2(rtwdev, &dm->gnt); in _set_gnt_v1()
2847 btc->dm.rf_trx_para.wl_tx_power = level; in _set_wl_tx_power()
2878 btc->dm.rf_trx_para.wl_rx_gain = level; in _set_wl_rx_gain()
2908 btc->dm.rf_trx_para.bt_tx_power = level; in _set_bt_tx_power()
2928 btc->dm.rf_trx_para.bt_rx_gain = level; in _set_bt_rx_gain()
2947 struct rtw89_btc_dm *dm = &btc->dm; in _set_rf_trx_para() local
2973 if ((btc->dm.wl_btg_rx && b->profile_cnt.now != 0) || in _set_rf_trx_para()
2974 dm->bt_only == 1) in _set_rf_trx_para()
2975 dm->trx_para_level = 1; /* for better BT ACI issue */ in _set_rf_trx_para()
2977 dm->trx_para_level = 0; in _set_rf_trx_para()
2979 dm->trx_para_level = 5; in _set_rf_trx_para()
2985 dm->trx_para_level = 6; in _set_rf_trx_para()
2987 dm->trx_para_level = 7; in _set_rf_trx_para()
2991 level_id = dm->trx_para_level; in _set_rf_trx_para()
3005 if (dm->fddt_train) { in _set_rf_trx_para()
3015 if (!bt->enable.now || dm->wl_only || wl_smap->rf_off || in _set_rf_trx_para()
3024 if (wl_stb_chg != dm->wl_stb_chg) { in _set_rf_trx_para()
3025 dm->wl_stb_chg = wl_stb_chg; in _set_rf_trx_para()
3026 chip->ops->btc_wl_s1_standby(rtwdev, dm->wl_stb_chg); in _set_rf_trx_para()
3258 btc->dm.trx_para_level = 0; in _check_freerun()
3264 btc->dm.trx_para_level = 5; in _check_freerun()
3269 btc->dm.trx_para_level = 5; in _check_freerun()
3274 btc->dm.trx_para_level = 5; in _check_freerun()
3280 btc->dm.trx_para_level = 5; in _check_freerun()
3285 btc->dm.trx_para_level = 5; in _check_freerun()
3288 btc->dm.trx_para_level = 0; in _check_freerun()
3292 btc->dm.trx_para_level = 6; in _check_freerun()
3295 btc->dm.trx_para_level = 7; in _check_freerun()
3298 btc->dm.trx_para_level = 0; in _check_freerun()
3302 btc->dm.trx_para_level = 6; in _check_freerun()
3307 btc->dm.trx_para_level = 0; in _check_freerun()
3311 #define _tdma_set_flctrl(btc, flc) ({(btc)->dm.tdma.rxflctrl = flc; })
3312 #define _tdma_set_flctrl_role(btc, role) ({(btc)->dm.tdma.rxflctrl_role = role; })
3313 #define _tdma_set_tog(btc, wtg) ({(btc)->dm.tdma.wtgle_n = wtg; })
3314 #define _tdma_set_lek(btc, lek) ({(btc)->dm.tdma.leak_n = lek; })
3388 struct rtw89_btc_dm *dm = &btc->dm; in rtw89_btc_set_policy() local
3389 struct rtw89_btc_fbtc_tdma *t = &dm->tdma; in rtw89_btc_set_policy()
3390 struct rtw89_btc_fbtc_slot *s = dm->slot.v1; in rtw89_btc_set_policy()
3530 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy()
3532 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1], in rtw89_btc_set_policy()
3587 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy()
3589 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1], in rtw89_btc_set_policy()
3611 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy()
3613 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1], in rtw89_btc_set_policy()
3648 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy()
3650 _slot_set(btc, CXST_B4, dm->slot_dur[CXST_B4], in rtw89_btc_set_policy()
3685 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy()
3687 _slot_set(btc, CXST_B4, dm->slot_dur[CXST_B4], in rtw89_btc_set_policy()
3699 struct rtw89_btc_dm *dm = &btc->dm; in rtw89_btc_set_policy_v1() local
3700 struct rtw89_btc_fbtc_tdma *t = &dm->tdma; in rtw89_btc_set_policy_v1()
3720 if (dm->leak_ap && in rtw89_btc_set_policy_v1()
3826 dur_2 = dm->e2g_slot_limit; in rtw89_btc_set_policy_v1()
3930 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy_v1()
3932 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1], in rtw89_btc_set_policy_v1()
3969 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy_v1()
3971 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1], in rtw89_btc_set_policy_v1()
3996 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy_v1()
3998 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1], in rtw89_btc_set_policy_v1()
4023 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy_v1()
4025 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1], in rtw89_btc_set_policy_v1()
4063 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy_v1()
4065 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1], in rtw89_btc_set_policy_v1()
4067 _slot_set(btc, CXST_B4, dm->slot_dur[CXST_B4], in rtw89_btc_set_policy_v1()
4105 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy_v1()
4107 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1], in rtw89_btc_set_policy_v1()
4109 _slot_set(btc, CXST_B4, dm->slot_dur[CXST_B4], in rtw89_btc_set_policy_v1()
4118 if (wl_rinfo->link_mode == BTC_WLINK_2G_SCC && dm->tdma.rxflctrl) { in rtw89_btc_set_policy_v1()
4119 null_role = FIELD_PREP(0x0f, dm->wl_scc.null_role1) | in rtw89_btc_set_policy_v1()
4120 FIELD_PREP(0xf0, dm->wl_scc.null_role2); in rtw89_btc_set_policy_v1()
4125 if (dm->leak_ap && dm->tdma.leak_n > 1) in rtw89_btc_set_policy_v1()
4128 if (dm->tdma_instant_excute) { in rtw89_btc_set_policy_v1()
4129 btc->dm.tdma.option_ctrl |= BIT(0); in rtw89_btc_set_policy_v1()
4170 struct rtw89_btc_dm *dm = &btc->dm; in _set_ant_v0() local
4190 if (btc->dm.run_reason == BTC_RSN_NTFY_POWEROFF || in _set_ant_v0()
4191 btc->dm.run_reason == BTC_RSN_NTFY_RADIO_STATE || in _set_ant_v0()
4192 btc->dm.run_reason == BTC_RSN_CMD_SET_COEX || dbcc_chg) in _set_ant_v0()
4195 if (!force_exec && ant_path_type == dm->set_ant_path) { in _set_ant_v0()
4204 } else if (btc->dm.run_reason != BTC_RSN_NTFY_WL_RFK && in _set_ant_v0()
4211 dm->set_ant_path = ant_path_type; in _set_ant_v0()
4216 __func__, phy_map, dm->set_ant_path & 0xff); in _set_ant_v0()
4305 struct rtw89_btc_dm *dm = &btc->dm; in _set_ant_v1() local
4308 if (btc->dm.run_reason == BTC_RSN_NTFY_POWEROFF || in _set_ant_v1()
4309 btc->dm.run_reason == BTC_RSN_NTFY_RADIO_STATE || in _set_ant_v1()
4310 btc->dm.run_reason == BTC_RSN_CMD_SET_COEX || wl_rinfo->dbcc_chg) in _set_ant_v1()
4314 btc->dm.wl_btg_rx == 2) in _set_ant_v1()
4317 if (!force_exec && ant_path_type == dm->set_ant_path) { in _set_ant_v1()
4326 } else if (btc->dm.run_reason != BTC_RSN_NTFY_WL_RFK && in _set_ant_v1()
4333 dm->set_ant_path = ant_path_type; in _set_ant_v1()
4337 __func__, phy_map, dm->set_ant_path & 0xff); in _set_ant_v1()
4428 if (wl->status.map.rf_off || btc->dm.bt_only) { in _action_wl_off()
4458 btc->dm.freerun = true; in _action_freerun()
4588 struct rtw89_btc_dm *dm = &btc->dm; in _action_bt_a2dp() local
4594 if (a2dp.vendor_id == 0x4c || dm->leak_ap) { in _action_bt_a2dp()
4595 dm->slot_dur[CXST_W1] = 40; in _action_bt_a2dp()
4596 dm->slot_dur[CXST_B1] = 200; in _action_bt_a2dp()
4612 if (a2dp.vendor_id == 0x4c || dm->leak_ap) { in _action_bt_a2dp()
4613 dm->slot_dur[CXST_W1] = 40; in _action_bt_a2dp()
4614 dm->slot_dur[CXST_B1] = 200; in _action_bt_a2dp()
4668 btc->dm.slot_dur[CXST_W1] = 80; in _action_bt_pan()
4669 btc->dm.slot_dur[CXST_B1] = 20; in _action_bt_pan()
4698 struct rtw89_btc_dm *dm = &btc->dm; in _action_bt_a2dp_hid() local
4705 if (a2dp.vendor_id == 0x4c || dm->leak_ap) { in _action_bt_a2dp_hid()
4706 dm->slot_dur[CXST_W1] = 40; in _action_bt_a2dp_hid()
4707 dm->slot_dur[CXST_B1] = 200; in _action_bt_a2dp_hid()
4724 if (a2dp.vendor_id == 0x4c || dm->leak_ap) { in _action_bt_a2dp_hid()
4725 dm->slot_dur[CXST_W1] = 40; in _action_bt_a2dp_hid()
4726 dm->slot_dur[CXST_B1] = 200; in _action_bt_a2dp_hid()
4859 btc->dm.tdma_instant_excute = 1; in _action_wl_rfk()
4884 struct rtw89_btc_dm *dm = &btc->dm; in _set_btg_ctrl() local
4886 u32 run_reason = btc->dm.run_reason; in _set_btg_ctrl()
4933 else if (dm->freerun) in _set_btg_ctrl()
4940 if (dm->wl_btg_rx_rb != dm->wl_btg_rx && in _set_btg_ctrl()
4941 dm->wl_btg_rx_rb != BTC_BTGCTRL_BB_GNT_NOTFOUND) { in _set_btg_ctrl()
4943 dm->wl_btg_rx_rb = val; in _set_btg_ctrl()
4948 dm->wl_btg_rx_rb != dm->wl_btg_rx || in _set_btg_ctrl()
4949 is_btg != dm->wl_btg_rx) { in _set_btg_ctrl()
4951 dm->wl_btg_rx = is_btg; in _set_btg_ctrl()
4970 struct rtw89_btc_dm *dm = &btc->dm; in _set_wl_preagc_ctrl() local
5003 } else if (dm->tdma_now.type != CXTDMA_OFF && in _set_wl_preagc_ctrl()
5006 dm->fddt_train == BTC_FDDT_DISABLE) { in _set_wl_preagc_ctrl()
5016 if (dm->wl_pre_agc_rb != dm->wl_pre_agc && in _set_wl_preagc_ctrl()
5017 dm->wl_pre_agc_rb != BTC_PREAGC_NOTFOUND) { in _set_wl_preagc_ctrl()
5019 dm->wl_pre_agc_rb = val; in _set_wl_preagc_ctrl()
5023 (dm->run_reason == BTC_RSN_NTFY_INIT || in _set_wl_preagc_ctrl()
5024 dm->run_reason == BTC_RSN_NTFY_SWBAND || in _set_wl_preagc_ctrl()
5025 dm->wl_pre_agc_rb != dm->wl_pre_agc)) || in _set_wl_preagc_ctrl()
5026 is_preagc != dm->wl_pre_agc) { in _set_wl_preagc_ctrl()
5027 dm->wl_pre_agc = is_preagc; in _set_wl_preagc_ctrl()
5031 chip->ops->ctrl_nbtg_bt_tx(rtwdev, dm->wl_pre_agc, RTW89_PHY_0); in _set_wl_preagc_ctrl()
5121 struct rtw89_btc_dm *dm = &btc->dm; in _set_wl_tx_limit() local
5159 if (btc->dm.freerun || igno_bt || b->profile_cnt.now == 0 || in _set_wl_tx_limit()
5178 if (dm->wl_tx_limit.enable == enable && in _set_wl_tx_limit()
5179 dm->wl_tx_limit.tx_time == tx_time && in _set_wl_tx_limit()
5180 dm->wl_tx_limit.tx_retry == tx_retry) in _set_wl_tx_limit()
5183 if (!dm->wl_tx_limit.enable && enable) in _set_wl_tx_limit()
5186 dm->wl_tx_limit.enable = enable; in _set_wl_tx_limit()
5187 dm->wl_tx_limit.tx_time = tx_time; in _set_wl_tx_limit()
5188 dm->wl_tx_limit.tx_retry = tx_retry; in _set_wl_tx_limit()
5227 if (mode != BTC_WLINK_NOLINK && btc->dm.wl_btg_rx) in _set_bt_rx_agc()
5250 struct rtw89_btc_dm *dm = &btc->dm; in _action_common() local
5270 if (dm->run_reason == BTC_RSN_NTFY_INIT || in _action_common()
5271 dm->run_reason == BTC_RSN_NTFY_RADIO_STATE || in _action_common()
5272 dm->run_reason == BTC_RSN_NTFY_POWEROFF) { in _action_common()
5288 btc->dm.tdma_instant_excute = 0; in _action_common()
5299 struct rtw89_btc_dm *dm = &btc->dm; in _action_by_bt() local
5302 if (dm->freerun_chk) { in _action_by_bt()
5399 btc->dm.e2g_slot_limit = BTC_E2G_LIMIT_DEF; in _action_wl_25g_mcc()
5468 struct rtw89_btc_dm *dm = &btc->dm; in _action_wl_2g_scc_v1() local
5479 dm->wl_scc.null_role1 = RTW89_WIFI_ROLE_STATION; in _action_wl_2g_scc_v1()
5480 dm->wl_scc.null_role2 = RTW89_WIFI_ROLE_P2P_CLIENT; in _action_wl_2g_scc_v1()
5481 dm->wl_scc.ebt_null = 0; /* no ext-slot-control */ in _action_wl_2g_scc_v1()
5485 dm->wl_scc.null_role1 = RTW89_WIFI_ROLE_STATION; in _action_wl_2g_scc_v1()
5486 dm->wl_scc.null_role2 = RTW89_WIFI_ROLE_STATION; in _action_wl_2g_scc_v1()
5487 dm->wl_scc.ebt_null = 0; /* no ext-slot-control */ in _action_wl_2g_scc_v1()
5493 dm->wl_scc.null_role1 = RTW89_WIFI_ROLE_STATION; in _action_wl_2g_scc_v1()
5494 dm->wl_scc.null_role2 = RTW89_WIFI_ROLE_NONE; in _action_wl_2g_scc_v1()
5498 dm->wl_scc.ebt_null = 0; in _action_wl_2g_scc_v1()
5501 dm->wl_scc.ebt_null = 0; in _action_wl_2g_scc_v1()
5505 dm->wl_scc.ebt_null = 1; /* tx null at EBT */ in _action_wl_2g_scc_v1()
5509 dm->wl_scc.ebt_null = 1; /* tx null at EBT */ in _action_wl_2g_scc_v1()
5512 dm->wl_scc.ebt_null = 0; in _action_wl_2g_scc_v1()
5530 struct rtw89_btc_dm *dm = &btc->dm; in _action_wl_2g_scc_v2() local
5552 dm->wl_scc.null_role1 = RTW89_WIFI_ROLE_STATION; in _action_wl_2g_scc_v2()
5553 dm->wl_scc.null_role2 = RTW89_WIFI_ROLE_P2P_CLIENT; in _action_wl_2g_scc_v2()
5554 dm->wl_scc.ebt_null = 0; /* no ext-slot-control */ in _action_wl_2g_scc_v2()
5558 dm->wl_scc.null_role1 = RTW89_WIFI_ROLE_STATION; in _action_wl_2g_scc_v2()
5559 dm->wl_scc.null_role2 = RTW89_WIFI_ROLE_STATION; in _action_wl_2g_scc_v2()
5560 dm->wl_scc.ebt_null = 0; /* no ext-slot-control */ in _action_wl_2g_scc_v2()
5566 dm->wl_scc.null_role1 = RTW89_WIFI_ROLE_STATION; in _action_wl_2g_scc_v2()
5567 dm->wl_scc.null_role2 = RTW89_WIFI_ROLE_NONE; in _action_wl_2g_scc_v2()
5571 dm->wl_scc.ebt_null = 0; in _action_wl_2g_scc_v2()
5574 dm->wl_scc.ebt_null = 0; in _action_wl_2g_scc_v2()
5578 dm->wl_scc.ebt_null = 1; /* tx null at EBT */ in _action_wl_2g_scc_v2()
5582 dm->wl_scc.ebt_null = 1; /* tx null at EBT */ in _action_wl_2g_scc_v2()
5585 dm->wl_scc.ebt_null = 0; in _action_wl_2g_scc_v2()
5603 struct rtw89_btc_dm *dm = &btc->dm; in _action_wl_2g_scc_v8() local
5617 dm->e2g_slot_limit = BTC_E2G_LIMIT_DEF; in _action_wl_2g_scc_v8()
6588 btc->dm.leak_ap = 0; in _update_wl_info_v8()
6728 struct rtw89_btc_dm *dm = &rtwdev->btc.dm; in rtw89_coex_act1_work() local
6734 dm->cnt_notify[BTC_NCNT_TIMER]++; in rtw89_coex_act1_work()
6749 struct rtw89_btc_dm *dm = &rtwdev->btc.dm; in rtw89_coex_bt_devinfo_work() local
6754 dm->cnt_notify[BTC_NCNT_TIMER]++; in rtw89_coex_bt_devinfo_work()
6765 struct rtw89_btc_dm *dm = &rtwdev->btc.dm; in rtw89_coex_rfk_chk_work() local
6771 dm->cnt_notify[BTC_NCNT_TIMER]++; in rtw89_coex_rfk_chk_work()
6776 dm->error.map.wl_rfk_timeout = true; in rtw89_coex_rfk_chk_work()
6874 struct rtw89_btc_dm *dm = &rtwdev->btc.dm; in _run_coex() local
6887 dm->run_reason = reason; in _run_coex()
6915 __func__, dm->wl_only, dm->bt_only); in _run_coex()
6929 "[BTC], %s(): return for Stop Coex DM!!\n", in _run_coex()
6959 dm->freerun = false; in _run_coex()
6960 dm->cnt_dm[BTC_DCNT_RUN]++; in _run_coex()
6961 dm->fddt_train = BTC_FDDT_DISABLE; in _run_coex()
6965 dm->freerun_chk = _check_freerun(rtwdev); /* check if meet freerun */ in _run_coex()
6973 if (dm->wl_only) { in _run_coex()
6979 if (wl->status.map.rf_off || wl->status.map.lps || dm->bt_only) { in _run_coex()
7076 btc->dm.cnt_notify[BTC_NCNT_POWER_ON]++; in rtw89_btc_ntfy_poweron()
7085 btc->dm.cnt_notify[BTC_NCNT_POWER_OFF]++; in rtw89_btc_ntfy_poweroff()
7104 struct rtw89_btc_dm *dm = &btc->dm; in _set_init_info() local
7108 dm->init_info.init_v7.wl_only = (u8)dm->wl_only; in _set_init_info()
7109 dm->init_info.init_v7.bt_only = (u8)dm->bt_only; in _set_init_info()
7110 dm->init_info.init_v7.wl_init_ok = (u8)wl->status.map.init_ok; in _set_init_info()
7111 dm->init_info.init_v7.cx_other = btc->cx.other.type; in _set_init_info()
7112 dm->init_info.init_v7.wl_guard_ch = chip->afh_guard_ch; in _set_init_info()
7113 dm->init_info.init_v7.module = btc->mdinfo.md_v7; in _set_init_info()
7115 dm->init_info.init.wl_only = (u8)dm->wl_only; in _set_init_info()
7116 dm->init_info.init.bt_only = (u8)dm->bt_only; in _set_init_info()
7117 dm->init_info.init.wl_init_ok = (u8)wl->status.map.init_ok; in _set_init_info()
7118 dm->init_info.init.dbcc_en = rtwdev->dbcc_en; in _set_init_info()
7119 dm->init_info.init.cx_other = btc->cx.other.type; in _set_init_info()
7120 dm->init_info.init.wl_guard_ch = chip->afh_guard_ch; in _set_init_info()
7121 dm->init_info.init.module = btc->mdinfo.md; in _set_init_info()
7128 struct rtw89_btc_dm *dm = &rtwdev->btc.dm; in rtw89_btc_ntfy_init() local
7134 btc->dm.run_reason = BTC_RSN_NONE; in rtw89_btc_ntfy_init()
7135 btc->dm.run_action = BTC_ACT_NONE; in rtw89_btc_ntfy_init()
7145 dm->cnt_notify[BTC_NCNT_INIT_COEX]++; in rtw89_btc_ntfy_init()
7146 dm->wl_only = mode == BTC_MODE_WL ? 1 : 0; in rtw89_btc_ntfy_init()
7147 dm->bt_only = mode == BTC_MODE_BT ? 1 : 0; in rtw89_btc_ntfy_init()
7157 dm->error.map.init = true; in rtw89_btc_ntfy_init()
7168 dm->error.map.pta_owner = true; in rtw89_btc_ntfy_init()
7193 btc->dm.cnt_notify[BTC_NCNT_SCAN_START]++; in rtw89_btc_ntfy_scan_start()
7215 btc->dm.cnt_notify[BTC_NCNT_SCAN_FINISH]++; in rtw89_btc_ntfy_scan_finish()
7241 btc->dm.cnt_notify[BTC_NCNT_SWITCH_BAND]++; in rtw89_btc_ntfy_switch_band()
7311 btc->dm.cnt_notify[BTC_NCNT_SPECIAL_PACKET]++; in rtw89_btc_ntfy_specific_packet()
7394 if (mode == BTC_WLINK_5G || rtwdev->btc.dm.freerun) { in _update_zb_coex_tbl()
7458 btc->dm.trx_info.bt_profile = u32_get_bits(btinfo.val, BT_PROFILE_PROTOCOL_MASK); in _update_bt_info()
7476 btc->dm.trx_info.bt_rssi = bt->rssi_level; in _update_bt_info()
7626 btc->dm.cnt_notify[BTC_NCNT_ROLE_INFO]++; in rtw89_btc_ntfy_role_info()
7667 btc->dm.leak_ap = 0; in rtw89_btc_ntfy_role_info()
7689 btc->dm.cnt_notify[BTC_NCNT_RADIO_STATE]++; in rtw89_btc_ntfy_radio_state()
7734 btc->dm.cnt_dm[BTC_DCNT_BTCNT_HANG] = 0; in rtw89_btc_ntfy_radio_state()
7735 btc->dm.tdma_instant_excute = 1; in rtw89_btc_ntfy_radio_state()
7768 btc->dm.cnt_notify[BTC_NCNT_WL_RFK]++; in _ntfy_wl_rfk()
7805 __func__, btc->dm.cnt_notify[BTC_NCNT_WL_RFK], result); in _ntfy_wl_rfk()
7863 struct rtw89_btc_dm *dm = &btc->dm; in __rtw89_btc_ntfy_wl_sta_iter() local
7950 dm->trx_info.tx_rate = link_info_t->tx_rate; in __rtw89_btc_ntfy_wl_sta_iter()
7951 dm->trx_info.rx_rate = link_info_t->rx_rate; in __rtw89_btc_ntfy_wl_sta_iter()
7967 dm->trx_info.tx_lvl = stats->tx_tfc_lv; in __rtw89_btc_ntfy_wl_sta_iter()
7968 dm->trx_info.rx_lvl = stats->rx_tfc_lv; in __rtw89_btc_ntfy_wl_sta_iter()
7969 dm->trx_info.tx_rate = rtwsta_link->ra_report.hw_rate; in __rtw89_btc_ntfy_wl_sta_iter()
7970 dm->trx_info.rx_rate = rtwsta_link->rx_hw_rate; in __rtw89_btc_ntfy_wl_sta_iter()
7973 dm->trx_info.tx_tp = link_info_t->tx_throughput; in __rtw89_btc_ntfy_wl_sta_iter()
7974 dm->trx_info.rx_tp = link_info_t->rx_throughput; in __rtw89_btc_ntfy_wl_sta_iter()
7977 if ((dm->wl_btg_rx_rb != dm->wl_btg_rx && in __rtw89_btc_ntfy_wl_sta_iter()
7978 dm->wl_btg_rx_rb != BTC_BTGCTRL_BB_GNT_NOTFOUND) || in __rtw89_btc_ntfy_wl_sta_iter()
7979 (dm->wl_pre_agc_rb != dm->wl_pre_agc && in __rtw89_btc_ntfy_wl_sta_iter()
7980 dm->wl_pre_agc_rb != BTC_PREAGC_NOTFOUND)) in __rtw89_btc_ntfy_wl_sta_iter()
8010 struct rtw89_btc_dm *dm = &btc->dm; in rtw89_btc_ntfy_wl_sta() local
8020 btc->dm.cnt_notify[BTC_NCNT_WL_STA]++; in rtw89_btc_ntfy_wl_sta()
8029 if (dm->trx_info.wl_rssi != wl->rssi_level) in rtw89_btc_ntfy_wl_sta()
8030 dm->trx_info.wl_rssi = wl->rssi_level; in rtw89_btc_ntfy_wl_sta()
8043 } else if (btc->dm.cnt_notify[BTC_NCNT_WL_STA] >= in rtw89_btc_ntfy_wl_sta()
8044 btc->dm.cnt_dm[BTC_DCNT_WL_STA_LAST] + BTC_NHM_CHK_INTVL) { in rtw89_btc_ntfy_wl_sta()
8045 btc->dm.cnt_dm[BTC_DCNT_WL_STA_LAST] = in rtw89_btc_ntfy_wl_sta()
8046 btc->dm.cnt_notify[BTC_NCNT_WL_STA]; in rtw89_btc_ntfy_wl_sta()
8047 } else if (btc->dm.cnt_notify[BTC_NCNT_WL_STA] < in rtw89_btc_ntfy_wl_sta()
8048 btc->dm.cnt_dm[BTC_DCNT_WL_STA_LAST]) { in rtw89_btc_ntfy_wl_sta()
8049 btc->dm.cnt_dm[BTC_DCNT_WL_STA_LAST] = in rtw89_btc_ntfy_wl_sta()
8050 btc->dm.cnt_notify[BTC_NCNT_WL_STA]; in rtw89_btc_ntfy_wl_sta()
8152 btc->dm.cnt_dm[BTC_DCNT_CX_RUNINFO]++; in rtw89_btc_c2h_handle()
8166 struct rtw89_btc_dm *dm = &btc->dm; in _show_cx_info() local
8172 if (!(dm->coex_info_map & BTC_COEX_INFO_CX)) in _show_cx_info()
8175 dm->cnt_notify[BTC_NCNT_SHOW_COEX_INFO]++; in _show_cx_info()
8319 if (!(btc->dm.coex_info_map & BTC_COEX_INFO_WL)) in _show_wl_info()
8425 if (!(btc->dm.coex_info_map & BTC_COEX_INFO_BT)) in _show_bt_info()
8465 " %-15s : rssi:%ddBm(lvl:%d), tx_rate:%dM, %s%s%s", in _show_bt_info()
8883 struct rtw89_btc_dm *dm = &btc->dm; in _show_dm_step() local
8887 len = dm->dm_step.step_ov ? RTW89_BTC_DM_MAXSTEP : dm->dm_step.step_pos; in _show_dm_step()
8888 start_idx = dm->dm_step.step_ov ? dm->dm_step.step_pos : 0; in _show_dm_step()
8890 seq_print_segment(m, "[dm_steps]", dm->dm_step.step, len, 6, start_idx, in _show_dm_step()
8891 ARRAY_SIZE(dm->dm_step.step)); in _show_dm_step()
8898 struct rtw89_btc_dm *dm = &btc->dm; in _show_dm_info() local
8903 if (!(dm->coex_info_map & BTC_COEX_INFO_DM)) in _show_dm_info()
8913 steps_to_str(dm->run_reason), in _show_dm_info()
8914 steps_to_str(dm->run_action | BTC_ACT_EXT_BIT), in _show_dm_info()
8915 id_to_ant(FIELD_GET(GENMASK(7, 0), dm->set_ant_path)), in _show_dm_info()
8917 dm->cnt_dm[BTC_DCNT_RUN]); in _show_dm_info()
8927 "[dm_flag]", dm->wl_only, dm->bt_only, igno_bt, in _show_dm_info()
8928 dm->freerun, btc->lps, dm->wl_mimo_ps); in _show_dm_info()
8930 seq_printf(m, "leak_ap:%d, fw_offload:%s%s\n", dm->leak_ap, in _show_dm_info()
8932 (dm->wl_fw_cx_offload == BTC_CX_FW_OFFLOAD ? in _show_dm_info()
8935 if (dm->rf_trx_para.wl_tx_power == 0xff) in _show_dm_info()
8938 "[trx_ctrl]", wl->rssi_level, dm->trx_para_level); in _show_dm_info()
8943 "[trx_ctrl]", wl->rssi_level, dm->trx_para_level, in _show_dm_info()
8944 dm->rf_trx_para.wl_tx_power); in _show_dm_info()
8948 dm->rf_trx_para.wl_rx_gain, dm->rf_trx_para.bt_tx_power, in _show_dm_info()
8949 dm->rf_trx_para.bt_rx_gain, in _show_dm_info()
8950 (bt->hi_lna_rx ? "Hi" : "Ori"), dm->wl_btg_rx); in _show_dm_info()
8954 "[dm_ctrl]", dm->wl_tx_limit.enable, dm->wl_tx_limit.tx_time, in _show_dm_info()
8955 dm->wl_tx_limit.tx_retry, btc->bt_req_len, bt->scan_rx_low_pri); in _show_dm_info()
9062 struct rtw89_btc_dm *dm = &btc->dm; in _show_fbtc_slots() local
9069 dur = le16_to_cpu(dm->slot_now.v1[i].dur); in _show_fbtc_slots()
9070 tbl = le32_to_cpu(dm->slot_now.v1[i].cxtbl); in _show_fbtc_slots()
9071 cxtype = le16_to_cpu(dm->slot_now.v1[i].cxtype); in _show_fbtc_slots()
9073 dur = le16_to_cpu(dm->slot_now.v7[i].dur); in _show_fbtc_slots()
9074 tbl = le32_to_cpu(dm->slot_now.v7[i].cxtbl); in _show_fbtc_slots()
9075 cxtype = le16_to_cpu(dm->slot_now.v7[i].cxtype); in _show_fbtc_slots()
9102 struct rtw89_btc_dm *dm = &btc->dm; in _show_fbtc_cysta_v2() local
9131 if (dm->tdma_now.rxflctrl) { in _show_fbtc_cysta_v2()
9204 r.val = dm->tdma_now.rxflctrl; in _show_fbtc_cysta_v2()
9231 struct rtw89_btc_dm *dm = &btc->dm; in _show_fbtc_cysta_v3() local
9260 if (dm->tdma_now.rxflctrl) in _show_fbtc_cysta_v3()
9318 seq_printf(m, "(%d/%d/%dM/%d/%d/%d)", in _show_fbtc_cysta_v3()
9330 seq_printf(m, "(%d/%d/%dM/%d/%d/%d)", in _show_fbtc_cysta_v3()
9361 struct rtw89_btc_dm *dm = &btc->dm; in _show_fbtc_cysta_v4() local
9390 if (dm->tdma_now.rxflctrl) in _show_fbtc_cysta_v4()
9450 seq_printf(m, "(%d/%d/%dM/%d/%d/%d)", in _show_fbtc_cysta_v4()
9462 seq_printf(m, "(%d/%d/%dM/%d/%d/%d)", in _show_fbtc_cysta_v4()
9493 struct rtw89_btc_dm *dm = &btc->dm; in _show_fbtc_cysta_v5() local
9522 if (dm->tdma_now.rxflctrl) in _show_fbtc_cysta_v5()
9581 seq_printf(m, "(%d/%d/%dM/%d/%d/%d)", in _show_fbtc_cysta_v5()
9593 seq_printf(m, "(%d/%d/%dM/%d/%d/%d)", in _show_fbtc_cysta_v5()
9625 struct rtw89_btc_dm *dm = &rtwdev->btc.dm; in _show_fbtc_cysta_v7() local
9646 if (dm->tdma_now.rxflctrl) in _show_fbtc_cysta_v7()
9665 dm->bt_slot_flood, dm->cnt_dm[BTC_DCNT_BT_SLOT_FLOOD], in _show_fbtc_cysta_v7()
9722 seq_printf(m, "(%d/%d/%d/%dM/%d/%d/%d)", in _show_fbtc_cysta_v7()
9736 seq_printf(m, "(%d/%d/%d/%dM/%d/%d/%d)", in _show_fbtc_cysta_v7()
9758 if (!btc->dm.tdma_now.rxflctrl) in _show_fbtc_nullsta()
9967 if (!(btc->dm.coex_info_map & BTC_COEX_INFO_DM)) in _show_fw_dm_msg()
10092 if (!(btc->dm.coex_info_map & BTC_COEX_INFO_MREG)) in _show_mreg_v1()
10103 btc->dm.pta_owner = rtw89_mac_get_ctrl_path(rtwdev); in _show_mreg_v1()
10111 btc->dm.pta_owner == BTC_CTRL_BY_WL ? "WL" : "BT", in _show_mreg_v1()
10170 if (!(btc->dm.coex_info_map & BTC_COEX_INFO_MREG)) in _show_mreg_v2()
10181 btc->dm.pta_owner = rtw89_mac_get_ctrl_path(rtwdev); in _show_mreg_v2()
10189 btc->dm.pta_owner == BTC_CTRL_BY_WL ? "WL" : "BT", in _show_mreg_v2()
10244 struct rtw89_btc_dm *dm = &btc->dm; in _show_mreg_v7() local
10248 if (!(dm->coex_info_map & BTC_COEX_INFO_MREG)) in _show_mreg_v7()
10260 dm->pta_owner = rtw89_mac_get_ctrl_path(rtwdev); in _show_mreg_v7()
10266 dm->pta_owner == BTC_CTRL_BY_WL ? "WL" : "BT", in _show_mreg_v7()
10269 gnt = &dm->gnt.band[RTW89_PHY_0]; in _show_mreg_v7()
10276 gnt = &dm->gnt.band[RTW89_PHY_1]; in _show_mreg_v7()
10311 struct rtw89_btc_dm *dm = &btc->dm; in _show_summary_v1() local
10314 u32 cnt_sum = 0, *cnt = btc->dm.cnt_notify; in _show_summary_v1()
10317 if (!(dm->coex_info_map & BTC_COEX_INFO_SUMMARY)) in _show_summary_v1()
10335 prptctrl->rpt_enable, dm->error.val); in _show_summary_v1()
10337 if (dm->error.map.wl_fw_hang) in _show_summary_v1()
10371 dm->error.map.wl_rfk_timeout = bt->rfk_info.map.timeout; in _show_summary_v1()
10383 cnt_sum += dm->cnt_notify[i]; in _show_summary_v1()
10415 struct rtw89_btc_dm *dm = &btc->dm; in _show_summary_v4() local
10418 u32 cnt_sum = 0, *cnt = btc->dm.cnt_notify; in _show_summary_v4()
10421 if (!(dm->coex_info_map & BTC_COEX_INFO_SUMMARY)) in _show_summary_v4()
10443 dm->error.val); in _show_summary_v4()
10445 if (dm->error.map.wl_fw_hang) in _show_summary_v4()
10483 dm->error.map.wl_rfk_timeout = bt->rfk_info.map.timeout; in _show_summary_v4()
10495 cnt_sum += dm->cnt_notify[i]; in _show_summary_v4()
10527 struct rtw89_btc_dm *dm = &btc->dm; in _show_summary_v5() local
10529 u32 cnt_sum = 0, *cnt = btc->dm.cnt_notify; in _show_summary_v5()
10532 if (!(dm->coex_info_map & BTC_COEX_INFO_SUMMARY)) in _show_summary_v5()
10555 if (dm->error.map.wl_fw_hang) in _show_summary_v5()
10607 cnt_sum += dm->cnt_notify[i]; in _show_summary_v5()
10642 struct rtw89_btc_dm *dm = &btc->dm; in _show_summary_v105() local
10644 u32 cnt_sum = 0, *cnt = btc->dm.cnt_notify; in _show_summary_v105()
10647 if (!(dm->coex_info_map & BTC_COEX_INFO_SUMMARY)) in _show_summary_v105()
10670 if (dm->error.map.wl_fw_hang) in _show_summary_v105()
10722 cnt_sum += dm->cnt_notify[i]; in _show_summary_v105()
10756 struct rtw89_btc_dm *dm = &rtwdev->btc.dm; in _show_summary_v7() local
10758 u32 *cnt = rtwdev->btc.dm.cnt_notify; in _show_summary_v7()
10762 if (!(dm->coex_info_map & BTC_COEX_INFO_SUMMARY)) in _show_summary_v7()
10786 if (dm->error.map.wl_fw_hang) in _show_summary_v7()
10825 cnt_sum += dm->cnt_notify[i]; in _show_summary_v7()
10858 struct rtw89_btc_dm *dm = &rtwdev->btc.dm; in _show_summary_v8() local
10860 u32 *cnt = rtwdev->btc.dm.cnt_notify; in _show_summary_v8()
10864 if (!(dm->coex_info_map & BTC_COEX_INFO_SUMMARY)) in _show_summary_v8()
10888 if (dm->error.map.wl_fw_hang) in _show_summary_v8()
10927 cnt_sum += dm->cnt_notify[i]; in _show_summary_v8()