Lines Matching full:grp

17 void __reset_snd_grp(struct phl_snd_grp *grp)  in __reset_snd_grp()  argument
21 grp->snd_type = PHL_SND_TYPE_INVALID; in __reset_snd_grp()
22 grp->band = 0; in __reset_snd_grp()
23 grp->num_sta = 0; in __reset_snd_grp()
24 grp->wrole_idx = 0; in __reset_snd_grp()
25 grp->grp_tier = PHL_SND_GRP_TIER_1; in __reset_snd_grp()
26 grp->snd_sts = PHL_SND_STS_PENDING; in __reset_snd_grp()
28 grp->sta[i].valid = false; in __reset_snd_grp()
29 grp->sta[i].macid = 0; in __reset_snd_grp()
30 grp->sta[i].bw = CHANNEL_WIDTH_20; in __reset_snd_grp()
31 grp->sta[i].snd_fb_t = PHL_SND_FB_TYPE_SU; in __reset_snd_grp()
32 grp->sta[i].npda_sta_info = 0; in __reset_snd_grp()
33 grp->sta[i].bf_entry = NULL; in __reset_snd_grp()
34 grp->sta[i].snd_sts = PHL_SND_STS_PENDING; in __reset_snd_grp()
354 * get the grp(struct phl_sound_grp *) with group index.
358 * @grp: (struct phl_snd_grp *grp), NULL = FAIL;
365 struct phl_snd_grp *grp = NULL; in phl_snd_get_grp_byidx() local
380 grp = &snd_param->snd_grp[gidx]; in phl_snd_get_grp_byidx()
384 return grp; in phl_snd_get_grp_byidx()
389 * remove the target sounding grp from sound process;
391 * @grp: (struct phl_snd_grp *) target sounding grp,
394 phl_snd_func_remove_grp(struct phl_info_t *phl_info, struct phl_snd_grp *grp) in phl_snd_func_remove_grp() argument
400 if (grp == NULL) { in phl_snd_func_remove_grp()
403 if (snd_param->grp_used_map & BIT(grp->gidx)) { in phl_snd_func_remove_grp()
406 pstatus = phl_snd_proc_release_res(phl_info, grp); in phl_snd_func_remove_grp()
408 PHL_TRACE(COMP_PHL_SOUND, _PHL_INFO_, "PHL SND Remove Grp : release BF resouce fail\n"); in phl_snd_func_remove_grp()
412 __reset_snd_grp(grp); in phl_snd_func_remove_grp()
415 snd_param->grp_used_map &= ~BIT(grp->gidx); in phl_snd_func_remove_grp()
419 PHL_TRACE(COMP_PHL_SOUND, _PHL_INFO_, "PHL SND Remove Grp : Group is not in used!!!\n"); in phl_snd_func_remove_grp()
427 * remove the all of the sounding grp from sound process;
433 struct phl_snd_grp *grp = NULL; in phl_snd_func_remove_grp_all() local
437 grp = phl_snd_get_grp_byidx(phl_info, idx); in phl_snd_func_remove_grp_all()
438 if (grp != NULL) { in phl_snd_func_remove_grp_all()
439 pstatus = phl_snd_func_remove_grp(phl_info, grp); in phl_snd_func_remove_grp_all()
441 PHL_TRACE(COMP_PHL_SOUND, _PHL_INFO_, "Remove SND GRP[%d] Fail\n", idx); in phl_snd_func_remove_grp_all()
451 * @gidx: u8, the group idx in snd_param->grp[n]
483 struct phl_snd_grp *grp = NULL; in _phl_snd_func_grp_add_sta() local
495 PHL_TRACE(COMP_PHL_SOUND, _PHL_INFO_, "Get SND Grp Resource Fail : gidx >= MAX_SND_GRP_NUM\n"); in _phl_snd_func_grp_add_sta()
499 grp = &snd_param->snd_grp[gidx]; in _phl_snd_func_grp_add_sta()
501 /* check grp->sta[i].macid with sta->macid, skip it if same.*/ in _phl_snd_func_grp_add_sta()
502 for (i = 0; i < grp->num_sta; i++) { in _phl_snd_func_grp_add_sta()
503 if(grp->sta[i].macid == sta->macid) { in _phl_snd_func_grp_add_sta()
511 if (grp->num_sta >= MAX_NUM_STA_SND_GRP) { in _phl_snd_func_grp_add_sta()
512 PHL_TRACE(COMP_PHL_SOUND, _PHL_INFO_, "The SND Grp is already has 4 STAs\n"); in _phl_snd_func_grp_add_sta()
516 grp->sta[grp->num_sta].macid = sta->macid; in _phl_snd_func_grp_add_sta()
517 grp->sta[grp->num_sta].snd_sts = PHL_SND_STS_PENDING; in _phl_snd_func_grp_add_sta()
518 grp->sta[grp->num_sta].bw = sta->chandef.bw; in _phl_snd_func_grp_add_sta()
519 grp->sta[grp->num_sta].valid = true; in _phl_snd_func_grp_add_sta()
520 grp->num_sta++; in _phl_snd_func_grp_add_sta()
522 PHL_TRACE(COMP_PHL_SOUND, _PHL_INFO_, "grp->num_sta = %d\n", grp->num_sta); in _phl_snd_func_grp_add_sta()
546 struct phl_snd_grp *grp = NULL; in phl_snd_func_add_snd_grp() local
559 PHL_TRACE(COMP_PHL_SOUND, _PHL_INFO_, "Get SND Grp Resource Fail : gidx >= MAX_SND_GRP_NUM\n"); in phl_snd_func_add_snd_grp()
563 grp = &(snd_param->snd_grp[*gidx]); in phl_snd_func_add_snd_grp()
564 grp->band = psta->wrole->hw_band; in phl_snd_func_add_snd_grp()
565 grp->snd_type = he_snd ? PHL_SND_TYPE_HE_SW : in phl_snd_func_add_snd_grp()
567 grp->wrole_idx = wrole_idx; in phl_snd_func_add_snd_grp()
568 grp->snd_sts = PHL_SND_STS_PENDING; in phl_snd_func_add_snd_grp()
569 grp->num_sta = 0; in phl_snd_func_add_snd_grp()
580 PHL_TRACE(COMP_PHL_SOUND, _PHL_INFO_, "phl_snd_func_add_snd_grp : grp->snd_type 0x%x\n", in phl_snd_func_add_snd_grp()
581 grp->snd_type); in phl_snd_func_add_snd_grp()
590 * Set the whole sounding grp's feedback type = MU
592 * @grp: (struct phl_snd_grp *) the target group.
594 void _phl_snd_func_set_grp_fb_mu(struct phl_snd_grp *grp) in _phl_snd_func_set_grp_fb_mu() argument
597 if (grp == NULL) in _phl_snd_func_set_grp_fb_mu()
599 for (i = 0; i < grp->num_sta; i++) { in _phl_snd_func_set_grp_fb_mu()
600 grp->sta[i].snd_fb_t = PHL_SND_FB_TYPE_MU; in _phl_snd_func_set_grp_fb_mu()
619 struct phl_snd_grp *grp = NULL; in phl_snd_func_grouping() local
647 grp = &snd_param->snd_grp[gidx]; in phl_snd_func_grouping()
648 grp->grp_tier = PHL_SND_GRP_TIER_0; in phl_snd_func_grouping()
649 grp->sta[0].snd_fb_t = PHL_SND_FB_TYPE_SU; in phl_snd_func_grouping()
650 grp->snd_type = (self->wmode & WLAN_MD_11AX) ? in phl_snd_func_grouping()
684 grp = &snd_param->snd_grp[gidx]; in phl_snd_func_grouping()
685 grp->grp_tier = PHL_SND_GRP_TIER_0; in phl_snd_func_grouping()
706 grp = &snd_param->snd_grp[gidx]; in phl_snd_func_grouping()
708 if (grp->sta[cnt].valid) in phl_snd_func_grouping()
709 grp->sta[cnt].bw = fix_para->bw[cnt]; in phl_snd_func_grouping()
713 grp = &snd_param->snd_grp[gidx]; in phl_snd_func_grouping()
714 if (grp->num_sta > 2) { in phl_snd_func_grouping()
732 struct phl_info_t *phl_info, struct phl_snd_grp *grp) in _phl_snd_proc_release_res_cqi() argument
743 struct phl_info_t *phl_info, struct phl_snd_grp *grp) in _phl_snd_proc_release_res_bf() argument
751 for (idx = 0; idx < grp->num_sta; idx++) { in _phl_snd_proc_release_res_bf()
752 snd_sta = &grp->sta[idx]; in _phl_snd_proc_release_res_bf()
781 * @grp: (struct phl_snd_grp *) sounding gorup for release resource
784 phl_snd_proc_release_res(struct phl_info_t *phl_info, struct phl_snd_grp *grp) in phl_snd_proc_release_res() argument
788 snd_sta = &grp->sta[0]; in phl_snd_proc_release_res()
790 pstatus = _phl_snd_proc_release_res_cqi(phl_info, grp); in phl_snd_proc_release_res()
792 pstatus = _phl_snd_proc_release_res_bf(phl_info, grp); in phl_snd_proc_release_res()
801 * @grp: (struct phl_sound_grp *) sounding gorup
806 struct phl_info_t *phl_info, struct phl_snd_grp *grp, u8 *nsta) in _phl_snd_proc_get_res_cqi_fb() argument
815 for (idx = 0; idx < grp->num_sta; idx++) { in _phl_snd_proc_get_res_cqi_fb()
816 snd_sta = &grp->sta[idx]; in _phl_snd_proc_get_res_cqi_fb()
833 grp->snd_sts = PHL_SND_STS_FAILURE; in _phl_snd_proc_get_res_cqi_fb()
836 if (*nsta != grp->num_sta) { in _phl_snd_proc_get_res_cqi_fb()
847 * @grp: (struct phl_sound_grp *) sounding gorup
852 struct phl_info_t *phl_info, struct phl_snd_grp *grp, u8 *nsta) in _phl_snd_proc_get_res_bf() argument
863 for (idx = 0; idx < grp->num_sta; idx++) { in _phl_snd_proc_get_res_bf()
864 snd_sta = &grp->sta[idx]; in _phl_snd_proc_get_res_bf()
896 grp->en_swap_mode); in _phl_snd_proc_get_res_bf()
900 if (grp->en_swap_mode) { in _phl_snd_proc_get_res_bf()
906 if (grp->snd_type >= PHL_SND_TYPE_HE_HW) { in _phl_snd_proc_get_res_bf()
924 grp->snd_sts = PHL_SND_STS_FAILURE; in _phl_snd_proc_get_res_bf()
927 if (*nsta != grp->num_sta) { in _phl_snd_proc_get_res_bf()
937 struct phl_info_t *phl_info, struct phl_snd_grp *grp, u8 *nsta) in phl_snd_proc_get_res() argument
943 snd_sta = &grp->sta[0]; in phl_snd_proc_get_res()
946 pstatus = _phl_snd_proc_get_res_cqi_fb(phl_info, grp, nsta); in phl_snd_proc_get_res()
948 pstatus = _phl_snd_proc_get_res_bf(phl_info, grp, nsta); in phl_snd_proc_get_res()
951 grp->snd_sts = PHL_SND_STS_FAILURE; in phl_snd_proc_get_res()
980 phl_snd_cal_mu_grp_bitmap(struct phl_info_t *phl_info, struct phl_snd_grp *grp) in phl_snd_cal_mu_grp_bitmap() argument
991 sta = &grp->sta[i]; in phl_snd_cal_mu_grp_bitmap()
1014 tmp_sta = &grp->sta[j]; in phl_snd_cal_mu_grp_bitmap()
1032 /* grp bitmap doesn't include self */ in phl_snd_cal_mu_grp_bitmap()
1058 phl_snd_proc_precfg(struct phl_info_t *phl_info, struct phl_snd_grp *grp) in phl_snd_proc_precfg() argument
1067 if (grp == NULL) { in phl_snd_proc_precfg()
1071 if (PHL_SND_TYPE_INVALID == grp->snd_type) { in phl_snd_proc_precfg()
1076 sta = &grp->sta[idx]; in phl_snd_proc_precfg()
1095 if (PHL_SND_FB_TYPE_MU == grp->sta[0].snd_fb_t) in phl_snd_proc_precfg()
1096 pstatus = phl_snd_cal_mu_grp_bitmap(phl_info, grp); in phl_snd_proc_precfg()
1102 grp->snd_sts = PHL_SND_STS_FAILURE; in phl_snd_proc_precfg()
1108 /* HE TB Sounding : 2 sta in a grp */
1111 struct phl_snd_grp *grp, in _phl_snd_proc_fw_cmd_he_tb_2sta() argument
1118 if (grp->num_sta != 2) in _phl_snd_proc_fw_cmd_he_tb_2sta()
1121 sta_info = rtw_phl_get_stainfo_by_macid(phl_info, grp->sta[0].macid); in _phl_snd_proc_fw_cmd_he_tb_2sta()
1124 if (CHANNEL_WIDTH_20 == grp->sta[0].bw) in _phl_snd_proc_fw_cmd_he_tb_2sta()
1129 if (CHANNEL_WIDTH_20 == grp->sta[0].bw) in _phl_snd_proc_fw_cmd_he_tb_2sta()
1136 rtw_hal_snd_ax_fwcmd_tb_pri(phl_info->hal, cmd, grp->sta[0].bw, in _phl_snd_proc_fw_cmd_he_tb_2sta()
1137 sta_info, grp->num_sta, 0); in _phl_snd_proc_fw_cmd_he_tb_2sta()
1141 &grp->sta[0].npda_sta_info, in _phl_snd_proc_fw_cmd_he_tb_2sta()
1149 sta_info = rtw_phl_get_stainfo_by_macid(phl_info, grp->sta[1].macid); in _phl_snd_proc_fw_cmd_he_tb_2sta()
1153 &grp->sta[1].npda_sta_info, in _phl_snd_proc_fw_cmd_he_tb_2sta()
1162 /* HE TB Sounding : 3 sta in a grp */
1165 struct phl_snd_grp *grp, in _phl_snd_proc_fw_cmd_he_tb_3sta() argument
1172 if(grp->num_sta != 3) in _phl_snd_proc_fw_cmd_he_tb_3sta()
1175 sta_info = rtw_phl_get_stainfo_by_macid(phl_info, grp->sta[0].macid); in _phl_snd_proc_fw_cmd_he_tb_3sta()
1178 if (CHANNEL_WIDTH_20 == grp->sta[0].bw) in _phl_snd_proc_fw_cmd_he_tb_3sta()
1183 if (CHANNEL_WIDTH_20 == grp->sta[0].bw) in _phl_snd_proc_fw_cmd_he_tb_3sta()
1190 rtw_hal_snd_ax_fwcmd_tb_pri(phl_info->hal, cmd, grp->sta[0].bw, in _phl_snd_proc_fw_cmd_he_tb_3sta()
1191 sta_info, grp->num_sta, 0); in _phl_snd_proc_fw_cmd_he_tb_3sta()
1195 &grp->sta[0].npda_sta_info, in _phl_snd_proc_fw_cmd_he_tb_3sta()
1203 sta_info = rtw_phl_get_stainfo_by_macid(phl_info, grp->sta[1].macid); in _phl_snd_proc_fw_cmd_he_tb_3sta()
1207 &grp->sta[1].npda_sta_info, in _phl_snd_proc_fw_cmd_he_tb_3sta()
1214 sta_info = rtw_phl_get_stainfo_by_macid(phl_info, grp->sta[2].macid); in _phl_snd_proc_fw_cmd_he_tb_3sta()
1218 &grp->sta[2].npda_sta_info, in _phl_snd_proc_fw_cmd_he_tb_3sta()
1227 /* HE TB Sounding : 4 sta in a grp */
1230 struct phl_snd_grp *grp, in _phl_snd_proc_fw_cmd_he_tb_4sta() argument
1237 if(grp->num_sta != 4) in _phl_snd_proc_fw_cmd_he_tb_4sta()
1240 sta_info = rtw_phl_get_stainfo_by_macid(phl_info, grp->sta[0].macid); in _phl_snd_proc_fw_cmd_he_tb_4sta()
1243 if (CHANNEL_WIDTH_20 == grp->sta[0].bw) in _phl_snd_proc_fw_cmd_he_tb_4sta()
1248 if (CHANNEL_WIDTH_20 == grp->sta[0].bw) in _phl_snd_proc_fw_cmd_he_tb_4sta()
1255 rtw_hal_snd_ax_fwcmd_tb_pri(phl_info->hal, cmd, grp->sta[0].bw, in _phl_snd_proc_fw_cmd_he_tb_4sta()
1256 sta_info, grp->num_sta, 0); in _phl_snd_proc_fw_cmd_he_tb_4sta()
1260 &grp->sta[0].npda_sta_info, in _phl_snd_proc_fw_cmd_he_tb_4sta()
1268 sta_info = rtw_phl_get_stainfo_by_macid(phl_info, grp->sta[1].macid); in _phl_snd_proc_fw_cmd_he_tb_4sta()
1272 &grp->sta[1].npda_sta_info, in _phl_snd_proc_fw_cmd_he_tb_4sta()
1279 sta_info = rtw_phl_get_stainfo_by_macid(phl_info, grp->sta[2].macid); in _phl_snd_proc_fw_cmd_he_tb_4sta()
1283 &grp->sta[2].npda_sta_info, in _phl_snd_proc_fw_cmd_he_tb_4sta()
1291 sta_info = rtw_phl_get_stainfo_by_macid(phl_info, grp->sta[3].macid); in _phl_snd_proc_fw_cmd_he_tb_4sta()
1295 &grp->sta[3].npda_sta_info, in _phl_snd_proc_fw_cmd_he_tb_4sta()
1307 struct phl_snd_grp *grp) in phl_snd_proc_start_sounding_fw() argument
1318 if (NULL == grp) in phl_snd_proc_start_sounding_fw()
1320 if(grp->sta[0].valid == 0) in phl_snd_proc_start_sounding_fw()
1325 phl_info, grp->sta[0].macid); in phl_snd_proc_start_sounding_fw()
1327 switch (grp->snd_type) { in phl_snd_proc_start_sounding_fw()
1334 if (grp->num_sta == 1) { in phl_snd_proc_start_sounding_fw()
1337 grp->sta[0].bw, in phl_snd_proc_start_sounding_fw()
1339 &grp->sta[0].npda_sta_info); in phl_snd_proc_start_sounding_fw()
1344 grp->sta[0].bw, in phl_snd_proc_start_sounding_fw()
1346 grp->num_sta, in phl_snd_proc_start_sounding_fw()
1347 &grp->sta[0].npda_sta_info); in phl_snd_proc_start_sounding_fw()
1349 for (i = 1; i < grp->num_sta; i++) { in phl_snd_proc_start_sounding_fw()
1350 if(grp->sta[i].valid == 0) in phl_snd_proc_start_sounding_fw()
1353 phl_info, grp->sta[i].macid); in phl_snd_proc_start_sounding_fw()
1357 &grp->sta[i].npda_sta_info, in phl_snd_proc_start_sounding_fw()
1360 (i==(grp->num_sta-1)) ? 1 : 0 in phl_snd_proc_start_sounding_fw()
1383 if (grp->num_sta == 1) { in phl_snd_proc_start_sounding_fw()
1386 grp->sta[0].bw, in phl_snd_proc_start_sounding_fw()
1388 &grp->sta[0].npda_sta_info); in phl_snd_proc_start_sounding_fw()
1392 if (grp->num_sta == 4) in phl_snd_proc_start_sounding_fw()
1394 phl_info, grp, cmd, 1); in phl_snd_proc_start_sounding_fw()
1395 else if (grp->num_sta == 3) in phl_snd_proc_start_sounding_fw()
1397 phl_info, grp, cmd, 1); in phl_snd_proc_start_sounding_fw()
1398 else if (grp->num_sta == 2) in phl_snd_proc_start_sounding_fw()
1400 phl_info, grp, cmd, 1); in phl_snd_proc_start_sounding_fw()
1430 &grp->sta[0].npda_sta_info, in phl_snd_proc_start_sounding_fw()
1431 grp->sta[0].bw); in phl_snd_proc_start_sounding_fw()
1446 &grp->sta[0].npda_sta_info, in phl_snd_proc_start_sounding_fw()
1447 grp->sta[0].bw); in phl_snd_proc_start_sounding_fw()
1452 PHL_TRACE(COMP_PHL_SOUND, _PHL_INFO_, "ERROR: grp->snd_type invalid\n"); in phl_snd_proc_start_sounding_fw()
1466 struct phl_snd_grp *grp) in _phl_snd_proc_postcfg_mu_gid() argument
1480 sta = &grp->sta[i]; in _phl_snd_proc_postcfg_mu_gid()
1517 struct phl_snd_grp *grp) in _phl_snd_proc_postcfg_sta() argument
1529 sta = &grp->sta[idx]; in _phl_snd_proc_postcfg_sta()
1564 phl_snd_proc_postcfg(struct phl_info_t *phl_info, struct phl_snd_grp *grp) in phl_snd_proc_postcfg() argument
1573 if (grp == NULL) { in phl_snd_proc_postcfg()
1577 he = (grp->snd_type >= PHL_SND_TYPE_HE_HW) ? true : false; in phl_snd_proc_postcfg()
1578 mu = (grp->sta[0].snd_fb_t == PHL_SND_FB_TYPE_MU) ? true : in phl_snd_proc_postcfg()
1582 if (grp->skip_post_cfg & BIT(1)) { in phl_snd_proc_postcfg()
1589 grp->en_fix_mode); in phl_snd_proc_postcfg()
1596 if (grp->skip_post_cfg & BIT(2)) { in phl_snd_proc_postcfg()
1601 _phl_snd_proc_postcfg_mu_gid(phl_info, grp); in phl_snd_proc_postcfg()
1606 if (grp->skip_post_cfg & BIT(3)) { in phl_snd_proc_postcfg()
1609 _phl_snd_proc_postcfg_sta(phl_info, grp); in phl_snd_proc_postcfg()
1620 phl_snd_proc_chk_condition(struct phl_info_t *phl_info, struct phl_snd_grp *grp) in phl_snd_proc_chk_condition() argument
1655 if (grp->sta[0].bw > role->chandef.bw) in phl_snd_proc_chk_condition()
1657 if (0 == grp->num_sta) in phl_snd_proc_chk_condition()
1659 for (i = 0; i < grp->num_sta; i++) { in phl_snd_proc_chk_condition()
1660 sta = &grp->sta[i]; in phl_snd_proc_chk_condition()
1690 * if grp is TIER0 grp, skip release BF/CQI resource.
1694 struct phl_snd_grp *grp) in phl_snd_proc_chk_prev_grp() argument
1699 if (PHL_SND_STS_FAILURE == grp->snd_sts) { in phl_snd_proc_chk_prev_grp()
1702 } else if ((PHL_SND_GRP_TIER_1 == grp->grp_tier) && (PHL_SND_STS_PENDING != grp->snd_sts)) { in phl_snd_proc_chk_prev_grp()
1709 pstatus = phl_snd_proc_release_res(phl_info, grp); in phl_snd_proc_chk_prev_grp()
1717 struct phl_snd_grp *grp) in phl_snd_polling_pri_sta_sts() argument
1724 sta = rtw_phl_get_stainfo_by_macid(phl_info, grp->sta[0].macid); in phl_snd_polling_pri_sta_sts()