Lines Matching refs:ra
422 mt7915_mcu_tx_rate_cal(struct mt76_phy *mphy, struct mt7915_mcu_ra_info *ra, in mt7915_mcu_tx_rate_cal() argument
426 u16 ru_idx = le16_to_cpu(ra->ru_idx); in mt7915_mcu_tx_rate_cal()
447 if (ra->gi) in mt7915_mcu_tx_rate_cal()
453 if (ra->gi) in mt7915_mcu_tx_rate_cal()
460 rate->he_gi = ra->gi; in mt7915_mcu_tx_rate_cal()
510 struct mt7915_mcu_ra_info *ra = (struct mt7915_mcu_ra_info *)skb->data; in mt7915_mcu_tx_rate_report() local
512 u16 probe = le16_to_cpu(ra->prob_up_rate); in mt7915_mcu_tx_rate_report()
513 u16 attempts = le16_to_cpu(ra->attempts); in mt7915_mcu_tx_rate_report()
514 u16 curr = le16_to_cpu(ra->curr_rate); in mt7915_mcu_tx_rate_report()
515 u16 wcidx = le16_to_cpu(ra->wlan_idx); in mt7915_mcu_tx_rate_report()
535 mt7915_mcu_tx_rate_cal(mphy, ra, &rate, curr); in mt7915_mcu_tx_rate_report()
539 mt7915_mcu_tx_rate_cal(mphy, ra, &prob_rate, probe); in mt7915_mcu_tx_rate_report()
543 u16 success = le16_to_cpu(ra->success); in mt7915_mcu_tx_rate_report()
902 struct bss_info_ra *ra; in mt7915_mcu_bss_ra_tlv() local
906 tlv = mt7915_mcu_add_tlv(skb, BSS_INFO_RA, sizeof(*ra)); in mt7915_mcu_bss_ra_tlv()
908 ra = (struct bss_info_ra *)tlv; in mt7915_mcu_bss_ra_tlv()
909 ra->op_mode = vif->type == NL80211_IFTYPE_AP; in mt7915_mcu_bss_ra_tlv()
910 ra->adhoc_en = vif->type == NL80211_IFTYPE_ADHOC; in mt7915_mcu_bss_ra_tlv()
911 ra->short_preamble = true; in mt7915_mcu_bss_ra_tlv()
912 ra->tx_streams = max_nss; in mt7915_mcu_bss_ra_tlv()
913 ra->rx_streams = max_nss; in mt7915_mcu_bss_ra_tlv()
914 ra->algo = 4; in mt7915_mcu_bss_ra_tlv()
915 ra->train_up_rule = 2; in mt7915_mcu_bss_ra_tlv()
916 ra->train_up_high_thres = 110; in mt7915_mcu_bss_ra_tlv()
917 ra->train_up_rule_rssi = -70; in mt7915_mcu_bss_ra_tlv()
918 ra->low_traffic_thres = 2; in mt7915_mcu_bss_ra_tlv()
919 ra->phy_cap = cpu_to_le32(0xfdf); in mt7915_mcu_bss_ra_tlv()
920 ra->interval = cpu_to_le32(500); in mt7915_mcu_bss_ra_tlv()
921 ra->fast_interval = cpu_to_le32(100); in mt7915_mcu_bss_ra_tlv()
2044 struct sta_rec_ra *ra; in mt7915_mcu_sta_rate_ctrl_tlv() local
2052 tlv = mt7915_mcu_add_tlv(skb, STA_REC_RA, sizeof(*ra)); in mt7915_mcu_sta_rate_ctrl_tlv()
2054 ra = (struct sta_rec_ra *)tlv; in mt7915_mcu_sta_rate_ctrl_tlv()
2055 ra->valid = true; in mt7915_mcu_sta_rate_ctrl_tlv()
2056 ra->auto_rate = true; in mt7915_mcu_sta_rate_ctrl_tlv()
2057 ra->phy_mode = mt7915_get_phy_mode(dev, vif, band, sta); in mt7915_mcu_sta_rate_ctrl_tlv()
2058 ra->channel = chandef->chan->hw_value; in mt7915_mcu_sta_rate_ctrl_tlv()
2059 ra->bw = sta->bandwidth; in mt7915_mcu_sta_rate_ctrl_tlv()
2060 ra->rate_len = n_rates; in mt7915_mcu_sta_rate_ctrl_tlv()
2061 ra->phy.bw = sta->bandwidth; in mt7915_mcu_sta_rate_ctrl_tlv()
2065 ra->supp_mode = MODE_CCK; in mt7915_mcu_sta_rate_ctrl_tlv()
2066 ra->supp_cck_rate = supp_rate & GENMASK(3, 0); in mt7915_mcu_sta_rate_ctrl_tlv()
2067 ra->phy.type = MT_PHY_TYPE_CCK; in mt7915_mcu_sta_rate_ctrl_tlv()
2070 ra->supp_mode |= MODE_OFDM; in mt7915_mcu_sta_rate_ctrl_tlv()
2071 ra->supp_ofdm_rate = supp_rate >> 4; in mt7915_mcu_sta_rate_ctrl_tlv()
2072 ra->phy.type = MT_PHY_TYPE_OFDM; in mt7915_mcu_sta_rate_ctrl_tlv()
2075 ra->supp_mode = MODE_OFDM; in mt7915_mcu_sta_rate_ctrl_tlv()
2076 ra->supp_ofdm_rate = supp_rate; in mt7915_mcu_sta_rate_ctrl_tlv()
2077 ra->phy.type = MT_PHY_TYPE_OFDM; in mt7915_mcu_sta_rate_ctrl_tlv()
2083 ra->ht_mcs[i] = sta->ht_cap.mcs.rx_mask[i]; in mt7915_mcu_sta_rate_ctrl_tlv()
2085 ra->supp_ht_mcs = *(__le32 *)ra->ht_mcs; in mt7915_mcu_sta_rate_ctrl_tlv()
2086 ra->supp_mode |= MODE_HT; in mt7915_mcu_sta_rate_ctrl_tlv()
2087 mcs = hweight32(le32_to_cpu(ra->supp_ht_mcs)) - 1; in mt7915_mcu_sta_rate_ctrl_tlv()
2088 ra->af = sta->ht_cap.ampdu_factor; in mt7915_mcu_sta_rate_ctrl_tlv()
2089 ra->ht_gf = !!(sta->ht_cap.cap & IEEE80211_HT_CAP_GRN_FLD); in mt7915_mcu_sta_rate_ctrl_tlv()
2111 ra->af = max_t(u8, ra->af, af); in mt7915_mcu_sta_rate_ctrl_tlv()
2125 ra->supp_mode |= MODE_VHT; in mt7915_mcu_sta_rate_ctrl_tlv()
2141 ra->supp_vht_mcs[i] = cpu_to_le16(vht_mcs); in mt7915_mcu_sta_rate_ctrl_tlv()
2148 if (i > 1 && (ra->bw == CMD_CBW_160MHZ || in mt7915_mcu_sta_rate_ctrl_tlv()
2149 ra->bw == CMD_CBW_8080MHZ)) in mt7915_mcu_sta_rate_ctrl_tlv()
2155 ra->supp_mode |= MODE_HE; in mt7915_mcu_sta_rate_ctrl_tlv()
2159 ra->sta_status = cpu_to_le32(cap); in mt7915_mcu_sta_rate_ctrl_tlv()
2161 switch (BIT(fls(ra->supp_mode) - 1)) { in mt7915_mcu_sta_rate_ctrl_tlv()
2163 ra->phy.type = MT_PHY_TYPE_VHT; in mt7915_mcu_sta_rate_ctrl_tlv()
2164 ra->phy.mcs = mcs; in mt7915_mcu_sta_rate_ctrl_tlv()
2165 ra->phy.nss = nss; in mt7915_mcu_sta_rate_ctrl_tlv()
2166 ra->phy.stbc = !!(sta->vht_cap.cap & IEEE80211_VHT_CAP_TXSTBC); in mt7915_mcu_sta_rate_ctrl_tlv()
2167 ra->phy.ldpc = !!(sta->vht_cap.cap & IEEE80211_VHT_CAP_RXLDPC); in mt7915_mcu_sta_rate_ctrl_tlv()
2168 ra->phy.sgi = in mt7915_mcu_sta_rate_ctrl_tlv()
2172 ra->phy.type = MT_PHY_TYPE_HT; in mt7915_mcu_sta_rate_ctrl_tlv()
2173 ra->phy.mcs = mcs; in mt7915_mcu_sta_rate_ctrl_tlv()
2174 ra->phy.ldpc = sta->ht_cap.cap & IEEE80211_HT_CAP_LDPC_CODING; in mt7915_mcu_sta_rate_ctrl_tlv()
2175 ra->phy.stbc = !!(sta->ht_cap.cap & IEEE80211_HT_CAP_TX_STBC); in mt7915_mcu_sta_rate_ctrl_tlv()
2176 ra->phy.sgi = !!(sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_20); in mt7915_mcu_sta_rate_ctrl_tlv()
2293 struct sta_rec_ra_fixed *ra; in mt7915_mcu_set_fixed_rate() local
2296 int len = sizeof(struct sta_req_hdr) + sizeof(*ra); in mt7915_mcu_set_fixed_rate()
2302 tlv = mt7915_mcu_add_tlv(skb, STA_REC_RA_UPDATE, sizeof(*ra)); in mt7915_mcu_set_fixed_rate()
2303 ra = (struct sta_rec_ra_fixed *)tlv; in mt7915_mcu_set_fixed_rate()
2306 ra->field = cpu_to_le32(RATE_PARAM_AUTO); in mt7915_mcu_set_fixed_rate()
2309 ra->field = cpu_to_le32(RATE_PARAM_FIXED); in mt7915_mcu_set_fixed_rate()
2312 ra->phy.type = FIELD_GET(RATE_CFG_PHY_TYPE, rate); in mt7915_mcu_set_fixed_rate()
2313 ra->phy.bw = FIELD_GET(RATE_CFG_BW, rate); in mt7915_mcu_set_fixed_rate()
2314 ra->phy.nss = FIELD_GET(RATE_CFG_NSS, rate); in mt7915_mcu_set_fixed_rate()
2315 ra->phy.mcs = FIELD_GET(RATE_CFG_MCS, rate); in mt7915_mcu_set_fixed_rate()
2316 ra->phy.stbc = FIELD_GET(RATE_CFG_STBC, rate); in mt7915_mcu_set_fixed_rate()
2318 if (ra->phy.bw) in mt7915_mcu_set_fixed_rate()
2319 ra->phy.ldpc = 7; in mt7915_mcu_set_fixed_rate()
2321 ra->phy.ldpc = FIELD_GET(RATE_CFG_LDPC, rate) * 7; in mt7915_mcu_set_fixed_rate()
2324 if (ra->phy.type > MT_PHY_TYPE_VHT) in mt7915_mcu_set_fixed_rate()
2325 ra->phy.sgi = ra->phy.mcs * 85; in mt7915_mcu_set_fixed_rate()
2327 ra->phy.sgi = ra->phy.mcs * 15; in mt7915_mcu_set_fixed_rate()