Lines Matching refs:minfo

162 void _mcc_dump_mcc_info(struct phl_mcc_info *minfo)  in _mcc_dump_mcc_info()  argument
165 _mcc_dump_mode(&minfo->mcc_mode); in _mcc_dump_mcc_info()
166 _mcc_dump_state(&minfo->state); in _mcc_dump_mcc_info()
167 _mcc_dump_bt_ino(&minfo->bt_info); in _mcc_dump_mcc_info()
168 _mcc_dump_en_info(&minfo->en_info); in _mcc_dump_mcc_info()
172 void _mcc_set_state(struct phl_mcc_info *minfo, enum rtw_phl_mcc_state state) in _mcc_set_state() argument
175 minfo->state, state); in _mcc_set_state()
176 minfo->state = state; in _mcc_set_state()
177 _mcc_dump_state(&minfo->state); in _mcc_set_state()
199 _mcc_get_mrole_by_wrole(struct phl_mcc_info *minfo, in _mcc_get_mrole_by_wrole() argument
202 struct rtw_phl_mcc_en_info *en_info = &minfo->en_info; in _mcc_get_mrole_by_wrole()
220 _mcc_get_mrole_idx_by_wrole(struct phl_mcc_info *minfo, in _mcc_get_mrole_idx_by_wrole() argument
224 struct rtw_phl_mcc_en_info *en_info = &minfo->en_info; in _mcc_get_mrole_idx_by_wrole()
270 struct phl_mcc_info *minfo, u8 role_map) in _mcc_transfer_mode() argument
301 minfo->mcc_mode = RTW_PHL_TDMRA_AP_CLIENT_WMODE; in _mcc_transfer_mode()
303 minfo->mcc_mode = RTW_PHL_TDMRA_2CLIENTS_WMODE; in _mcc_transfer_mode()
305 minfo->mcc_mode = RTW_PHL_TDMRA_AP_WMODE; in _mcc_transfer_mode()
307 minfo->mcc_mode = RTW_PHL_TDMRA_UNKNOWN_WMODE; in _mcc_transfer_mode()
311 _mcc_dump_mode(&minfo->mcc_mode); in _mcc_transfer_mode()
340 struct phl_mcc_info *minfo = get_mcc_info(phl, hw_band); in _mcc_set_fw_log_info() local
342 if (minfo->fw_log_i.en_fw_mcc_log != en_fw_mcc_log) { in _mcc_set_fw_log_info()
343 minfo->fw_log_i.en_fw_mcc_log = en_fw_mcc_log; in _mcc_set_fw_log_info()
344 minfo->fw_log_i.update = true; in _mcc_set_fw_log_info()
346 if (minfo->fw_log_i.fw_mcc_log_lv != fw_mcc_log_lv) { in _mcc_set_fw_log_info()
347 minfo->fw_log_i.fw_mcc_log_lv = fw_mcc_log_lv; in _mcc_set_fw_log_info()
348 minfo->fw_log_i.update = true; in _mcc_set_fw_log_info()
352 void _mcc_up_fw_log_setting(struct phl_info_t *phl, struct phl_mcc_info *minfo) in _mcc_up_fw_log_setting() argument
354 struct phl_mcc_fw_log_info *fw_log_i = &minfo->fw_log_i; in _mcc_up_fw_log_setting()
362 void _mcc_set_unspecific_dur(struct phl_mcc_info *minfo) in _mcc_set_unspecific_dur() argument
364 struct rtw_phl_mcc_en_info *en_info = &minfo->en_info; in _mcc_set_unspecific_dur()
454 struct phl_mcc_info *minfo = get_mcc_info(phl, wrole->hw_band); in _mcc_fill_mcc_role_policy_info() local
461 param.role_map = minfo->role_map; in _mcc_fill_mcc_role_policy_info()
611 void _mcc_fill_coex_mode(struct phl_info_t *phl, struct phl_mcc_info *minfo) in _mcc_fill_coex_mode() argument
615 minfo->coex_mode = RTW_PHL_MCC_COEX_MODE_BT_MASTER; in _mcc_fill_coex_mode()
617 minfo->coex_mode); in _mcc_fill_coex_mode()
620 void _mcc_fill_bt_dur(struct phl_info_t *phl, struct phl_mcc_info *minfo) in _mcc_fill_bt_dur() argument
622 minfo->bt_info.bt_dur = (u16)rtw_hal_get_btc_req_slot(phl->hal); in _mcc_fill_bt_dur()
623 minfo->bt_info.bt_seg_num = 1; in _mcc_fill_bt_dur()
624 minfo->bt_info.bt_seg[0] = minfo->bt_info.bt_dur; in _mcc_fill_bt_dur()
626 minfo->bt_info.bt_dur); in _mcc_fill_bt_dur()
660 void _mcc_reset_minfo(struct phl_info_t *phl, struct phl_mcc_info *minfo, in _mcc_reset_minfo() argument
667 _os_mem_set(priv, minfo, 0, sizeof(struct phl_mcc_info)); in _mcc_reset_minfo()
671 _os_mem_set(priv, &minfo->en_info, 0, in _mcc_reset_minfo()
674 _os_mem_set(priv, &minfo->mcc_mode, 0, in _mcc_reset_minfo()
677 _os_mem_set(priv, &minfo->role_map, 0, in _mcc_reset_minfo()
678 sizeof(minfo->role_map)); in _mcc_reset_minfo()
680 _os_mem_set(priv, &minfo->state, 0, in _mcc_reset_minfo()
683 _os_mem_set(priv, &minfo->coex_mode, 0, in _mcc_reset_minfo()
686 _os_mem_set(priv, &minfo->bt_info, 0, in _mcc_reset_minfo()
689 _os_mem_set(priv, &minfo->en_info.m_pattern, 0, in _mcc_reset_minfo()
715 bool _tdmra_calc_noa_2wrole(struct phl_info_t *phl, struct phl_mcc_info *minfo, in _tdmra_calc_noa_2wrole() argument
718 struct rtw_phl_mcc_en_info *en_info = &minfo->en_info; in _tdmra_calc_noa_2wrole()
719 struct rtw_phl_mcc_bt_info *bt = &minfo->bt_info; in _tdmra_calc_noa_2wrole()
787 bool _tdmra_calc_noa_1wrole(struct phl_info_t *phl, struct phl_mcc_info *minfo, in _tdmra_calc_noa_1wrole() argument
790 struct rtw_phl_mcc_en_info *en_info = &minfo->en_info; in _tdmra_calc_noa_1wrole()
815 void _mcc_up_noa(struct phl_info_t *phl, struct phl_mcc_info *minfo) in _mcc_up_noa() argument
828 if (RTW_PHL_TDMRA_AP_CLIENT_WMODE == minfo->mcc_mode) { in _mcc_up_noa()
829 if (false == _tdmra_calc_noa_2wrole(phl, minfo, &param)) in _mcc_up_noa()
831 } else if (RTW_PHL_TDMRA_AP_WMODE == minfo->mcc_mode) { in _mcc_up_noa()
832 if (false == _tdmra_calc_noa_1wrole(phl, minfo, &param)) in _mcc_up_noa()
836 _mcc_dump_mode(&minfo->mcc_mode); in _mcc_up_noa()
847 bool _mcc_adjust_dur_for_2g_mcc_2role_bt(struct phl_mcc_info *minfo) in _mcc_adjust_dur_for_2g_mcc_2role_bt() argument
849 struct rtw_phl_mcc_bt_info *bt_info = &minfo->bt_info; in _mcc_adjust_dur_for_2g_mcc_2role_bt()
850 struct rtw_phl_mcc_en_info *en_info = &minfo->en_info; in _mcc_adjust_dur_for_2g_mcc_2role_bt()
909 void _mcc_adjust_dur_for_2_band_mcc_2role_bt(struct phl_mcc_info *minfo, in _mcc_adjust_dur_for_2_band_mcc_2role_bt() argument
912 struct rtw_phl_mcc_en_info *en_info = &minfo->en_info; in _mcc_adjust_dur_for_2_band_mcc_2role_bt()
913 enum rtw_phl_mcc_coex_mode *coex_mode = &minfo->coex_mode; in _mcc_adjust_dur_for_2_band_mcc_2role_bt()
916 u16 *bt_dur = &minfo->bt_info.bt_dur; in _mcc_adjust_dur_for_2_band_mcc_2role_bt()
962 bool _mcc_need_to_seg_bt_dur(struct phl_mcc_info *minfo) in _mcc_need_to_seg_bt_dur() argument
968 struct rtw_phl_mcc_en_info *info = &minfo->en_info; in _mcc_need_to_seg_bt_dur()
972 if (minfo->mcc_mode != RTW_PHL_TDMRA_2CLIENTS_WMODE) in _mcc_need_to_seg_bt_dur()
974 if (minfo->bt_info.bt_dur < BT_DUR_SEG_TH || BT_SEG_NUM < 2) in _mcc_need_to_seg_bt_dur()
977 limit_i = &minfo->en_info.mcc_role[i].policy.dur_info.dur_limit; in _mcc_need_to_seg_bt_dur()
994 void _mcc_discision_dur_for_2g_mcc_2role_bt(struct phl_mcc_info *minfo) in _mcc_discision_dur_for_2g_mcc_2role_bt() argument
996 struct rtw_phl_mcc_en_info *en_info = &minfo->en_info; in _mcc_discision_dur_for_2g_mcc_2role_bt()
1002 if (_mcc_need_to_seg_bt_dur(minfo)) { in _mcc_discision_dur_for_2g_mcc_2role_bt()
1007 _mcc_adjust_dur_for_2g_mcc_2role_bt(minfo); in _mcc_discision_dur_for_2g_mcc_2role_bt()
1008 minfo->bt_info.bt_seg_num = 2; in _mcc_discision_dur_for_2g_mcc_2role_bt()
1009 minfo->bt_info.bt_seg[0] = minfo->bt_info.bt_dur / 2; in _mcc_discision_dur_for_2g_mcc_2role_bt()
1010 minfo->bt_info.bt_seg[1] = minfo->bt_info.bt_dur - in _mcc_discision_dur_for_2g_mcc_2role_bt()
1011 minfo->bt_info.bt_seg[0]; in _mcc_discision_dur_for_2g_mcc_2role_bt()
1015 minfo->bt_info.bt_seg[0], minfo->bt_info.bt_seg[1]); in _mcc_discision_dur_for_2g_mcc_2role_bt()
1018 if (minfo->bt_info.bt_dur > BT_DUR_MAX_2WS) { in _mcc_discision_dur_for_2g_mcc_2role_bt()
1020 minfo->bt_info.bt_dur, BT_DUR_MAX_2WS); in _mcc_discision_dur_for_2g_mcc_2role_bt()
1021 minfo->bt_info.bt_dur = BT_DUR_MAX_2WS; in _mcc_discision_dur_for_2g_mcc_2role_bt()
1022 minfo->bt_info.bt_seg[0] = BT_DUR_MAX_2WS; in _mcc_discision_dur_for_2g_mcc_2role_bt()
1024 minfo->bt_info.bt_dur); in _mcc_discision_dur_for_2g_mcc_2role_bt()
1026 _mcc_adjust_dur_for_2g_mcc_2role_bt(minfo); in _mcc_discision_dur_for_2g_mcc_2role_bt()
1030 bool _mcc_discision_duration_for_2role_bt_v2(struct phl_mcc_info *minfo) in _mcc_discision_duration_for_2role_bt_v2() argument
1032 struct rtw_phl_mcc_en_info *en_info = &minfo->en_info; in _mcc_discision_duration_for_2role_bt_v2()
1033 struct rtw_phl_mcc_bt_info *bt_info = &minfo->bt_info; in _mcc_discision_duration_for_2role_bt_v2()
1044 if (_mcc_adjust_dur_for_2g_mcc_2role_bt(minfo)) { in _mcc_discision_duration_for_2role_bt_v2()
1058 _mcc_adjust_dur_for_2_band_mcc_2role_bt(minfo, m_role1, m_role2); in _mcc_discision_duration_for_2role_bt_v2()
1060 _mcc_adjust_dur_for_2_band_mcc_2role_bt(minfo, m_role2, m_role1); in _mcc_discision_duration_for_2role_bt_v2()
1065 bool _mcc_discision_duration_for_2role_bt(struct phl_mcc_info *minfo) in _mcc_discision_duration_for_2role_bt() argument
1067 struct rtw_phl_mcc_en_info *en_info = &minfo->en_info; in _mcc_discision_duration_for_2role_bt()
1072 if (minfo->bt_info.bt_dur == 0) in _mcc_discision_duration_for_2role_bt()
1076 _mcc_discision_dur_for_2g_mcc_2role_bt(minfo); in _mcc_discision_duration_for_2role_bt()
1086 _mcc_adjust_dur_for_2_band_mcc_2role_bt(minfo, m_role1, m_role2); in _mcc_discision_duration_for_2role_bt()
1088 _mcc_adjust_dur_for_2_band_mcc_2role_bt(minfo, m_role2, m_role1); in _mcc_discision_duration_for_2role_bt()
1835 void _mcc_fill_bt_slot(struct phl_mcc_info *minfo,
1839 struct rtw_phl_mcc_bt_info *bt_info = &minfo->bt_info;
1840 struct rtw_phl_mcc_en_info *en_info = &minfo->en_info;
2420 void _mcc_fill_2_wrole_bt_pattern(struct phl_mcc_info *minfo, in _mcc_fill_2_wrole_bt_pattern() argument
2423 struct rtw_phl_mcc_en_info *en_info = &minfo->en_info; in _mcc_fill_2_wrole_bt_pattern()
2434 if (minfo->bt_info.bt_seg_num == 2) { in _mcc_fill_2_wrole_bt_pattern()
2436 minfo->bt_info.add_bt_role = true; in _mcc_fill_2_wrole_bt_pattern()
2437 if (((dur_ref.dur + minfo->bt_info.bt_seg[0]) <= dr_max) && in _mcc_fill_2_wrole_bt_pattern()
2438 ((dur_ano.dur + minfo->bt_info.bt_seg[1]) <= da_max)) { in _mcc_fill_2_wrole_bt_pattern()
2439 dur_ref.dur += minfo->bt_info.bt_seg[0]; in _mcc_fill_2_wrole_bt_pattern()
2440 dur_ano.dur += minfo->bt_info.bt_seg[1]; in _mcc_fill_2_wrole_bt_pattern()
2441 } else if ((dur_ref.dur + minfo->bt_info.bt_dur) <= dr_max) { in _mcc_fill_2_wrole_bt_pattern()
2442 dur_ref.dur += minfo->bt_info.bt_dur; in _mcc_fill_2_wrole_bt_pattern()
2443 } else if ((dur_ano.dur + minfo->bt_info.bt_dur) <= da_max) { in _mcc_fill_2_wrole_bt_pattern()
2444 dur_ano.dur += minfo->bt_info.bt_dur; in _mcc_fill_2_wrole_bt_pattern()
2471 if (minfo->bt_info.bt_seg_num == 1) { in _mcc_fill_2_wrole_bt_pattern()
2472 minfo->bt_info.add_bt_role = true; in _mcc_fill_2_wrole_bt_pattern()
2475 &dur_ano, minfo->bt_info.bt_dur, m_pattern)) { in _mcc_fill_2_wrole_bt_pattern()
2481 minfo->bt_info.bt_seg_num); in _mcc_fill_2_wrole_bt_pattern()
2489 bool _mcc_fill_2wrole_pattern_with_limitation(struct phl_mcc_info *minfo, in _mcc_fill_2wrole_pattern_with_limitation() argument
2492 struct rtw_phl_mcc_en_info *en_info = &minfo->en_info; in _mcc_fill_2wrole_pattern_with_limitation()
2509 if (_mcc_discision_duration_for_2role_bt(minfo)) { in _mcc_fill_2wrole_pattern_with_limitation()
2510 _mcc_fill_2_wrole_bt_pattern(minfo, role_ref, role_ano); in _mcc_fill_2wrole_pattern_with_limitation()
2533 void _mcc_fill_2_clients_pattern(struct phl_mcc_info *minfo, u8 worsecase, in _mcc_fill_2_clients_pattern() argument
2536 struct rtw_phl_mcc_en_info *en_info = &minfo->en_info; in _mcc_fill_2_clients_pattern()
2603 void _mcc_set_ap_client_default_pattern(struct phl_mcc_info *minfo, in _mcc_set_ap_client_default_pattern() argument
2606 struct rtw_phl_mcc_en_info *en_info = &minfo->en_info; in _mcc_set_ap_client_default_pattern()
2682 struct phl_mcc_info *minfo) in _mcc_fill_info_for_2_clients_mode() argument
2685 struct rtw_phl_mcc_en_info *en_info = &minfo->en_info; in _mcc_fill_info_for_2_clients_mode()
2711 if (_mcc_fill_2wrole_pattern_with_limitation(minfo, role_ref, role_ano)) { in _mcc_fill_info_for_2_clients_mode()
2714 } else if (_mcc_discision_duration_for_2role_bt(minfo)) { in _mcc_fill_info_for_2_clients_mode()
2715 _mcc_fill_2_wrole_bt_pattern(minfo, role_ref, role_ano); in _mcc_fill_info_for_2_clients_mode()
2723 _mcc_fill_2_clients_pattern(minfo, worsecase, role_ref, role_ano); in _mcc_fill_info_for_2_clients_mode()
2751 struct phl_info_t *phl, struct phl_mcc_info *minfo) in _mcc_fill_info_for_ap_client_mode() argument
2754 struct rtw_phl_mcc_en_info *en_info = &minfo->en_info; in _mcc_fill_info_for_ap_client_mode()
2775 if (_mcc_discision_duration_for_2role_bt(minfo)) { in _mcc_fill_info_for_ap_client_mode()
2777 _mcc_fill_2_wrole_bt_pattern(minfo, role_ref, role_ano); in _mcc_fill_info_for_ap_client_mode()
2779 _mcc_set_ap_client_default_pattern(minfo, in _mcc_fill_info_for_ap_client_mode()
2806 struct phl_info_t *phl, struct phl_mcc_info *minfo) in _mcc_fill_info_for_ap_bt_mode() argument
2809 struct rtw_phl_mcc_en_info *en_info = &minfo->en_info; in _mcc_fill_info_for_ap_bt_mode()
2813 minfo->bt_info.add_bt_role = true; in _mcc_fill_info_for_ap_bt_mode()
2816 minfo->bt_info.bt_dur); in _mcc_fill_info_for_ap_bt_mode()
2821 _mcc_fill_slot_info(m_pattern, true, minfo->bt_info.bt_dur, NULL); in _mcc_fill_info_for_ap_bt_mode()
2984 struct phl_mcc_info *minfo, struct phl_mcc_info *new_minfo) in _mcc_duration_change() argument
2988 if (RTW_PHL_TDMRA_AP_CLIENT_WMODE == minfo->mcc_mode) { in _mcc_duration_change()
2990 phl, minfo, new_minfo)) { in _mcc_duration_change()
2994 } else if (RTW_PHL_TDMRA_2CLIENTS_WMODE == minfo->mcc_mode) { in _mcc_duration_change()
2996 phl, minfo, new_minfo)) { in _mcc_duration_change()
3000 } else if (RTW_PHL_TDMRA_AP_WMODE == minfo->mcc_mode) { in _mcc_duration_change()
3002 phl, minfo, new_minfo)) { in _mcc_duration_change()
3008 minfo->mcc_mode); in _mcc_duration_change()
3012 _os_mem_cpy(phl_to_drvpriv(phl), minfo, new_minfo, in _mcc_duration_change()
3020 struct phl_mcc_info *minfo in _mcc_2_clients_tracking() argument
3032 _os_mem_cpy(phl_to_drvpriv(phl), &new_minfo, minfo, in _mcc_2_clients_tracking()
3092 minfo, &new_minfo)) { in _mcc_2_clients_tracking()
3101 _os_mem_cpy(phl_to_drvpriv(phl), minfo, &new_minfo, in _mcc_2_clients_tracking()
3111 struct phl_mcc_info *minfo = NULL; in rtw_phl_mcc_ap_bt_coex_enable() local
3121 minfo = get_mcc_info(phl, cur_role->hw_band); in rtw_phl_mcc_ap_bt_coex_enable()
3122 en_info = &minfo->en_info; in rtw_phl_mcc_ap_bt_coex_enable()
3123 if (MCC_NONE != minfo->state && MCC_STOP != minfo->state) { in rtw_phl_mcc_ap_bt_coex_enable()
3125 minfo->state); in rtw_phl_mcc_ap_bt_coex_enable()
3126 _mcc_dump_state(&minfo->state); in rtw_phl_mcc_ap_bt_coex_enable()
3129 _mcc_set_state(minfo, MCC_CFG_EN_INFO); in rtw_phl_mcc_ap_bt_coex_enable()
3130 _mcc_reset_minfo(phl, minfo, (MINFO_RESET_EN_INFO | MINFO_RESET_MODE | in rtw_phl_mcc_ap_bt_coex_enable()
3134 &minfo->role_map)) { in rtw_phl_mcc_ap_bt_coex_enable()
3138 if (RTW_PHL_STATUS_SUCCESS != _mcc_transfer_mode(phl, minfo, in rtw_phl_mcc_ap_bt_coex_enable()
3139 minfo->role_map)) { in rtw_phl_mcc_ap_bt_coex_enable()
3143 if (RTW_PHL_TDMRA_AP_WMODE != minfo->mcc_mode) { in rtw_phl_mcc_ap_bt_coex_enable()
3145 _mcc_dump_mode(&minfo->mcc_mode); in rtw_phl_mcc_ap_bt_coex_enable()
3149 minfo->role_map, cur_role)) { in rtw_phl_mcc_ap_bt_coex_enable()
3153 _mcc_fill_coex_mode(phl, minfo); in rtw_phl_mcc_ap_bt_coex_enable()
3154 _mcc_fill_bt_dur(phl, minfo); in rtw_phl_mcc_ap_bt_coex_enable()
3155 if (RTW_PHL_STATUS_SUCCESS != _mcc_get_mrole_idx_by_wrole(minfo, in rtw_phl_mcc_ap_bt_coex_enable()
3160 if (RTW_PHL_STATUS_SUCCESS != _mcc_fill_info_for_ap_bt_mode(phl, minfo)) { in rtw_phl_mcc_ap_bt_coex_enable()
3164 _mcc_set_state(minfo, MCC_TRIGGER_FW_EN); in rtw_phl_mcc_ap_bt_coex_enable()
3165 if (rtw_hal_mcc_enable(phl->hal, en_info, &minfo->bt_info, in rtw_phl_mcc_ap_bt_coex_enable()
3166 minfo->mcc_mode) != RTW_HAL_STATUS_SUCCESS) { in rtw_phl_mcc_ap_bt_coex_enable()
3167 _mcc_set_state(minfo, MCC_FW_EN_FAIL); in rtw_phl_mcc_ap_bt_coex_enable()
3171 _mcc_set_state(minfo, MCC_RUNING); in rtw_phl_mcc_ap_bt_coex_enable()
3173 _mcc_up_noa(phl, minfo); in rtw_phl_mcc_ap_bt_coex_enable()
3174 _mcc_dump_mcc_info(minfo); in rtw_phl_mcc_ap_bt_coex_enable()
3175 _mcc_up_fw_log_setting(phl, minfo); in rtw_phl_mcc_ap_bt_coex_enable()
3179 _mcc_set_state(minfo, MCC_NONE); in rtw_phl_mcc_ap_bt_coex_enable()
3190 struct phl_mcc_info *minfo = NULL; in rtw_phl_mcc_go_bt_coex_disable() local
3198 minfo = get_mcc_info(phl, spec_role->hw_band); in rtw_phl_mcc_go_bt_coex_disable()
3199 en_info = &minfo->en_info; in rtw_phl_mcc_go_bt_coex_disable()
3200 if (MCC_RUNING != minfo->state) { in rtw_phl_mcc_go_bt_coex_disable()
3202 _mcc_dump_state(&minfo->state); in rtw_phl_mcc_go_bt_coex_disable()
3205 if (NULL == (m_role = _mcc_get_mrole_by_wrole(minfo, spec_role))) { in rtw_phl_mcc_go_bt_coex_disable()
3210 _mcc_set_state(minfo, MCC_TRIGGER_FW_DIS); in rtw_phl_mcc_go_bt_coex_disable()
3212 minfo->mcc_mode) != RTW_HAL_STATUS_SUCCESS) { in rtw_phl_mcc_go_bt_coex_disable()
3214 _mcc_set_state(minfo, MCC_FW_DIS_FAIL); in rtw_phl_mcc_go_bt_coex_disable()
3219 _mcc_set_state(minfo, MCC_STOP); in rtw_phl_mcc_go_bt_coex_disable()
3231 struct phl_mcc_info *minfo = NULL; in rtw_phl_mcc_watchdog() local
3237 minfo = get_mcc_info(phl, band_idx); in rtw_phl_mcc_watchdog()
3238 if (MCC_RUNING != minfo->state) in rtw_phl_mcc_watchdog()
3241 if (RTW_PHL_TDMRA_2CLIENTS_WMODE == minfo->mcc_mode) in rtw_phl_mcc_watchdog()
3242 _mcc_2_clients_tracking(phl, minfo); in rtw_phl_mcc_watchdog()
3252 struct phl_mcc_info *minfo = get_mcc_info(phl, info->hw_band); in rtw_phl_mcc_duration_change() local
3257 _os_mem_cpy(phl_to_drvpriv(phl), &new_minfo, minfo, in rtw_phl_mcc_duration_change()
3267 if (RTW_PHL_STATUS_SUCCESS != _mcc_duration_change(phl, minfo, in rtw_phl_mcc_duration_change()
3284 struct phl_mcc_info *minfo = get_mcc_info(phl, info->hw_band); in rtw_phl_mcc_bt_duration_change() local
3293 if (info->dur == minfo->bt_info.bt_dur) { in rtw_phl_mcc_bt_duration_change()
3299 _os_mem_cpy(phl_to_drvpriv(phl), &new_minfo, minfo, in rtw_phl_mcc_bt_duration_change()
3319 if (RTW_PHL_STATUS_SUCCESS != _mcc_duration_change(phl, minfo, in rtw_phl_mcc_bt_duration_change()
3338 struct phl_mcc_info *minfo = NULL; in rtw_phl_mcc_dur_lim_change() local
3354 minfo = get_mcc_info(phl, wrole->hw_band); in rtw_phl_mcc_dur_lim_change()
3355 if (MCC_RUNING != minfo->state) { in rtw_phl_mcc_dur_lim_change()
3357 _mcc_dump_state(&minfo->state); in rtw_phl_mcc_dur_lim_change()
3360 _os_mem_cpy(phl_to_drvpriv(phl), &new_minfo, minfo, in rtw_phl_mcc_dur_lim_change()
3381 if (RTW_PHL_STATUS_SUCCESS != _mcc_duration_change(phl, minfo, in rtw_phl_mcc_dur_lim_change()
3395 struct phl_mcc_info *minfo = NULL; in rtw_phl_mcc_sta_entry_change() local
3401 minfo = get_mcc_info(phl, wrole->hw_band); in rtw_phl_mcc_sta_entry_change()
3402 if (MCC_RUNING != minfo->state) { in rtw_phl_mcc_sta_entry_change()
3406 minfo = get_mcc_info(phl, wrole->hw_band); in rtw_phl_mcc_sta_entry_change()
3407 if (NULL == (mrole = _mcc_get_mrole_by_wrole(minfo, wrole))) { in rtw_phl_mcc_sta_entry_change()
3421 minfo->mcc_mode)) { in rtw_phl_mcc_sta_entry_change()
3425 _mcc_dump_mcc_info(minfo); in rtw_phl_mcc_sta_entry_change()
3433 struct phl_mcc_info *minfo = NULL; in phl_mcc_client_link_notify_for_ap() local
3444 minfo = get_mcc_info(phl, wrole->hw_band); in phl_mcc_client_link_notify_for_ap()
3445 if (MCC_RUNING != minfo->state) { in phl_mcc_client_link_notify_for_ap()
3448 _mcc_dump_state(&minfo->state); in phl_mcc_client_link_notify_for_ap()
3451 if (NULL == (mrole = _mcc_get_mrole_by_wrole(minfo, wrole))) { in phl_mcc_client_link_notify_for_ap()
3466 minfo->mcc_mode)) { in phl_mcc_client_link_notify_for_ap()
3471 _mcc_dump_mcc_info(minfo); in phl_mcc_client_link_notify_for_ap()
3479 struct phl_mcc_info *minfo = NULL; in rtw_phl_mcc_inprogress() local
3485 minfo = get_mcc_info(phl, band_idx); in rtw_phl_mcc_inprogress()
3486 if (MCC_TRIGGER_FW_EN == minfo->state || MCC_RUNING == minfo->state || in rtw_phl_mcc_inprogress()
3487 MCC_TRIGGER_FW_DIS == minfo->state || in rtw_phl_mcc_inprogress()
3488 MCC_FW_DIS_FAIL == minfo->state) { in rtw_phl_mcc_inprogress()
3498 struct phl_mcc_info *minfo = NULL; in _is_mcc_sts_err() local
3506 minfo = get_mcc_info(phl, band_idx); in _is_mcc_sts_err()
3507 if (MCC_FW_DIS_FAIL == minfo->state || in _is_mcc_sts_err()
3508 MCC_FW_EN_FAIL == minfo->state) { in _is_mcc_sts_err()
3520 struct phl_mcc_info *minfo = NULL; in rtw_phl_mcc_reset() local
3529 minfo = get_mcc_info(phl, band_idx); in rtw_phl_mcc_reset()
3530 en_info = &minfo->en_info; in rtw_phl_mcc_reset()
3533 rtw_hal_mcc_reset(phl->hal, en_info->group, minfo->mcc_mode); in rtw_phl_mcc_reset()
3538 _mcc_set_state(minfo, MCC_NONE); in rtw_phl_mcc_reset()
3540 if (minfo->mcc_mode == RTW_PHL_TDMRA_AP_CLIENT_WMODE || in rtw_phl_mcc_reset()
3541 minfo->mcc_mode == RTW_PHL_TDMRA_AP_WMODE) in rtw_phl_mcc_reset()
3570 struct phl_mcc_info *minfo = NULL; in rtw_phl_mcc_enable() local
3581 minfo = get_mcc_info(phl, cur_role->hw_band); in rtw_phl_mcc_enable()
3582 en_info = &minfo->en_info; in rtw_phl_mcc_enable()
3583 if (MCC_NONE != minfo->state && MCC_STOP != minfo->state) { in rtw_phl_mcc_enable()
3585 minfo->state); in rtw_phl_mcc_enable()
3586 _mcc_dump_state(&minfo->state); in rtw_phl_mcc_enable()
3589 _mcc_set_state(minfo, MCC_CFG_EN_INFO); in rtw_phl_mcc_enable()
3595 _mcc_reset_minfo(phl, minfo, (MINFO_RESET_EN_INFO | MINFO_RESET_MODE | in rtw_phl_mcc_enable()
3598 minfo->role_map = role_map; in rtw_phl_mcc_enable()
3599 if (RTW_PHL_STATUS_SUCCESS != _mcc_transfer_mode(phl, minfo, in rtw_phl_mcc_enable()
3609 _mcc_fill_coex_mode(phl, minfo); in rtw_phl_mcc_enable()
3610 _mcc_fill_bt_dur(phl, minfo); in rtw_phl_mcc_enable()
3611 if (RTW_PHL_STATUS_SUCCESS != _mcc_get_mrole_idx_by_wrole(minfo, in rtw_phl_mcc_enable()
3616 if (minfo->mcc_mode == RTW_PHL_TDMRA_AP_CLIENT_WMODE) { in rtw_phl_mcc_enable()
3618 _mcc_fill_info_for_ap_client_mode(phl, minfo)) { in rtw_phl_mcc_enable()
3622 } else if (minfo->mcc_mode == RTW_PHL_TDMRA_2CLIENTS_WMODE){ in rtw_phl_mcc_enable()
3624 _mcc_fill_info_for_2_clients_mode(phl, minfo)) { in rtw_phl_mcc_enable()
3630 minfo->mcc_mode); in rtw_phl_mcc_enable()
3633 _mcc_dump_mcc_info(minfo); in rtw_phl_mcc_enable()
3638 _mcc_set_state(minfo, MCC_TRIGGER_FW_EN); in rtw_phl_mcc_enable()
3639 if (rtw_hal_mcc_enable(phl->hal, en_info, &minfo->bt_info, in rtw_phl_mcc_enable()
3640 minfo->mcc_mode) != RTW_HAL_STATUS_SUCCESS) { in rtw_phl_mcc_enable()
3641 _mcc_set_state(minfo, MCC_FW_EN_FAIL); in rtw_phl_mcc_enable()
3645 _mcc_set_state(minfo, MCC_RUNING); in rtw_phl_mcc_enable()
3647 if (minfo->mcc_mode == RTW_PHL_TDMRA_AP_CLIENT_WMODE) in rtw_phl_mcc_enable()
3648 _mcc_up_noa(phl, minfo); in rtw_phl_mcc_enable()
3649 _mcc_dump_mcc_info(minfo); in rtw_phl_mcc_enable()
3650 _mcc_up_fw_log_setting(phl, minfo); in rtw_phl_mcc_enable()
3654 _mcc_set_state(minfo, MCC_NONE); in rtw_phl_mcc_enable()
3669 struct phl_mcc_info *minfo = NULL; in rtw_phl_mcc_disable() local
3678 minfo = get_mcc_info(phl, spec_role->hw_band); in rtw_phl_mcc_disable()
3679 en_info = &minfo->en_info; in rtw_phl_mcc_disable()
3680 if (MCC_RUNING != minfo->state) { in rtw_phl_mcc_disable()
3682 _mcc_dump_state(&minfo->state); in rtw_phl_mcc_disable()
3685 if (NULL == (m_role = _mcc_get_mrole_by_wrole(minfo, spec_role))) { in rtw_phl_mcc_disable()
3690 _mcc_set_state(minfo, MCC_TRIGGER_FW_DIS); in rtw_phl_mcc_disable()
3692 minfo->mcc_mode) != RTW_HAL_STATUS_SUCCESS) { in rtw_phl_mcc_disable()
3694 _mcc_set_state(minfo, MCC_FW_DIS_FAIL); in rtw_phl_mcc_disable()
3699 _mcc_set_state(minfo, MCC_STOP); in rtw_phl_mcc_disable()
3701 if (minfo->mcc_mode == RTW_PHL_TDMRA_AP_CLIENT_WMODE) in rtw_phl_mcc_disable()
3713 struct phl_mcc_info *minfo = NULL; in rtw_phl_tdmra_duration_change() local
3721 minfo = get_mcc_info(phl, info->hw_band); in rtw_phl_tdmra_duration_change()
3722 en_info = &minfo->en_info; in rtw_phl_tdmra_duration_change()
3723 if (MCC_RUNING != minfo->state) { in rtw_phl_tdmra_duration_change()
3725 _mcc_dump_state(&minfo->state); in rtw_phl_tdmra_duration_change()
3776 struct phl_mcc_info *minfo = NULL; in rtw_phl_tdmra_disable() local
3785 minfo = get_mcc_info(phl, spec_role->hw_band); in rtw_phl_tdmra_disable()
3786 en_info = &minfo->en_info; in rtw_phl_tdmra_disable()
3787 if (MCC_RUNING != minfo->state) { in rtw_phl_tdmra_disable()
3789 _mcc_dump_state(&minfo->state); in rtw_phl_tdmra_disable()
3792 if (NULL == (m_role = _mcc_get_mrole_by_wrole(minfo, spec_role))) { in rtw_phl_tdmra_disable()
3809 _mcc_set_state(minfo, MCC_TRIGGER_FW_DIS); in rtw_phl_tdmra_disable()
3811 minfo->mcc_mode) != RTW_HAL_STATUS_SUCCESS) { in rtw_phl_tdmra_disable()
3813 _mcc_set_state(minfo, MCC_FW_DIS_FAIL); in rtw_phl_tdmra_disable()
3818 _mcc_set_state(minfo, MCC_STOP); in rtw_phl_tdmra_disable()
3820 if (minfo->mcc_mode == RTW_PHL_TDMRA_AP_CLIENT_WMODE || in rtw_phl_tdmra_disable()
3821 minfo->mcc_mode == RTW_PHL_TDMRA_AP_WMODE) in rtw_phl_tdmra_disable()
3923 struct phl_mcc_info *minfo = NULL; in rtw_phl_mcc_get_dbg_info() local
3930 minfo = get_mcc_info(phl, band_idx); in rtw_phl_mcc_get_dbg_info()
3931 en_info = &minfo->en_info; in rtw_phl_mcc_get_dbg_info()
3934 *(enum rtw_phl_mcc_state *)info = minfo->state; in rtw_phl_mcc_get_dbg_info()
3936 *(enum rtw_phl_tdmra_wmode *)info = minfo->mcc_mode; in rtw_phl_mcc_get_dbg_info()
3938 *(enum rtw_phl_mcc_coex_mode *)info = minfo->coex_mode; in rtw_phl_mcc_get_dbg_info()
3940 _os_mem_cpy(phl_to_drvpriv(phl), info, &minfo->bt_info, in rtw_phl_mcc_get_dbg_info()