Lines Matching full:dm
884 struct rtw89_btc_dm *dm = &btc->dm; in _send_fw_cmd() local
889 dm->error.map.h2c_buffer_over = true; in _send_fw_cmd()
947 memset(&btc->dm, 0, sizeof(btc->dm)); in _reset_btc_var()
958 btc->dm.tdma_now = t_def[CXTD_OFF]; in _reset_btc_var()
959 btc->dm.tdma = t_def[CXTD_OFF]; in _reset_btc_var()
962 btc->dm.slot.v7[i].dur = s_def[i].dur; in _reset_btc_var()
963 btc->dm.slot.v7[i].cxtype = s_def[i].cxtype; in _reset_btc_var()
964 btc->dm.slot.v7[i].cxtbl = s_def[i].cxtbl; in _reset_btc_var()
966 memcpy(&btc->dm.slot_now.v7, &btc->dm.slot.v7, in _reset_btc_var()
967 sizeof(btc->dm.slot_now.v7)); in _reset_btc_var()
969 memcpy(&btc->dm.slot_now.v1, s_def, in _reset_btc_var()
970 sizeof(btc->dm.slot_now.v1)); in _reset_btc_var()
971 memcpy(&btc->dm.slot.v1, s_def, in _reset_btc_var()
972 sizeof(btc->dm.slot.v1)); in _reset_btc_var()
978 btc->dm.coex_info_map = BTC_COEX_INFO_ALL; in _reset_btc_var()
979 btc->dm.wl_tx_limit.tx_time = BTC_MAX_TX_TIME_DEF; in _reset_btc_var()
980 btc->dm.wl_tx_limit.tx_retry = BTC_MAX_TX_RETRY_DEF; in _reset_btc_var()
981 btc->dm.wl_pre_agc_rb = BTC_PREAGC_NOTFOUND; in _reset_btc_var()
982 btc->dm.wl_btg_rx_rb = BTC_BTGCTRL_BB_GNT_NOTFOUND; in _reset_btc_var()
1109 struct rtw89_btc_dm *dm = &btc->dm; in _chk_btc_err() local
1120 dm->error.map.wl_ver_mismatch = true; in _chk_btc_err()
1123 dm->error.map.wl_ver_mismatch = false; in _chk_btc_err()
1127 if (dm->cnt_dm[BTC_DCNT_RPT] == cnt && btc->fwinfo.rpt_en_map) in _chk_btc_err()
1128 dm->cnt_dm[BTC_DCNT_RPT_HANG]++; in _chk_btc_err()
1130 dm->cnt_dm[BTC_DCNT_RPT_HANG] = 0; in _chk_btc_err()
1132 if (dm->cnt_dm[BTC_DCNT_RPT_HANG] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1133 dm->error.map.wl_fw_hang = true; in _chk_btc_err()
1135 dm->error.map.wl_fw_hang = false; in _chk_btc_err()
1137 dm->cnt_dm[BTC_DCNT_RPT] = cnt; in _chk_btc_err()
1140 if (dm->cnt_dm[BTC_DCNT_CYCLE] == cnt && in _chk_btc_err()
1141 (dm->tdma_now.type != CXTDMA_OFF || in _chk_btc_err()
1142 dm->tdma_now.ext_ctrl == CXECTL_EXT)) in _chk_btc_err()
1143 dm->cnt_dm[BTC_DCNT_CYCLE_HANG]++; in _chk_btc_err()
1145 dm->cnt_dm[BTC_DCNT_CYCLE_HANG] = 0; in _chk_btc_err()
1147 if (dm->cnt_dm[BTC_DCNT_CYCLE_HANG] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1148 dm->error.map.cycle_hang = true; in _chk_btc_err()
1150 dm->error.map.cycle_hang = false; in _chk_btc_err()
1152 dm->cnt_dm[BTC_DCNT_CYCLE] = cnt; in _chk_btc_err()
1155 if (dm->cnt_dm[BTC_DCNT_W1] == cnt && in _chk_btc_err()
1156 dm->tdma_now.type != CXTDMA_OFF) in _chk_btc_err()
1157 dm->cnt_dm[BTC_DCNT_W1_HANG]++; in _chk_btc_err()
1159 dm->cnt_dm[BTC_DCNT_W1_HANG] = 0; in _chk_btc_err()
1161 if (dm->cnt_dm[BTC_DCNT_W1_HANG] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1162 dm->error.map.w1_hang = true; in _chk_btc_err()
1164 dm->error.map.w1_hang = false; in _chk_btc_err()
1166 dm->cnt_dm[BTC_DCNT_W1] = cnt; in _chk_btc_err()
1169 if (dm->cnt_dm[BTC_DCNT_B1] == cnt && in _chk_btc_err()
1170 dm->tdma_now.type != CXTDMA_OFF) in _chk_btc_err()
1171 dm->cnt_dm[BTC_DCNT_B1_HANG]++; in _chk_btc_err()
1173 dm->cnt_dm[BTC_DCNT_B1_HANG] = 0; in _chk_btc_err()
1175 if (dm->cnt_dm[BTC_DCNT_B1_HANG] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1176 dm->error.map.b1_hang = true; in _chk_btc_err()
1178 dm->error.map.b1_hang = false; in _chk_btc_err()
1180 dm->cnt_dm[BTC_DCNT_B1] = cnt; in _chk_btc_err()
1183 if (dm->cnt_dm[BTC_DCNT_E2G] == cnt && in _chk_btc_err()
1184 dm->tdma_now.ext_ctrl == CXECTL_EXT) in _chk_btc_err()
1185 dm->cnt_dm[BTC_DCNT_E2G_HANG]++; in _chk_btc_err()
1187 dm->cnt_dm[BTC_DCNT_E2G_HANG] = 0; in _chk_btc_err()
1189 if (dm->cnt_dm[BTC_DCNT_E2G_HANG] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1190 dm->error.map.wl_e2g_hang = true; in _chk_btc_err()
1192 dm->error.map.wl_e2g_hang = false; in _chk_btc_err()
1194 dm->cnt_dm[BTC_DCNT_E2G] = cnt; in _chk_btc_err()
1198 dm->cnt_dm[BTC_DCNT_TDMA_NONSYNC]++; in _chk_btc_err()
1200 dm->cnt_dm[BTC_DCNT_TDMA_NONSYNC] = 0; in _chk_btc_err()
1202 if (dm->cnt_dm[BTC_DCNT_TDMA_NONSYNC] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1203 dm->error.map.tdma_no_sync = true; in _chk_btc_err()
1205 dm->error.map.tdma_no_sync = false; in _chk_btc_err()
1209 dm->cnt_dm[BTC_DCNT_SLOT_NONSYNC]++; in _chk_btc_err()
1211 dm->cnt_dm[BTC_DCNT_SLOT_NONSYNC] = 0; in _chk_btc_err()
1213 if (dm->cnt_dm[BTC_DCNT_SLOT_NONSYNC] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1214 dm->error.map.slot_no_sync = true; in _chk_btc_err()
1216 dm->error.map.slot_no_sync = false; in _chk_btc_err()
1222 dm->cnt_dm[BTC_DCNT_BTTX_HANG]++; in _chk_btc_err()
1224 dm->cnt_dm[BTC_DCNT_BTTX_HANG] = 0; in _chk_btc_err()
1226 if (dm->cnt_dm[BTC_DCNT_BTTX_HANG] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1227 dm->error.map.bt_tx_hang = true; in _chk_btc_err()
1229 dm->error.map.bt_tx_hang = false; in _chk_btc_err()
1238 dm->cnt_dm[BTC_DCNT_BTCNT_HANG]++; in _chk_btc_err()
1240 dm->cnt_dm[BTC_DCNT_BTCNT_HANG] = 0; in _chk_btc_err()
1242 if ((dm->cnt_dm[BTC_DCNT_BTCNT_HANG] >= BTC_CHK_HANG_MAX && in _chk_btc_err()
1243 bt->enable.now) || (!dm->cnt_dm[BTC_DCNT_BTCNT_HANG] && in _chk_btc_err()
1249 dm->cnt_dm[BTC_DCNT_WL_SLOT_DRIFT]++; in _chk_btc_err()
1251 dm->cnt_dm[BTC_DCNT_WL_SLOT_DRIFT] = 0; in _chk_btc_err()
1253 if (dm->cnt_dm[BTC_DCNT_WL_SLOT_DRIFT] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1254 dm->error.map.wl_slot_drift = true; in _chk_btc_err()
1256 dm->error.map.wl_slot_drift = false; in _chk_btc_err()
1260 dm->cnt_dm[BTC_DCNT_BT_SLOT_DRIFT]++; in _chk_btc_err()
1262 dm->cnt_dm[BTC_DCNT_BT_SLOT_DRIFT] = 0; in _chk_btc_err()
1264 if (dm->cnt_dm[BTC_DCNT_BT_SLOT_DRIFT] >= BTC_CHK_HANG_MAX) in _chk_btc_err()
1265 dm->error.map.bt_slot_drift = true; in _chk_btc_err()
1267 dm->error.map.bt_slot_drift = false; in _chk_btc_err()
1415 struct rtw89_btc_dm *dm = &btc->dm; in _chk_btc_report() local
1713 dm->wl_fw_cx_offload = !!prpt->v1.wl_fw_cx_offload; in _chk_btc_report()
1733 dm->wl_fw_cx_offload = !!le32_to_cpu(prpt->v4.wl_fw_info.cx_offload); in _chk_btc_report()
1736 memcpy(&dm->gnt.band[i], &prpt->v4.gnt_val[i], in _chk_btc_report()
1737 sizeof(dm->gnt.band[i])); in _chk_btc_report()
1759 dm->error.map.bt_rfk_timeout = bt->rfk_info.map.timeout; in _chk_btc_report()
1765 dm->wl_fw_cx_offload = 0; in _chk_btc_report()
1768 memcpy(&dm->gnt.band[i], &prpt->v5.gnt_val[i][0], in _chk_btc_report()
1769 sizeof(dm->gnt.band[i])); in _chk_btc_report()
1786 dm->error.map.bt_rfk_timeout = bt->rfk_info.map.timeout; in _chk_btc_report()
1792 dm->wl_fw_cx_offload = 0; in _chk_btc_report()
1795 memcpy(&dm->gnt.band[i], &prpt->v105.gnt_val[i][0], in _chk_btc_report()
1796 sizeof(dm->gnt.band[i])); in _chk_btc_report()
1813 dm->error.map.bt_rfk_timeout = bt->rfk_info.map.timeout; in _chk_btc_report()
1821 memcpy(&dm->gnt.band[i], &prpt->v7.gnt_val[i][0], in _chk_btc_report()
1822 sizeof(dm->gnt.band[i])); in _chk_btc_report()
1853 memcpy(&dm->gnt.band[i], &prpt->v8.gnt_val[i][0], in _chk_btc_report()
1854 sizeof(dm->gnt.band[i])); in _chk_btc_report()
1876 dm->error.map.h2c_c2h_buffer_mismatch = true; in _chk_btc_report()
1878 dm->error.map.h2c_c2h_buffer_mismatch = false; in _chk_btc_report()
1892 sizeof(dm->tdma_now)); in _chk_btc_report()
1895 memcmp(&dm->tdma_now, in _chk_btc_report()
1897 sizeof(dm->tdma_now))); in _chk_btc_report()
1900 memcmp(&dm->tdma_now, in _chk_btc_report()
1902 sizeof(dm->tdma_now))); in _chk_btc_report()
1911 sizeof(dm->slot_now.v7)); in _chk_btc_report()
1913 memcmp(dm->slot_now.v7, in _chk_btc_report()
1915 sizeof(dm->slot_now.v7))); in _chk_btc_report()
1920 sizeof(dm->slot_now.v1)); in _chk_btc_report()
1922 memcmp(dm->slot_now.v1, in _chk_btc_report()
1924 sizeof(dm->slot_now.v1))); in _chk_btc_report()
1933 le32_to_cpu(pcysta->v2.leakrx_cnt) != 0 && dm->tdma_now.rxflctrl) { in _chk_btc_report()
1936 dm->leak_ap = 1; in _chk_btc_report()
1940 if (dm->tdma_now.type == CXTDMA_OFF && in _chk_btc_report()
1941 dm->tdma_now.ext_ctrl == CXECTL_EXT) { in _chk_btc_report()
1943 wl_slot_set = le16_to_cpu(dm->slot_now.v1[CXST_E2G].dur); in _chk_btc_report()
1945 wl_slot_set = le16_to_cpu(dm->slot_now.v7[CXST_E2G].dur); in _chk_btc_report()
1948 wl_slot_set = le16_to_cpu(dm->slot_now.v1[CXST_W1].dur); in _chk_btc_report()
1950 wl_slot_set = le16_to_cpu(dm->slot_now.v7[CXST_W1].dur); in _chk_btc_report()
1974 dm->tdma_now.rxflctrl) { in _chk_btc_report()
1976 dm->leak_ap = 1; in _chk_btc_report()
1980 if (dm->tdma_now.type == CXTDMA_OFF) { in _chk_btc_report()
1982 wl_slot_set = le16_to_cpu(dm->slot_now.v1[CXST_W1].dur); in _chk_btc_report()
1984 wl_slot_set = le16_to_cpu(dm->slot_now.v7[CXST_W1].dur); in _chk_btc_report()
1993 if (dm->tdma_now.type == CXTDMA_OFF && in _chk_btc_report()
1994 dm->tdma_now.ext_ctrl == CXECTL_EXT && in _chk_btc_report()
2018 dm->tdma_now.rxflctrl) { in _chk_btc_report()
2020 dm->leak_ap = 1; in _chk_btc_report()
2024 if (dm->tdma_now.type == CXTDMA_OFF) { in _chk_btc_report()
2026 wl_slot_set = le16_to_cpu(dm->slot_now.v1[CXST_W1].dur); in _chk_btc_report()
2028 wl_slot_set = le16_to_cpu(dm->slot_now.v7[CXST_W1].dur); in _chk_btc_report()
2037 if (dm->tdma_now.type == CXTDMA_OFF && in _chk_btc_report()
2038 dm->tdma_now.ext_ctrl == CXECTL_EXT && in _chk_btc_report()
2055 if (dm->fddt_train == BTC_FDDT_ENABLE) in _chk_btc_report()
2062 dm->tdma_now.rxflctrl) { in _chk_btc_report()
2065 dm->leak_ap = 1; in _chk_btc_report()
2069 if (dm->tdma_now.type == CXTDMA_OFF) { in _chk_btc_report()
2071 wl_slot_set = le16_to_cpu(dm->slot_now.v1[CXST_W1].dur); in _chk_btc_report()
2073 wl_slot_set = le16_to_cpu(dm->slot_now.v7[CXST_W1].dur); in _chk_btc_report()
2087 if (dm->tdma_now.type == CXTDMA_OFF && in _chk_btc_report()
2088 dm->tdma_now.ext_ctrl == CXECTL_EXT && in _chk_btc_report()
2106 if (dm->fddt_train == BTC_FDDT_ENABLE) in _chk_btc_report()
2111 if (dm->tdma_now.type != CXTDMA_OFF) { in _chk_btc_report()
2122 if (dm->tdma_now.rxflctrl && in _chk_btc_report()
2124 dm->leak_ap = 1; in _chk_btc_report()
2125 } else if (dm->tdma_now.ext_ctrl == CXECTL_EXT) { in _chk_btc_report()
2137 dm->slot_req_more = 1; in _chk_btc_report()
2139 dm->slot_req_more = 0; in _chk_btc_report()
2162 if (dm->wl_btg_rx == BTC_BTGCTRL_BB_GNT_FWCTRL) in _chk_btc_report()
2163 dm->wl_btg_rx_rb = BTC_BTGCTRL_BB_GNT_FWCTRL; in _chk_btc_report()
2165 dm->wl_btg_rx_rb = val; in _chk_btc_report()
2168 if (dm->wl_pre_agc == BTC_PREAGC_BB_FWCTRL) in _chk_btc_report()
2169 dm->wl_pre_agc_rb = BTC_PREAGC_BB_FWCTRL; in _chk_btc_report()
2171 dm->wl_pre_agc_rb = val; in _chk_btc_report()
2223 struct rtw89_btc_dm *dm = &btc->dm; in _append_tdma() local
2231 !memcmp(&dm->tdma, &dm->tdma_now, sizeof(dm->tdma))) { in _append_tdma()
2243 *v = dm->tdma; in _append_tdma()
2247 tlv_v7->len = sizeof(dm->tdma); in _append_tdma()
2250 memcpy(tlv_v7->val, &dm->tdma, tlv_v7->len); in _append_tdma()
2256 v3->tdma = dm->tdma; in _append_tdma()
2262 __func__, dm->tdma.type, dm->tdma.rxflctrl, in _append_tdma()
2263 dm->tdma.txpause, dm->tdma.wtgle_n, dm->tdma.leak_n, in _append_tdma()
2264 dm->tdma.ext_ctrl); in _append_tdma()
2270 struct rtw89_btc_dm *dm = &btc->dm; in _append_slot_v1() local
2282 !memcmp(&dm->slot.v1[i], &dm->slot_now.v1[i], in _append_slot_v1()
2283 sizeof(dm->slot.v1[i]))) in _append_slot_v1()
2295 v->slot = dm->slot.v1[i]; in _append_slot_v1()
2299 __func__, i, dm->slot.v1[i].dur, dm->slot.v1[i].cxtbl, in _append_slot_v1()
2300 dm->slot.v1[i].cxtype); in _append_slot_v1()
2316 struct rtw89_btc_dm *dm = &btc->dm; in _append_slot_v7() local
2322 !memcmp(&dm->slot.v7[i], &dm->slot_now.v7[i], in _append_slot_v7()
2323 sizeof(dm->slot.v7[i]))) in _append_slot_v7()
2338 tlv->len = sizeof(dm->slot.v7[0]) + BTC_TLV_SLOT_ID_LEN_V7; in _append_slot_v7()
2349 memcpy(&btc->policy[len + 1], &dm->slot.v7[i], in _append_slot_v7()
2350 sizeof(dm->slot.v7[0])); in _append_slot_v7()
2355 __func__, btc->policy_len, i, dm->slot.v7[i].dur, in _append_slot_v7()
2356 dm->slot.v7[i].cxtype, dm->slot.v7[i].cxtbl); in _append_slot_v7()
2560 struct rtw89_btc_dm *dm = &btc->dm; in rtw89_btc_fw_set_slots() local
2564 len = sizeof(*tlv_v7) + sizeof(dm->slot.v7); in rtw89_btc_fw_set_slots()
2571 tlv_v7->len = ARRAY_SIZE(dm->slot.v7); in rtw89_btc_fw_set_slots()
2572 memcpy(tlv_v7->val, dm->slot.v7, sizeof(dm->slot.v7)); in rtw89_btc_fw_set_slots()
2585 memcpy(tbl->tbls, dm->slot.v1, flex_array_size(tbl, tbls, CXST_MAX)); in rtw89_btc_fw_set_slots()
2709 struct rtw89_btc_dm *dm = &btc->dm; in _update_dm_step() local
2711 /* use ring-structure to store dm step */ in _update_dm_step()
2712 dm->dm_step.step[dm->dm_step.step_pos] = reason_or_action; in _update_dm_step()
2713 dm->dm_step.step_pos++; in _update_dm_step()
2715 if (dm->dm_step.step_pos >= ARRAY_SIZE(dm->dm_step.step)) { in _update_dm_step()
2716 dm->dm_step.step_pos = 0; in _update_dm_step()
2717 dm->dm_step.step_ov = true; in _update_dm_step()
2725 struct rtw89_btc_dm *dm = &btc->dm; in _fw_set_policy() local
2728 dm->run_action = action; in _fw_set_policy()
2746 if (dm->tdma.rxflctrl == CXFLC_NULLP || in _fw_set_policy()
2747 dm->tdma.rxflctrl == CXFLC_QOSNULL) in _fw_set_policy()
2758 memcpy(&dm->tdma_now, &dm->tdma, sizeof(dm->tdma_now)); in _fw_set_policy()
2760 memcpy(&dm->slot_now.v7, &dm->slot.v7, sizeof(dm->slot_now.v7)); in _fw_set_policy()
2762 memcpy(&dm->slot_now.v1, &dm->slot.v1, sizeof(dm->slot_now.v1)); in _fw_set_policy()
2776 struct rtw89_btc_dm *dm = &btc->dm; in _fw_set_drv_info() local
2778 struct rtw89_btc_rf_trx_para rf_para = dm->rf_trx_para; in _fw_set_drv_info()
2812 dm->trx_info.tx_power = u32_get_bits(rf_para.wl_tx_power, in _fw_set_drv_info()
2814 dm->trx_info.rx_gain = u32_get_bits(rf_para.wl_rx_gain, in _fw_set_drv_info()
2816 dm->trx_info.bt_tx_power = u32_get_bits(rf_para.bt_tx_power, in _fw_set_drv_info()
2818 dm->trx_info.bt_rx_gain = u32_get_bits(rf_para.bt_rx_gain, in _fw_set_drv_info()
2820 dm->trx_info.cn = wl->cn_report; in _fw_set_drv_info()
2821 dm->trx_info.nhm = wl->nhm.pwr; in _fw_set_drv_info()
2874 struct rtw89_btc_dm *dm = &btc->dm; in _set_gnt() local
2875 struct rtw89_mac_ax_gnt *g = dm->gnt.band; in _set_gnt()
2916 rtw89_chip_mac_cfg_gnt(rtwdev, &dm->gnt); in _set_gnt()
2923 struct rtw89_btc_dm *dm = &btc->dm; in _set_gnt_v1() local
2924 struct rtw89_btc_fbtc_outsrc_set_info *osi = &dm->ost_info; in _set_gnt_v1()
2925 struct rtw89_mac_ax_wl_act *b = dm->gnt.bt; in _set_gnt_v1()
2926 struct rtw89_mac_ax_gnt *g = dm->gnt.band; in _set_gnt_v1()
2927 u8 i, bt_idx = dm->bt_select + 1; in _set_gnt_v1()
2990 rtw89_mac_cfg_gnt_v2(rtwdev, &dm->gnt); in _set_gnt_v1()
2994 memcpy(osi->gnt_set, dm->gnt.band, sizeof(osi->gnt_set)); in _set_gnt_v1()
2995 memcpy(osi->wlact_set, dm->gnt.bt, sizeof(osi->wlact_set)); in _set_gnt_v1()
3035 btc->dm.rf_trx_para.wl_tx_power = level; in _set_wl_tx_power()
3066 btc->dm.rf_trx_para.wl_rx_gain = level; in _set_wl_rx_gain()
3096 btc->dm.rf_trx_para.bt_tx_power = level; in _set_bt_tx_power()
3116 btc->dm.rf_trx_para.bt_rx_gain = level; in _set_bt_rx_gain()
3135 struct rtw89_btc_dm *dm = &btc->dm; in _set_rf_trx_para() local
3161 if ((btc->dm.wl_btg_rx && b->profile_cnt.now != 0) || in _set_rf_trx_para()
3162 dm->bt_only == 1) in _set_rf_trx_para()
3163 dm->trx_para_level = 1; /* for better BT ACI issue */ in _set_rf_trx_para()
3165 dm->trx_para_level = 0; in _set_rf_trx_para()
3167 dm->trx_para_level = 5; in _set_rf_trx_para()
3173 dm->trx_para_level = 6; in _set_rf_trx_para()
3175 dm->trx_para_level = 7; in _set_rf_trx_para()
3179 level_id = dm->trx_para_level; in _set_rf_trx_para()
3193 if (dm->fddt_train) { in _set_rf_trx_para()
3203 if (!bt->enable.now || dm->wl_only || wl_smap->rf_off || in _set_rf_trx_para()
3212 if (wl_stb_chg != dm->wl_stb_chg) { in _set_rf_trx_para()
3213 dm->wl_stb_chg = wl_stb_chg; in _set_rf_trx_para()
3214 chip->ops->btc_wl_s1_standby(rtwdev, dm->wl_stb_chg); in _set_rf_trx_para()
3465 if (btc->dm.freerun || btc->dm.fddt_train) in _set_bt_afh_info_v1()
3471 if (btc->dm.freerun) in _set_bt_afh_info_v1()
3555 btc->dm.trx_para_level = 0; in _check_freerun()
3561 btc->dm.trx_para_level = 5; in _check_freerun()
3566 btc->dm.trx_para_level = 5; in _check_freerun()
3571 btc->dm.trx_para_level = 5; in _check_freerun()
3577 btc->dm.trx_para_level = 5; in _check_freerun()
3582 btc->dm.trx_para_level = 5; in _check_freerun()
3585 btc->dm.trx_para_level = 0; in _check_freerun()
3589 btc->dm.trx_para_level = 6; in _check_freerun()
3592 btc->dm.trx_para_level = 7; in _check_freerun()
3595 btc->dm.trx_para_level = 0; in _check_freerun()
3599 btc->dm.trx_para_level = 6; in _check_freerun()
3604 btc->dm.trx_para_level = 0; in _check_freerun()
3608 #define _tdma_set_flctrl(btc, flc) ({(btc)->dm.tdma.rxflctrl = flc; })
3609 #define _tdma_set_flctrl_role(btc, role) ({(btc)->dm.tdma.rxflctrl_role = role; })
3610 #define _tdma_set_tog(btc, wtg) ({(btc)->dm.tdma.wtgle_n = wtg; })
3611 #define _tdma_set_lek(btc, lek) ({(btc)->dm.tdma.leak_n = lek; })
3685 struct rtw89_btc_dm *dm = &btc->dm; in rtw89_btc_set_policy() local
3686 struct rtw89_btc_fbtc_tdma *t = &dm->tdma; in rtw89_btc_set_policy()
3687 struct rtw89_btc_fbtc_slot *s = dm->slot.v1; in rtw89_btc_set_policy()
3827 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy()
3829 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1], in rtw89_btc_set_policy()
3884 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy()
3886 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1], in rtw89_btc_set_policy()
3908 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy()
3910 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1], in rtw89_btc_set_policy()
3945 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy()
3947 _slot_set(btc, CXST_B4, dm->slot_dur[CXST_B4], in rtw89_btc_set_policy()
3982 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy()
3984 _slot_set(btc, CXST_B4, dm->slot_dur[CXST_B4], in rtw89_btc_set_policy()
3996 struct rtw89_btc_dm *dm = &btc->dm; in rtw89_btc_set_policy_v1() local
3997 struct rtw89_btc_fbtc_tdma *t = &dm->tdma; in rtw89_btc_set_policy_v1()
4026 if (dm->leak_ap && in rtw89_btc_set_policy_v1()
4132 dur_2 = dm->e2g_slot_limit; in rtw89_btc_set_policy_v1()
4236 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy_v1()
4238 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1], in rtw89_btc_set_policy_v1()
4275 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy_v1()
4277 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1], in rtw89_btc_set_policy_v1()
4302 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy_v1()
4304 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1], in rtw89_btc_set_policy_v1()
4329 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy_v1()
4331 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1], in rtw89_btc_set_policy_v1()
4369 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy_v1()
4371 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1], in rtw89_btc_set_policy_v1()
4373 _slot_set(btc, CXST_B4, dm->slot_dur[CXST_B4], in rtw89_btc_set_policy_v1()
4411 _slot_set(btc, CXST_W1, dm->slot_dur[CXST_W1], in rtw89_btc_set_policy_v1()
4413 _slot_set(btc, CXST_B1, dm->slot_dur[CXST_B1], in rtw89_btc_set_policy_v1()
4415 _slot_set(btc, CXST_B4, dm->slot_dur[CXST_B4], in rtw89_btc_set_policy_v1()
4424 if (wl_rinfo->link_mode == BTC_WLINK_2G_SCC && dm->tdma.rxflctrl) { in rtw89_btc_set_policy_v1()
4425 null_role = FIELD_PREP(0x0f, dm->wl_scc.null_role1) | in rtw89_btc_set_policy_v1()
4426 FIELD_PREP(0xf0, dm->wl_scc.null_role2); in rtw89_btc_set_policy_v1()
4431 if (dm->leak_ap && dm->tdma.leak_n > 1) in rtw89_btc_set_policy_v1()
4434 if (dm->tdma_instant_excute) { in rtw89_btc_set_policy_v1()
4435 btc->dm.tdma.option_ctrl |= BIT(0); in rtw89_btc_set_policy_v1()
4476 struct rtw89_btc_dm *dm = &btc->dm; in _set_ant_v0() local
4496 if (btc->dm.run_reason == BTC_RSN_NTFY_POWEROFF || in _set_ant_v0()
4497 btc->dm.run_reason == BTC_RSN_NTFY_RADIO_STATE || in _set_ant_v0()
4498 btc->dm.run_reason == BTC_RSN_CMD_SET_COEX || dbcc_chg) in _set_ant_v0()
4501 if (!force_exec && ant_path_type == dm->set_ant_path) { in _set_ant_v0()
4510 } else if (btc->dm.run_reason != BTC_RSN_NTFY_WL_RFK && in _set_ant_v0()
4517 dm->set_ant_path = ant_path_type; in _set_ant_v0()
4522 __func__, phy_map, dm->set_ant_path & 0xff); in _set_ant_v0()
4611 struct rtw89_btc_dm *dm = &btc->dm; in _set_ant_v1() local
4614 if (btc->dm.run_reason == BTC_RSN_NTFY_POWEROFF || in _set_ant_v1()
4615 btc->dm.run_reason == BTC_RSN_NTFY_RADIO_STATE || in _set_ant_v1()
4616 btc->dm.run_reason == BTC_RSN_CMD_SET_COEX || wl_rinfo->dbcc_chg) in _set_ant_v1()
4620 btc->dm.wl_btg_rx == 2) in _set_ant_v1()
4623 if (!force_exec && ant_path_type == dm->set_ant_path) { in _set_ant_v1()
4632 } else if (btc->dm.run_reason != BTC_RSN_NTFY_WL_RFK && in _set_ant_v1()
4639 dm->set_ant_path = ant_path_type; in _set_ant_v1()
4643 __func__, phy_map, dm->set_ant_path & 0xff); in _set_ant_v1()
4734 if (wl->status.map.rf_off || btc->dm.bt_only) { in _action_wl_off()
4764 btc->dm.freerun = true; in _action_freerun()
4892 struct rtw89_btc_dm *dm = &btc->dm; in _action_bt_a2dp() local
4896 dm->slot_dur[CXST_W1] = 20; in _action_bt_a2dp()
4897 dm->slot_dur[CXST_B1] = BTC_B1_MAX; in _action_bt_a2dp()
4965 btc->dm.slot_dur[CXST_W1] = 80; in _action_bt_pan()
4966 btc->dm.slot_dur[CXST_B1] = 20; in _action_bt_pan()
4993 struct rtw89_btc_dm *dm = &btc->dm; in _action_bt_a2dp_hid() local
4997 dm->slot_dur[CXST_W1] = 20; in _action_bt_a2dp_hid()
4998 dm->slot_dur[CXST_B1] = BTC_B1_MAX; in _action_bt_a2dp_hid()
5144 btc->dm.tdma_instant_excute = 1; in _action_wl_rfk()
5164 struct rtw89_btc_fbtc_outsrc_set_info *o_info = &btc->dm.ost_info; in _set_btg_ctrl()
5169 struct rtw89_btc_dm *dm = &btc->dm; in _set_btg_ctrl() local
5204 if (is_btg == dm->wl_btg_rx) in _set_btg_ctrl()
5207 dm->wl_btg_rx = is_btg; in _set_btg_ctrl()
5244 struct rtw89_btc_fbtc_outsrc_set_info *o_info = &btc->dm.ost_info; in _set_wl_preagc_ctrl()
5252 struct rtw89_btc_dm *dm = &btc->dm; in _set_wl_preagc_ctrl() local
5283 } else if (dm->tdma_now.type != CXTDMA_OFF && in _set_wl_preagc_ctrl()
5286 dm->fddt_train == BTC_FDDT_DISABLE) { in _set_wl_preagc_ctrl()
5299 if (dm->wl_pre_agc_rb != dm->wl_pre_agc && in _set_wl_preagc_ctrl()
5300 dm->wl_pre_agc_rb != BTC_PREAGC_NOTFOUND) { in _set_wl_preagc_ctrl()
5302 dm->wl_pre_agc_rb = val; in _set_wl_preagc_ctrl()
5306 (dm->run_reason == BTC_RSN_NTFY_INIT || in _set_wl_preagc_ctrl()
5307 dm->run_reason == BTC_RSN_NTFY_SWBAND || in _set_wl_preagc_ctrl()
5308 dm->wl_pre_agc_rb != dm->wl_pre_agc)) || in _set_wl_preagc_ctrl()
5309 is_preagc != dm->wl_pre_agc) { in _set_wl_preagc_ctrl()
5310 dm->wl_pre_agc = is_preagc; in _set_wl_preagc_ctrl()
5429 struct rtw89_btc_dm *dm = &btc->dm; in _set_wl_tx_limit() local
5467 if (btc->dm.freerun || igno_bt || b->profile_cnt.now == 0 || in _set_wl_tx_limit()
5486 if (dm->wl_tx_limit.enable == enable && in _set_wl_tx_limit()
5487 dm->wl_tx_limit.tx_time == tx_time && in _set_wl_tx_limit()
5488 dm->wl_tx_limit.tx_retry == tx_retry) in _set_wl_tx_limit()
5491 if (!dm->wl_tx_limit.enable && enable) in _set_wl_tx_limit()
5494 dm->wl_tx_limit.enable = enable; in _set_wl_tx_limit()
5495 dm->wl_tx_limit.tx_time = tx_time; in _set_wl_tx_limit()
5496 dm->wl_tx_limit.tx_retry = tx_retry; in _set_wl_tx_limit()
5535 if (mode != BTC_WLINK_NOLINK && btc->dm.wl_btg_rx) in _set_bt_rx_agc()
5556 struct rtw89_btc_dm *dm = &btc->dm; in _wl_req_mac() local
5562 dm->ost_info.pta_req_hw_band = mac; in _wl_req_mac()
5587 struct rtw89_btc_dm *dm = &btc->dm; in _action_common() local
5610 if (dm->run_reason == BTC_RSN_NTFY_INIT || in _action_common()
5611 dm->run_reason == BTC_RSN_NTFY_RADIO_STATE || in _action_common()
5612 dm->run_reason == BTC_RSN_NTFY_POWEROFF) { in _action_common()
5630 if (memcmp(&dm->ost_info_last, &dm->ost_info, in _action_common()
5631 sizeof(dm->ost_info_last)) || in _action_common()
5632 dm->run_reason == BTC_RSN_NTFY_INIT || in _action_common()
5633 dm->run_reason == BTC_RSN_NTFY_RADIO_STATE) { in _action_common()
5634 dm->ost_info_last = dm->ost_info; in _action_common()
5638 btc->dm.tdma_instant_excute = 0; in _action_common()
5650 struct rtw89_btc_dm *dm = &btc->dm; in _action_by_bt() local
5653 if (dm->freerun_chk) { in _action_by_bt()
5750 btc->dm.e2g_slot_limit = BTC_E2G_LIMIT_DEF; in _action_wl_25g_mcc()
5820 struct rtw89_btc_dm *dm = &btc->dm; in _action_wl_2g_scc_v1() local
5831 dm->wl_scc.null_role1 = RTW89_WIFI_ROLE_STATION; in _action_wl_2g_scc_v1()
5832 dm->wl_scc.null_role2 = RTW89_WIFI_ROLE_P2P_CLIENT; in _action_wl_2g_scc_v1()
5833 dm->wl_scc.ebt_null = 0; /* no ext-slot-control */ in _action_wl_2g_scc_v1()
5837 dm->wl_scc.null_role1 = RTW89_WIFI_ROLE_STATION; in _action_wl_2g_scc_v1()
5838 dm->wl_scc.null_role2 = RTW89_WIFI_ROLE_STATION; in _action_wl_2g_scc_v1()
5839 dm->wl_scc.ebt_null = 0; /* no ext-slot-control */ in _action_wl_2g_scc_v1()
5845 dm->wl_scc.null_role1 = RTW89_WIFI_ROLE_STATION; in _action_wl_2g_scc_v1()
5846 dm->wl_scc.null_role2 = RTW89_WIFI_ROLE_NONE; in _action_wl_2g_scc_v1()
5850 dm->wl_scc.ebt_null = 0; in _action_wl_2g_scc_v1()
5853 dm->wl_scc.ebt_null = 0; in _action_wl_2g_scc_v1()
5857 dm->wl_scc.ebt_null = 1; /* tx null at EBT */ in _action_wl_2g_scc_v1()
5861 dm->wl_scc.ebt_null = 1; /* tx null at EBT */ in _action_wl_2g_scc_v1()
5864 dm->wl_scc.ebt_null = 0; in _action_wl_2g_scc_v1()
5882 struct rtw89_btc_dm *dm = &btc->dm; in _action_wl_2g_scc_v2() local
5904 dm->wl_scc.null_role1 = RTW89_WIFI_ROLE_STATION; in _action_wl_2g_scc_v2()
5905 dm->wl_scc.null_role2 = RTW89_WIFI_ROLE_P2P_CLIENT; in _action_wl_2g_scc_v2()
5906 dm->wl_scc.ebt_null = 0; /* no ext-slot-control */ in _action_wl_2g_scc_v2()
5910 dm->wl_scc.null_role1 = RTW89_WIFI_ROLE_STATION; in _action_wl_2g_scc_v2()
5911 dm->wl_scc.null_role2 = RTW89_WIFI_ROLE_STATION; in _action_wl_2g_scc_v2()
5912 dm->wl_scc.ebt_null = 0; /* no ext-slot-control */ in _action_wl_2g_scc_v2()
5918 dm->wl_scc.null_role1 = RTW89_WIFI_ROLE_STATION; in _action_wl_2g_scc_v2()
5919 dm->wl_scc.null_role2 = RTW89_WIFI_ROLE_NONE; in _action_wl_2g_scc_v2()
5923 dm->wl_scc.ebt_null = 0; in _action_wl_2g_scc_v2()
5926 dm->wl_scc.ebt_null = 0; in _action_wl_2g_scc_v2()
5930 dm->wl_scc.ebt_null = 1; /* tx null at EBT */ in _action_wl_2g_scc_v2()
5934 dm->wl_scc.ebt_null = 1; /* tx null at EBT */ in _action_wl_2g_scc_v2()
5937 dm->wl_scc.ebt_null = 0; in _action_wl_2g_scc_v2()
5955 struct rtw89_btc_dm *dm = &btc->dm; in _action_wl_2g_scc_v8() local
5969 dm->e2g_slot_limit = BTC_E2G_LIMIT_DEF; in _action_wl_2g_scc_v8()
7325 struct rtw89_btc_dm *dm = &rtwdev->btc.dm; in rtw89_coex_act1_work() local
7332 dm->cnt_notify[BTC_NCNT_TIMER]++; in rtw89_coex_act1_work()
7346 struct rtw89_btc_dm *dm = &rtwdev->btc.dm; in rtw89_coex_bt_devinfo_work() local
7352 dm->cnt_notify[BTC_NCNT_TIMER]++; in rtw89_coex_bt_devinfo_work()
7362 struct rtw89_btc_dm *dm = &rtwdev->btc.dm; in rtw89_coex_rfk_chk_work() local
7369 dm->cnt_notify[BTC_NCNT_TIMER]++; in rtw89_coex_rfk_chk_work()
7374 dm->error.map.wl_rfk_timeout = true; in rtw89_coex_rfk_chk_work()
7492 struct rtw89_btc_dm *dm = &rtwdev->btc.dm; in _run_coex() local
7505 dm->run_reason = reason; in _run_coex()
7533 __func__, dm->wl_only, dm->bt_only); in _run_coex()
7547 "[BTC], %s(): return for Stop Coex DM!!\n", in _run_coex()
7577 dm->freerun = false; in _run_coex()
7578 dm->cnt_dm[BTC_DCNT_RUN]++; in _run_coex()
7579 dm->fddt_train = BTC_FDDT_DISABLE; in _run_coex()
7583 dm->freerun_chk = _check_freerun(rtwdev); /* check if meet freerun */ in _run_coex()
7591 if (dm->wl_only) { in _run_coex()
7597 if (wl->status.map.rf_off || wl->status.map.lps || dm->bt_only) { in _run_coex()
7694 btc->dm.cnt_notify[BTC_NCNT_POWER_ON]++; in rtw89_btc_ntfy_poweron()
7703 btc->dm.cnt_notify[BTC_NCNT_POWER_OFF]++; in rtw89_btc_ntfy_poweroff()
7722 struct rtw89_btc_dm *dm = &btc->dm; in _set_init_info() local
7726 dm->init_info.init_v7.wl_only = (u8)dm->wl_only; in _set_init_info()
7727 dm->init_info.init_v7.bt_only = (u8)dm->bt_only; in _set_init_info()
7728 dm->init_info.init_v7.wl_init_ok = (u8)wl->status.map.init_ok; in _set_init_info()
7729 dm->init_info.init_v7.cx_other = btc->cx.other.type; in _set_init_info()
7730 dm->init_info.init_v7.wl_guard_ch = chip->afh_guard_ch; in _set_init_info()
7731 dm->init_info.init_v7.module = btc->mdinfo.md_v7; in _set_init_info()
7733 dm->init_info.init.wl_only = (u8)dm->wl_only; in _set_init_info()
7734 dm->init_info.init.bt_only = (u8)dm->bt_only; in _set_init_info()
7735 dm->init_info.init.wl_init_ok = (u8)wl->status.map.init_ok; in _set_init_info()
7736 dm->init_info.init.dbcc_en = rtwdev->dbcc_en; in _set_init_info()
7737 dm->init_info.init.cx_other = btc->cx.other.type; in _set_init_info()
7738 dm->init_info.init.wl_guard_ch = chip->afh_guard_ch; in _set_init_info()
7739 dm->init_info.init.module = btc->mdinfo.md; in _set_init_info()
7746 struct rtw89_btc_dm *dm = &rtwdev->btc.dm; in rtw89_btc_ntfy_init() local
7752 btc->dm.run_reason = BTC_RSN_NONE; in rtw89_btc_ntfy_init()
7753 btc->dm.run_action = BTC_ACT_NONE; in rtw89_btc_ntfy_init()
7763 dm->cnt_notify[BTC_NCNT_INIT_COEX]++; in rtw89_btc_ntfy_init()
7764 dm->wl_only = mode == BTC_MODE_WL ? 1 : 0; in rtw89_btc_ntfy_init()
7765 dm->bt_only = mode == BTC_MODE_BT ? 1 : 0; in rtw89_btc_ntfy_init()
7775 dm->error.map.init = true; in rtw89_btc_ntfy_init()
7786 dm->error.map.pta_owner = true; in rtw89_btc_ntfy_init()
7811 btc->dm.cnt_notify[BTC_NCNT_SCAN_START]++; in rtw89_btc_ntfy_scan_start()
7833 btc->dm.cnt_notify[BTC_NCNT_SCAN_FINISH]++; in rtw89_btc_ntfy_scan_finish()
7844 btc->dm.tdma_instant_excute = 1; in rtw89_btc_ntfy_scan_finish()
7861 btc->dm.cnt_notify[BTC_NCNT_SWITCH_BAND]++; in rtw89_btc_ntfy_switch_band()
7931 btc->dm.cnt_notify[BTC_NCNT_SPECIAL_PACKET]++; in rtw89_btc_ntfy_specific_packet()
8014 if (mode == BTC_WLINK_5G || rtwdev->btc.dm.freerun) { in _update_zb_coex_tbl()
8078 btc->dm.trx_info.bt_profile = u32_get_bits(btinfo.val, BT_PROFILE_PROTOCOL_MASK); in _update_bt_info()
8096 btc->dm.trx_info.bt_rssi = bt->rssi_level; in _update_bt_info()
8246 btc->dm.cnt_notify[BTC_NCNT_ROLE_INFO]++; in rtw89_btc_ntfy_role_info()
8287 btc->dm.leak_ap = 0; in rtw89_btc_ntfy_role_info()
8310 btc->dm.cnt_notify[BTC_NCNT_RADIO_STATE]++; in rtw89_btc_ntfy_radio_state()
8355 btc->dm.cnt_dm[BTC_DCNT_BTCNT_HANG] = 0; in rtw89_btc_ntfy_radio_state()
8356 btc->dm.tdma_instant_excute = 1; in rtw89_btc_ntfy_radio_state()
8389 btc->dm.cnt_notify[BTC_NCNT_WL_RFK]++; in _ntfy_wl_rfk()
8426 __func__, btc->dm.cnt_notify[BTC_NCNT_WL_RFK], result); in _ntfy_wl_rfk()
8486 struct rtw89_btc_dm *dm = &btc->dm; in __rtw89_btc_ntfy_wl_sta_iter() local
8577 dm->trx_info.tx_rate = link_info_t->tx_rate; in __rtw89_btc_ntfy_wl_sta_iter()
8578 dm->trx_info.rx_rate = link_info_t->rx_rate; in __rtw89_btc_ntfy_wl_sta_iter()
8595 dm->trx_info.tx_lvl = stats->tx_tfc_lv; in __rtw89_btc_ntfy_wl_sta_iter()
8596 dm->trx_info.rx_lvl = stats->rx_tfc_lv; in __rtw89_btc_ntfy_wl_sta_iter()
8597 dm->trx_info.tx_rate = rtwsta_link->ra_report.hw_rate; in __rtw89_btc_ntfy_wl_sta_iter()
8598 dm->trx_info.rx_rate = rtwsta_link->rx_hw_rate; in __rtw89_btc_ntfy_wl_sta_iter()
8599 dm->trx_info.tx_tp = link_info_t->tx_throughput; in __rtw89_btc_ntfy_wl_sta_iter()
8600 dm->trx_info.rx_tp = link_info_t->rx_throughput; in __rtw89_btc_ntfy_wl_sta_iter()
8603 if ((dm->wl_btg_rx_rb != dm->wl_btg_rx && in __rtw89_btc_ntfy_wl_sta_iter()
8604 dm->wl_btg_rx_rb != BTC_BTGCTRL_BB_GNT_NOTFOUND) || in __rtw89_btc_ntfy_wl_sta_iter()
8605 (dm->wl_pre_agc_rb != dm->wl_pre_agc && in __rtw89_btc_ntfy_wl_sta_iter()
8606 dm->wl_pre_agc_rb != BTC_PREAGC_NOTFOUND)) in __rtw89_btc_ntfy_wl_sta_iter()
8636 struct rtw89_btc_dm *dm = &btc->dm; in rtw89_btc_ntfy_wl_sta() local
8646 btc->dm.cnt_notify[BTC_NCNT_WL_STA]++; in rtw89_btc_ntfy_wl_sta()
8655 if (dm->trx_info.wl_rssi != wl->rssi_level) in rtw89_btc_ntfy_wl_sta()
8656 dm->trx_info.wl_rssi = wl->rssi_level; in rtw89_btc_ntfy_wl_sta()
8669 } else if (btc->dm.cnt_notify[BTC_NCNT_WL_STA] >= in rtw89_btc_ntfy_wl_sta()
8670 btc->dm.cnt_dm[BTC_DCNT_WL_STA_LAST] + BTC_NHM_CHK_INTVL) { in rtw89_btc_ntfy_wl_sta()
8671 btc->dm.cnt_dm[BTC_DCNT_WL_STA_LAST] = in rtw89_btc_ntfy_wl_sta()
8672 btc->dm.cnt_notify[BTC_NCNT_WL_STA]; in rtw89_btc_ntfy_wl_sta()
8673 } else if (btc->dm.cnt_notify[BTC_NCNT_WL_STA] < in rtw89_btc_ntfy_wl_sta()
8674 btc->dm.cnt_dm[BTC_DCNT_WL_STA_LAST]) { in rtw89_btc_ntfy_wl_sta()
8675 btc->dm.cnt_dm[BTC_DCNT_WL_STA_LAST] = in rtw89_btc_ntfy_wl_sta()
8676 btc->dm.cnt_notify[BTC_NCNT_WL_STA]; in rtw89_btc_ntfy_wl_sta()
8790 btc->dm.cnt_dm[BTC_DCNT_CX_RUNINFO]++; in rtw89_btc_c2h_handle()
8807 struct rtw89_btc_dm *dm = &btc->dm; in _show_cx_info() local
8814 if (!(dm->coex_info_map & BTC_COEX_INFO_CX)) in _show_cx_info()
8958 if (!(btc->dm.coex_info_map & BTC_COEX_INFO_WL)) in _show_wl_info()
9077 if (!(btc->dm.coex_info_map & BTC_COEX_INFO_BT)) in _show_bt_info()
9119 " %-15s : rssi:%ddBm(lvl:%d), tx_rate:%dM, %s%s%s", in _show_bt_info()
9568 struct rtw89_btc_dm *dm = &btc->dm; in _show_dm_step() local
9573 len = dm->dm_step.step_ov ? RTW89_BTC_DM_MAXSTEP : dm->dm_step.step_pos; in _show_dm_step()
9574 start_idx = dm->dm_step.step_ov ? dm->dm_step.step_pos : 0; in _show_dm_step()
9576 p += scnprintf_segment(p, end - p, "[dm_steps]", dm->dm_step.step, len, in _show_dm_step()
9577 6, start_idx, ARRAY_SIZE(dm->dm_step.step)); in _show_dm_step()
9586 struct rtw89_btc_dm *dm = &btc->dm; in _show_dm_info() local
9592 if (!(dm->coex_info_map & BTC_COEX_INFO_DM)) in _show_dm_info()
9603 steps_to_str(dm->run_reason), in _show_dm_info()
9604 steps_to_str(dm->run_action | BTC_ACT_EXT_BIT), in _show_dm_info()
9605 id_to_ant(FIELD_GET(GENMASK(7, 0), dm->set_ant_path)), in _show_dm_info()
9607 dm->cnt_dm[BTC_DCNT_RUN]); in _show_dm_info()
9618 "[dm_flag]", dm->wl_only, dm->bt_only, igno_bt, in _show_dm_info()
9619 dm->freerun, btc->lps, dm->wl_mimo_ps); in _show_dm_info()
9622 dm->leak_ap, in _show_dm_info()
9624 (dm->wl_fw_cx_offload == BTC_CX_FW_OFFLOAD ? in _show_dm_info()
9627 if (dm->rf_trx_para.wl_tx_power == 0xff) in _show_dm_info()
9631 dm->trx_para_level); in _show_dm_info()
9637 dm->trx_para_level, in _show_dm_info()
9638 dm->rf_trx_para.wl_tx_power); in _show_dm_info()
9642 dm->rf_trx_para.wl_rx_gain, in _show_dm_info()
9643 dm->rf_trx_para.bt_tx_power, in _show_dm_info()
9644 dm->rf_trx_para.bt_rx_gain, in _show_dm_info()
9645 (bt->hi_lna_rx ? "Hi" : "Ori"), dm->wl_btg_rx); in _show_dm_info()
9649 "[dm_ctrl]", dm->wl_tx_limit.enable, in _show_dm_info()
9650 dm->wl_tx_limit.tx_time, in _show_dm_info()
9651 dm->wl_tx_limit.tx_retry, btc->bt_req_len, in _show_dm_info()
9767 struct rtw89_btc_dm *dm = &btc->dm; in _show_fbtc_slots() local
9775 dur = le16_to_cpu(dm->slot_now.v1[i].dur); in _show_fbtc_slots()
9776 tbl = le32_to_cpu(dm->slot_now.v1[i].cxtbl); in _show_fbtc_slots()
9777 cxtype = le16_to_cpu(dm->slot_now.v1[i].cxtype); in _show_fbtc_slots()
9779 dur = le16_to_cpu(dm->slot_now.v7[i].dur); in _show_fbtc_slots()
9780 tbl = le32_to_cpu(dm->slot_now.v7[i].cxtbl); in _show_fbtc_slots()
9781 cxtype = le16_to_cpu(dm->slot_now.v7[i].cxtype); in _show_fbtc_slots()
9809 struct rtw89_btc_dm *dm = &btc->dm; in _show_fbtc_cysta_v2() local
9839 if (dm->tdma_now.rxflctrl) { in _show_fbtc_cysta_v2()
9913 r.val = dm->tdma_now.rxflctrl; in _show_fbtc_cysta_v2()
9943 struct rtw89_btc_dm *dm = &btc->dm; in _show_fbtc_cysta_v3() local
9973 if (dm->tdma_now.rxflctrl) in _show_fbtc_cysta_v3()
10035 p += scnprintf(p, end - p, "(%d/%d/%dM/%d/%d/%d)", in _show_fbtc_cysta_v3()
10047 p += scnprintf(p, end - p, "(%d/%d/%dM/%d/%d/%d)", in _show_fbtc_cysta_v3()
10082 struct rtw89_btc_dm *dm = &btc->dm; in _show_fbtc_cysta_v4() local
10112 if (dm->tdma_now.rxflctrl) in _show_fbtc_cysta_v4()
10174 p += scnprintf(p, end - p, "(%d/%d/%dM/%d/%d/%d)", in _show_fbtc_cysta_v4()
10186 p += scnprintf(p, end - p, "(%d/%d/%dM/%d/%d/%d)", in _show_fbtc_cysta_v4()
10221 struct rtw89_btc_dm *dm = &btc->dm; in _show_fbtc_cysta_v5() local
10251 if (dm->tdma_now.rxflctrl) in _show_fbtc_cysta_v5()
10312 p += scnprintf(p, end - p, "(%d/%d/%dM/%d/%d/%d)", in _show_fbtc_cysta_v5()
10324 p += scnprintf(p, end - p, "(%d/%d/%dM/%d/%d/%d)", in _show_fbtc_cysta_v5()
10360 struct rtw89_btc_dm *dm = &rtwdev->btc.dm; in _show_fbtc_cysta_v7() local
10383 if (dm->tdma_now.rxflctrl) in _show_fbtc_cysta_v7()
10406 dm->bt_slot_flood, dm->cnt_dm[BTC_DCNT_BT_SLOT_FLOOD], in _show_fbtc_cysta_v7()
10467 p += scnprintf(p, end - p, "(%d/%d/%d/%dM/%d/%d/%d)", in _show_fbtc_cysta_v7()
10483 p += scnprintf(p, end - p, "(%d/%d/%d/%dM/%d/%d/%d)", in _show_fbtc_cysta_v7()
10510 if (!btc->dm.tdma_now.rxflctrl) in _show_fbtc_nullsta()
10730 if (!(btc->dm.coex_info_map & BTC_COEX_INFO_DM)) in _show_fw_dm_msg()
10862 if (!(btc->dm.coex_info_map & BTC_COEX_INFO_MREG)) in _show_mreg_v1()
10874 btc->dm.pta_owner = rtw89_mac_get_ctrl_path(rtwdev); in _show_mreg_v1()
10882 btc->dm.pta_owner == BTC_CTRL_BY_WL ? "WL" : "BT", in _show_mreg_v1()
10947 if (!(btc->dm.coex_info_map & BTC_COEX_INFO_MREG)) in _show_mreg_v2()
10959 btc->dm.pta_owner = rtw89_mac_get_ctrl_path(rtwdev); in _show_mreg_v2()
10967 btc->dm.pta_owner == BTC_CTRL_BY_WL ? "WL" : "BT", in _show_mreg_v2()
11027 struct rtw89_btc_dm *dm = &btc->dm; in _show_mreg_v7() local
11032 if (!(dm->coex_info_map & BTC_COEX_INFO_MREG)) in _show_mreg_v7()
11045 dm->pta_owner = rtw89_mac_get_ctrl_path(rtwdev); in _show_mreg_v7()
11051 dm->pta_owner == BTC_CTRL_BY_WL ? "WL" : "BT", in _show_mreg_v7()
11055 gnt = &dm->gnt.band[RTW89_PHY_0]; in _show_mreg_v7()
11062 gnt = &dm->gnt.band[RTW89_PHY_1]; in _show_mreg_v7()
11101 struct rtw89_btc_dm *dm = &btc->dm; in _show_summary_v1() local
11104 u32 cnt_sum = 0, *cnt = btc->dm.cnt_notify; in _show_summary_v1()
11108 if (!(dm->coex_info_map & BTC_COEX_INFO_SUMMARY)) in _show_summary_v1()
11127 prptctrl->rpt_enable, dm->error.val); in _show_summary_v1()
11129 if (dm->error.map.wl_fw_hang) in _show_summary_v1()
11164 dm->error.map.wl_rfk_timeout = bt->rfk_info.map.timeout; in _show_summary_v1()
11176 cnt_sum += dm->cnt_notify[i]; in _show_summary_v1()
11210 struct rtw89_btc_dm *dm = &btc->dm; in _show_summary_v4() local
11213 u32 cnt_sum = 0, *cnt = btc->dm.cnt_notify; in _show_summary_v4()
11217 if (!(dm->coex_info_map & BTC_COEX_INFO_SUMMARY)) in _show_summary_v4()
11239 dm->error.val); in _show_summary_v4()
11241 if (dm->error.map.wl_fw_hang) in _show_summary_v4()
11279 dm->error.map.wl_rfk_timeout = bt->rfk_info.map.timeout; in _show_summary_v4()
11291 cnt_sum += dm->cnt_notify[i]; in _show_summary_v4()
11325 struct rtw89_btc_dm *dm = &btc->dm; in _show_summary_v5() local
11327 u32 cnt_sum = 0, *cnt = btc->dm.cnt_notify; in _show_summary_v5()
11331 if (!(dm->coex_info_map & BTC_COEX_INFO_SUMMARY)) in _show_summary_v5()
11355 if (dm->error.map.wl_fw_hang) in _show_summary_v5()
11408 cnt_sum += dm->cnt_notify[i]; in _show_summary_v5()
11446 struct rtw89_btc_dm *dm = &btc->dm; in _show_summary_v105() local
11448 u32 cnt_sum = 0, *cnt = btc->dm.cnt_notify; in _show_summary_v105()
11452 if (!(dm->coex_info_map & BTC_COEX_INFO_SUMMARY)) in _show_summary_v105()
11476 if (dm->error.map.wl_fw_hang) in _show_summary_v105()
11529 cnt_sum += dm->cnt_notify[i]; in _show_summary_v105()
11566 struct rtw89_btc_dm *dm = &rtwdev->btc.dm; in _show_summary_v7() local
11568 u32 *cnt = rtwdev->btc.dm.cnt_notify; in _show_summary_v7()
11573 if (!(dm->coex_info_map & BTC_COEX_INFO_SUMMARY)) in _show_summary_v7()
11601 if (dm->error.map.wl_fw_hang) in _show_summary_v7()
11643 cnt_sum += dm->cnt_notify[i]; in _show_summary_v7()
11679 struct rtw89_btc_dm *dm = &rtwdev->btc.dm; in _show_summary_v8() local
11681 u32 *cnt = rtwdev->btc.dm.cnt_notify; in _show_summary_v8()
11686 if (!(dm->coex_info_map & BTC_COEX_INFO_SUMMARY)) in _show_summary_v8()
11714 if (dm->error.map.wl_fw_hang) in _show_summary_v8()
11756 cnt_sum += dm->cnt_notify[i]; in _show_summary_v8()
11791 struct rtw89_btc_dm *dm = &btc->dm; in rtw89_btc_dump_info() local
11794 dm->cnt_notify[BTC_NCNT_SHOW_COEX_INFO]++; in rtw89_btc_dump_info()
11798 dm->cnt_notify[BTC_NCNT_SHOW_COEX_INFO], in rtw89_btc_dump_info()
11799 dm->cnt_dm[BTC_DCNT_RUN]); in rtw89_btc_dump_info()