Lines Matching defs:bb
1218 "bb gain error {0x%x:0x%x} with unknown type: %d\n",
1308 "bb rpl ofst {0x%x:0x%x} with unknown bw: %d\n",
1335 "bb gain bypass {0x%x:0x%x} with unknown type: %d\n",
1370 "bb gain op1db {0x%x:0x%x} with unknown type: %d\n",
1392 rtw89_warn(rtwdev, "bb gain table with flow ctrl\n");
1416 "bb gain {0x%x:0x%x} with unknown cfg type: %d\n",
5235 struct rtw89_bb_ctx *bb;
5239 bb = rtw89_get_bb_ctx(rtwdev, rtwvif_link->phy_idx);
5240 ch_info = &bb->ch_info;
5272 struct rtw89_bb_ctx *bb;
5275 rtw89_for_each_active_bb(rtwdev, bb)
5276 bb->ch_info.rssi_min = U8_MAX;
5316 struct rtw89_bb_ctx *bb, u32 time_us)
5318 struct rtw89_env_monitor_info *env = &bb->env_monitor;
5324 struct rtw89_bb_ctx *bb, u16 idx)
5326 struct rtw89_env_monitor_info *env = &bb->env_monitor;
5332 struct rtw89_bb_ctx *bb)
5335 struct rtw89_env_monitor_info *env = &bb->env_monitor;
5344 rtw89_phy_write32_idx(rtwdev, ccx->setting_addr, ccx->en_mask, 1, bb->phy_idx);
5346 bb->phy_idx);
5348 bb->phy_idx);
5350 RTW89_CCX_EDCCA_BW20_0, bb->phy_idx);
5354 struct rtw89_bb_ctx *bb,
5357 struct rtw89_env_monitor_info *env = &bb->env_monitor;
5398 struct rtw89_bb_ctx *bb)
5400 struct rtw89_env_monitor_info *env = &bb->env_monitor;
5411 struct rtw89_bb_ctx *bb,
5414 struct rtw89_env_monitor_info *env = &bb->env_monitor;
5449 ifs_th_h[IFS_CLM_TH_START_IDX] = rtw89_phy_ccx_us_to_idx(rtwdev, bb,
5454 ifs_th_h[i] = rtw89_phy_ccx_us_to_idx(rtwdev, bb, ifs_th_h_us[i]);
5466 struct rtw89_bb_ctx *bb)
5469 struct rtw89_env_monitor_info *env = &bb->env_monitor;
5474 env->ifs_clm_th_l[0], bb->phy_idx);
5476 env->ifs_clm_th_l[1], bb->phy_idx);
5478 env->ifs_clm_th_l[2], bb->phy_idx);
5480 env->ifs_clm_th_l[3], bb->phy_idx);
5483 env->ifs_clm_th_h[0], bb->phy_idx);
5485 env->ifs_clm_th_h[1], bb->phy_idx);
5487 env->ifs_clm_th_h[2], bb->phy_idx);
5489 env->ifs_clm_th_h[3], bb->phy_idx);
5498 struct rtw89_bb_ctx *bb)
5501 struct rtw89_env_monitor_info *env = &bb->env_monitor;
5509 if (rtw89_phy_ifs_clm_th_update_check(rtwdev, bb, ¶))
5510 rtw89_phy_ifs_clm_set_th_reg(rtwdev, bb);
5513 bb->phy_idx);
5515 bb->phy_idx);
5517 bb->phy_idx);
5519 bb->phy_idx);
5521 bb->phy_idx);
5525 struct rtw89_bb_ctx *bb,
5528 struct rtw89_env_monitor_info *env = &bb->env_monitor;
5558 struct rtw89_bb_ctx *bb)
5561 struct rtw89_env_monitor_info *env = &bb->env_monitor;
5565 bb->phy_idx);
5567 bb->phy_idx);
5569 bb->phy_idx);
5571 bb->phy_idx);
5577 struct rtw89_bb_ctx *bb)
5579 struct rtw89_env_monitor_info *env = &bb->env_monitor;
5584 rtw89_phy_ccx_get_report(rtwdev, bb, env->ifs_clm_tx, PERCENT);
5586 rtw89_phy_ccx_get_report(rtwdev, bb, env->ifs_clm_edcca_excl_cca,
5589 rtw89_phy_ccx_get_report(rtwdev, bb, env->ifs_clm_cckfa, PERCENT);
5591 rtw89_phy_ccx_get_report(rtwdev, bb, env->ifs_clm_ofdmfa, PERCENT);
5593 rtw89_phy_ccx_get_report(rtwdev, bb, env->ifs_clm_cckcca_excl_fa,
5596 rtw89_phy_ccx_get_report(rtwdev, bb, env->ifs_clm_ofdmcca_excl_fa,
5599 rtw89_phy_ccx_get_report(rtwdev, bb, env->ifs_clm_cckfa, PERMIL);
5601 rtw89_phy_ccx_get_report(rtwdev, bb, env->ifs_clm_ofdmfa, PERMIL);
5608 rtw89_phy_ccx_idx_to_us(rtwdev, bb,
5612 res = rtw89_phy_ccx_idx_to_us(rtwdev, bb, env->ifs_clm_cca[i]);
5643 struct rtw89_bb_ctx *bb)
5646 struct rtw89_env_monitor_info *env = &bb->env_monitor;
5651 ccx->ifs_cnt_done_mask, bb->phy_idx) == 0) {
5659 ccx->ifs_clm_tx_cnt_msk, bb->phy_idx);
5662 ccx->ifs_clm_edcca_excl_cca_fa_mask, bb->phy_idx);
5665 ccx->ifs_clm_cckcca_excl_fa_mask, bb->phy_idx);
5668 ccx->ifs_clm_ofdmcca_excl_fa_mask, bb->phy_idx);
5671 ccx->ifs_clm_cck_fa_mask, bb->phy_idx);
5674 ccx->ifs_clm_ofdm_fa_mask, bb->phy_idx);
5678 ccx->ifs_t1_his_mask, bb->phy_idx);
5681 ccx->ifs_t2_his_mask, bb->phy_idx);
5684 ccx->ifs_t3_his_mask, bb->phy_idx);
5687 ccx->ifs_t4_his_mask, bb->phy_idx);
5691 ccx->ifs_t1_avg_mask, bb->phy_idx);
5694 ccx->ifs_t2_avg_mask, bb->phy_idx);
5697 ccx->ifs_t3_avg_mask, bb->phy_idx);
5700 ccx->ifs_t4_avg_mask, bb->phy_idx);
5704 ccx->ifs_t1_cca_mask, bb->phy_idx);
5707 ccx->ifs_t2_cca_mask, bb->phy_idx);
5710 ccx->ifs_t3_cca_mask, bb->phy_idx);
5713 ccx->ifs_t4_cca_mask, bb->phy_idx);
5717 ccx->ifs_total_mask, bb->phy_idx);
5737 rtw89_phy_ifs_clm_get_utility(rtwdev, bb);
5743 struct rtw89_bb_ctx *bb,
5747 struct rtw89_env_monitor_info *env = &bb->env_monitor;
5758 if (rtw89_phy_ccx_racing_ctrl(rtwdev, bb, para->rac_lv))
5765 ccx->ifs_clm_period_mask, period, bb->phy_idx);
5768 unit_idx, bb->phy_idx);
5779 if (rtw89_phy_ifs_clm_th_update_check(rtwdev, bb, para)) {
5781 rtw89_phy_ifs_clm_set_th_reg(rtwdev, bb);
5788 struct rtw89_bb_ctx *bb)
5790 struct rtw89_env_monitor_info *env = &bb->env_monitor;
5802 "BB-%d env_monitor track\n", bb->phy_idx);
5805 if (rtw89_phy_ifs_clm_get_result(rtwdev, bb))
5808 rtw89_phy_ccx_racing_release(rtwdev, bb);
5813 if (rtw89_phy_ifs_clm_set(rtwdev, bb, ¶) == 0)
5816 rtw89_phy_ccx_trigger(rtwdev, bb);
5825 struct rtw89_bb_ctx *bb;
5827 rtw89_for_each_active_bb(rtwdev, bb)
5828 __rtw89_phy_env_monitor_track(rtwdev, bb);
5952 struct rtw89_bb_ctx *bb, int type)
5956 struct rtw89_dig_info *dig = &bb->dig;
5994 cfg->table[i].mask, bb->phy_idx);
6005 struct rtw89_bb_ctx *bb)
6007 struct rtw89_dig_info *dig = &bb->dig;
6015 B_PATH0_IB_PKPW_MSK, bb->phy_idx);
6018 B_PATH0_IB_PBK_MSK, bb->phy_idx);
6023 rtw89_phy_dig_read_gain_table(rtwdev, bb, i);
6033 struct rtw89_bb_ctx *bb)
6035 struct rtw89_phy_ch_info *ch_info = &bb->ch_info;
6036 struct rtw89_dig_info *dig = &bb->dig;
6048 struct rtw89_bb_ctx *bb)
6050 const struct rtw89_chan *chan = rtw89_mgnt_chan_get(rtwdev, bb->phy_idx);
6051 struct rtw89_dig_info *dig = &bb->dig;
6081 struct rtw89_bb_ctx *bb)
6083 struct rtw89_dig_info *dig = &bb->dig;
6100 struct rtw89_bb_ctx *bb)
6102 rtw89_debug(rtwdev, RTW89_DBG_DIG, "BB-%d dig_init\n", bb->phy_idx);
6104 rtw89_phy_dig_update_gain_para(rtwdev, bb);
6105 rtw89_phy_dig_reset(rtwdev, bb);
6110 struct rtw89_bb_ctx *bb;
6112 rtw89_for_each_capab_bb(rtwdev, bb)
6113 __rtw89_phy_dig_init(rtwdev, bb);
6117 struct rtw89_bb_ctx *bb, u8 rssi)
6119 struct rtw89_dig_info *dig = &bb->dig;
6139 struct rtw89_bb_ctx *bb, u8 rssi)
6141 struct rtw89_dig_info *dig = &bb->dig;
6155 struct rtw89_bb_ctx *bb, u8 rssi,
6158 struct rtw89_dig_info *dig = &bb->dig;
6175 struct rtw89_bb_ctx *bb, u8 rssi,
6178 set->lna_idx = rtw89_phy_dig_lna_idx_by_rssi(rtwdev, bb, rssi);
6179 set->tia_idx = rtw89_phy_dig_tia_idx_by_rssi(rtwdev, bb, rssi);
6180 set->rxb_idx = rtw89_phy_dig_rxb_idx_by_rssi(rtwdev, bb, rssi, set);
6190 struct rtw89_bb_ctx *bb)
6192 struct rtw89_dig_info *dig = &bb->dig;
6193 struct rtw89_env_monitor_info *env = &bb->env_monitor;
6231 struct rtw89_bb_ctx *bb, u8 lna_idx)
6236 dig_regs->p0_lna_init.mask, lna_idx, bb->phy_idx);
6238 dig_regs->p1_lna_init.mask, lna_idx, bb->phy_idx);
6242 struct rtw89_bb_ctx *bb, u8 tia_idx)
6247 dig_regs->p0_tia_init.mask, tia_idx, bb->phy_idx);
6249 dig_regs->p1_tia_init.mask, tia_idx, bb->phy_idx);
6253 struct rtw89_bb_ctx *bb, u8 rxb_idx)
6258 dig_regs->p0_rxb_init.mask, rxb_idx, bb->phy_idx);
6260 dig_regs->p1_rxb_init.mask, rxb_idx, bb->phy_idx);
6264 struct rtw89_bb_ctx *bb,
6270 rtw89_phy_dig_set_lna_idx(rtwdev, bb, set.lna_idx);
6271 rtw89_phy_dig_set_tia_idx(rtwdev, bb, set.tia_idx);
6272 rtw89_phy_dig_set_rxb_idx(rtwdev, bb, set.rxb_idx);
6279 struct rtw89_bb_ctx *bb,
6285 dig_regs->p0_p20_pagcugc_en.mask, enable, bb->phy_idx);
6287 dig_regs->p0_s20_pagcugc_en.mask, enable, bb->phy_idx);
6289 dig_regs->p1_p20_pagcugc_en.mask, enable, bb->phy_idx);
6291 dig_regs->p1_s20_pagcugc_en.mask, enable, bb->phy_idx);
6297 struct rtw89_bb_ctx *bb)
6299 struct rtw89_dig_info *dig = &bb->dig;
6305 rtw89_phy_dig_set_igi_cr(rtwdev, bb, dig->force_gaincode);
6309 rtw89_phy_dig_gaincode_by_rssi(rtwdev, bb, dig->igi_fa_rssi,
6311 rtw89_phy_dig_set_igi_cr(rtwdev, bb, dig->cur_gaincode);
6316 struct rtw89_bb_ctx *bb,
6319 const struct rtw89_chan *chan = rtw89_mgnt_chan_get(rtwdev, bb->phy_idx);
6322 struct rtw89_dig_info *dig = &bb->dig;
6365 dig_regs->pd_lower_bound_mask, pd_val, bb->phy_idx);
6367 dig_regs->pd_spatial_reuse_en, enable, bb->phy_idx);
6380 dig_regs->bmode_cca_rssi_limit_en, enable, bb->phy_idx);
6382 dig_regs->bmode_rssi_nocca_low_th_mask, pd_val, bb->phy_idx);
6385 void rtw89_phy_dig_reset(struct rtw89_dev *rtwdev, struct rtw89_bb_ctx *bb)
6387 struct rtw89_dig_info *dig = &bb->dig;
6390 rtw89_phy_dig_para_reset(rtwdev, bb);
6391 rtw89_phy_dig_set_igi_cr(rtwdev, bb, dig->force_gaincode);
6392 rtw89_phy_dig_dyn_pd_th(rtwdev, bb, rssi_nolink, false);
6393 rtw89_phy_dig_sdagc_follow_pagc_config(rtwdev, bb, false);
6394 rtw89_phy_dig_update_para(rtwdev, bb);
6399 static void __rtw89_phy_dig(struct rtw89_dev *rtwdev, struct rtw89_bb_ctx *bb)
6401 struct rtw89_dig_info *dig = &bb->dig;
6410 rtw89_debug(rtwdev, RTW89_DBG_DIG, "BB-%d dig track\n", bb->phy_idx);
6412 rtw89_phy_dig_update_rssi_info(rtwdev, bb);
6416 rtw89_phy_dig_update_para(rtwdev, bb);
6420 rtw89_phy_dig_update_para(rtwdev, bb);
6425 rtw89_phy_dig_igi_offset_by_env(rtwdev, bb);
6444 rtw89_phy_dig_config_igi(rtwdev, bb);
6446 rtw89_phy_dig_dyn_pd_th(rtwdev, bb, dig->igi_fa_rssi, dig->dyn_pd_th_en);
6449 rtw89_phy_dig_sdagc_follow_pagc_config(rtwdev, bb, true);
6451 rtw89_phy_dig_sdagc_follow_pagc_config(rtwdev, bb, false);
6456 struct rtw89_bb_ctx *bb;
6458 rtw89_for_each_active_bb(rtwdev, bb)
6459 __rtw89_phy_dig(rtwdev, bb);
6675 struct rtw89_bb_ctx *bb)
6678 "BB-%d env_monitor init\n", bb->phy_idx);
6680 rtw89_phy_ccx_top_setting_init(rtwdev, bb);
6681 rtw89_phy_ifs_clm_setting_init(rtwdev, bb);
6686 struct rtw89_bb_ctx *bb;
6688 rtw89_for_each_capab_bb(rtwdev, bb)
6689 __rtw89_phy_env_monitor_init(rtwdev, bb);
6693 struct rtw89_bb_ctx *bb)
6696 struct rtw89_edcca_bak *edcca_bak = &bb->edcca_bak;
6698 rtw89_debug(rtwdev, RTW89_DBG_EDCCA, "BB-%d edcca init\n", bb->phy_idx);
6715 edcca_regs->tx_collision_t2r_st_mask, 0x29, bb->phy_idx);
6720 struct rtw89_bb_ctx *bb;
6722 rtw89_for_each_capab_bb(rtwdev, bb)
6723 __rtw89_phy_edcca_init(rtwdev, bb);
7087 struct rtw89_bb_ctx *bb, bool scan)
7090 struct rtw89_edcca_bak *edcca_bak = &bb->edcca_bak;
7095 edcca_regs->edcca_mask, bb->phy_idx);
7098 edcca_regs->edcca_p_mask, bb->phy_idx);
7101 edcca_regs->ppdu_mask, bb->phy_idx);
7104 edcca_regs->edcca_mask, EDCCA_MAX, bb->phy_idx);
7106 edcca_regs->edcca_p_mask, EDCCA_MAX, bb->phy_idx);
7108 edcca_regs->ppdu_mask, EDCCA_MAX, bb->phy_idx);
7112 edcca_bak->a, bb->phy_idx);
7115 edcca_bak->p, bb->phy_idx);
7118 edcca_bak->ppdu, bb->phy_idx);
7122 static void rtw89_phy_edcca_log(struct rtw89_dev *rtwdev, struct rtw89_bb_ctx *bb)
7135 if (bb->phy_idx == RTW89_PHY_1)
7226 struct rtw89_bb_ctx *bb)
7228 struct rtw89_phy_ch_info *ch_info = &bb->ch_info;
7244 void rtw89_phy_edcca_thre_calc(struct rtw89_dev *rtwdev, struct rtw89_bb_ctx *bb)
7247 struct rtw89_edcca_bak *edcca_bak = &bb->edcca_bak;
7250 th = rtw89_phy_edcca_get_thre_by_rssi(rtwdev, bb);
7260 edcca_regs->edcca_mask, th, bb->phy_idx);
7262 edcca_regs->edcca_p_mask, th, bb->phy_idx);
7264 edcca_regs->ppdu_mask, th, bb->phy_idx);
7268 void __rtw89_phy_edcca_track(struct rtw89_dev *rtwdev, struct rtw89_bb_ctx *bb)
7270 rtw89_debug(rtwdev, RTW89_DBG_EDCCA, "BB-%d edcca track\n", bb->phy_idx);
7272 rtw89_phy_edcca_thre_calc(rtwdev, bb);
7273 rtw89_phy_edcca_log(rtwdev, bb);
7279 struct rtw89_bb_ctx *bb;
7284 rtw89_for_each_active_bb(rtwdev, bb)
7285 __rtw89_phy_edcca_track(rtwdev, bb);