Lines Matching refs:sta

58 mt7915_mcu_set_sta_he_mcs(struct ieee80211_sta *sta, __le16 *he_mcs,
61 struct mt7915_sta *msta = (struct mt7915_sta *)sta->drv_priv;
65 int nss, max_nss = sta->deflink.rx_nss > 3 ? 4 : sta->deflink.rx_nss;
105 sta->deflink.bandwidth == IEEE80211_STA_RX_BW_160)
113 mt7915_mcu_set_sta_vht_mcs(struct ieee80211_sta *sta, __le16 *vht_mcs,
116 struct mt7915_sta *msta = (struct mt7915_sta *)sta->drv_priv;
118 u16 mcs_map = le16_to_cpu(sta->deflink.vht_cap.vht_mcs.rx_mcs_map);
119 int nss, max_nss = sta->deflink.rx_nss > 3 ? 4 : sta->deflink.rx_nss;
141 sta->deflink.bandwidth == IEEE80211_STA_RX_BW_160)
147 mt7915_mcu_set_sta_ht_mcs(struct ieee80211_sta *sta, u8 *ht_mcs,
150 int nss, max_nss = sta->deflink.rx_nss > 3 ? 4 : sta->deflink.rx_nss;
153 ht_mcs[nss] = sta->deflink.ht_cap.mcs.rx_mask[nss] & mask[nss];
663 mvif->sta.wcid.idx, enable);
691 struct mt7915_sta *msta = (struct mt7915_sta *)params->sta->drv_priv;
706 struct mt7915_sta *msta = (struct mt7915_sta *)params->sta->drv_priv;
715 mt7915_mcu_sta_he_tlv(struct sk_buff *skb, struct ieee80211_sta *sta,
719 struct ieee80211_he_cap_elem *elem = &sta->deflink.he_cap.he_cap_elem;
725 if (!sta->deflink.he_cap.has_he)
811 mcs_map = sta->deflink.he_cap.he_mcs_nss_supp;
812 switch (sta->deflink.bandwidth) {
816 mt7915_mcu_set_sta_he_mcs(sta,
820 mt7915_mcu_set_sta_he_mcs(sta,
825 mt7915_mcu_set_sta_he_mcs(sta,
859 struct ieee80211_sta *sta, struct ieee80211_vif *vif)
862 struct ieee80211_he_cap_elem *elem = &sta->deflink.he_cap.he_cap_elem;
881 if (sta->deflink.vht_cap.vht_supported)
883 !!(sta->deflink.vht_cap.cap & IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE);
885 if (!sta->deflink.he_cap.has_he)
916 mt7915_mcu_sta_ht_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
921 if (!sta->deflink.ht_cap.ht_supported)
927 ht->ht_cap = cpu_to_le16(sta->deflink.ht_cap.cap);
931 mt7915_mcu_sta_vht_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
936 if (!sta->deflink.vht_cap.vht_supported)
942 vht->vht_cap = cpu_to_le32(sta->deflink.vht_cap.cap);
943 vht->vht_rx_mcs_map = sta->deflink.vht_cap.vht_mcs.rx_mcs_map;
944 vht->vht_tx_mcs_map = sta->deflink.vht_cap.vht_mcs.tx_mcs_map;
949 struct ieee80211_vif *vif, struct ieee80211_sta *sta)
951 struct mt7915_sta *msta = (struct mt7915_sta *)sta->drv_priv;
959 if (!sta->deflink.agg.max_amsdu_len)
968 switch (sta->deflink.agg.max_amsdu_len) {
988 struct ieee80211_vif *vif, struct ieee80211_sta *sta)
996 msta = sta ? (struct mt7915_sta *)sta->drv_priv : &mvif->sta;
997 wcid = sta ? &msta->wcid : NULL;
1006 mt76_connac_mcu_wtbl_generic_tlv(&dev->mt76, skb, vif, sta, tlv,
1009 if (sta)
1010 mt76_connac_mcu_wtbl_ht_tlv(&dev->mt76, skb, sta, tlv,
1019 struct ieee80211_sta *sta, bool bfee)
1031 if (sta->deflink.he_cap.has_he) {
1032 struct ieee80211_he_cap_elem *pe = &sta->deflink.he_cap.he_cap_elem;
1042 if (sta->deflink.vht_cap.vht_supported) {
1043 u32 cap = sta->deflink.vht_cap.cap;
1066 mt7915_mcu_sta_bfer_ht(struct ieee80211_sta *sta, struct mt7915_phy *phy,
1069 struct ieee80211_mcs_info *mcs = &sta->deflink.ht_cap.mcs;
1091 mt7915_mcu_sta_bfer_vht(struct ieee80211_sta *sta, struct mt7915_phy *phy,
1094 struct ieee80211_sta_vht_cap *pc = &sta->deflink.vht_cap;
1115 if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_160)
1122 if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_160)
1128 mt7915_mcu_sta_bfer_he(struct ieee80211_sta *sta, struct ieee80211_vif *vif,
1131 struct ieee80211_sta_he_cap *pc = &sta->deflink.he_cap;
1156 if (sta->deflink.bandwidth != IEEE80211_STA_RX_BW_160)
1189 struct ieee80211_vif *vif, struct ieee80211_sta *sta)
1204 if (!(sta->deflink.ht_cap.ht_supported || sta->deflink.he_cap.has_he))
1207 ebf = mt7915_is_ebf_supported(phy, vif, sta, false);
1218 if (sta->deflink.he_cap.has_he && ebf)
1219 mt7915_mcu_sta_bfer_he(sta, vif, phy, bf);
1220 else if (sta->deflink.vht_cap.vht_supported)
1221 mt7915_mcu_sta_bfer_vht(sta, phy, bf, ebf);
1222 else if (sta->deflink.ht_cap.ht_supported)
1223 mt7915_mcu_sta_bfer_ht(sta, phy, bf);
1228 bf->bw = sta->deflink.bandwidth;
1229 bf->ibf_dbw = sta->deflink.bandwidth;
1232 if (!ebf && sta->deflink.bandwidth <= IEEE80211_STA_RX_BW_40 && !bf->ncol)
1242 switch (sta->deflink.bandwidth) {
1258 struct ieee80211_vif *vif, struct ieee80211_sta *sta)
1267 if (!(sta->deflink.vht_cap.vht_supported || sta->deflink.he_cap.has_he))
1270 if (!mt7915_is_ebf_supported(phy, vif, sta, true))
1276 if (sta->deflink.he_cap.has_he) {
1277 struct ieee80211_he_cap_elem *pe = &sta->deflink.he_cap.he_cap_elem;
1281 } else if (sta->deflink.vht_cap.vht_supported) {
1282 struct ieee80211_sta_vht_cap *pc = &sta->deflink.vht_cap;
1309 struct ieee80211_sta *sta,
1313 struct mt7915_sta *msta = (struct mt7915_sta *)sta->drv_priv;
1338 ra->mmps_mode = mt7915_mcu_get_mmps_mode(sta->deflink.smps_mode);
1353 struct ieee80211_sta *sta)
1356 struct mt7915_sta *msta = (struct mt7915_sta *)sta->drv_priv;
1374 mt76_connac_mcu_wtbl_smps_tlv(skb, sta, sta_wtbl, wtbl_hdr);
1381 return mt7915_mcu_set_fixed_rate_ctrl(dev, vif, sta, NULL,
1387 struct ieee80211_sta *sta)
1393 return mt7915_mcu_set_fixed_rate_ctrl(dev, vif, sta, &spe_idx,
1400 struct ieee80211_sta *sta)
1413 for (i = 0; i <= sta->deflink.bandwidth; i++) { \
1427 if (sta->deflink.he_cap.has_he) {
1429 } else if (sta->deflink.vht_cap.vht_supported) {
1431 } else if (sta->deflink.ht_cap.ht_supported) {
1448 ret = mt7915_mcu_set_fixed_rate_ctrl(dev, vif, sta, &phy,
1457 struct mt7915_sta *msta = (struct mt7915_sta *)sta->drv_priv;
1465 if (sta->deflink.he_cap.has_he)
1470 ret = mt7915_mcu_set_fixed_rate_ctrl(dev, vif, sta, &phy,
1478 ret = mt7915_mcu_set_fixed_rate_ctrl(dev, vif, sta, &phy,
1484 return mt7915_mcu_set_spe_idx(dev, vif, sta);
1489 struct ieee80211_vif *vif, struct ieee80211_sta *sta)
1498 u32 supp_rate = sta->deflink.supp_rates[band];
1499 u32 cap = sta->wme ? STA_CAP_WMM : 0;
1506 ra->phy_mode = mt76_connac_get_phy_mode(mphy, vif, band, sta);
1508 ra->bw = sta->deflink.bandwidth;
1509 ra->phy.bw = sta->deflink.bandwidth;
1510 ra->mmps_mode = mt7915_mcu_get_mmps_mode(sta->deflink.smps_mode);
1530 if (sta->deflink.ht_cap.ht_supported) {
1532 ra->af = sta->deflink.ht_cap.ampdu_factor;
1533 ra->ht_gf = !!(sta->deflink.ht_cap.cap & IEEE80211_HT_CAP_GRN_FLD);
1536 if (sta->deflink.ht_cap.cap & IEEE80211_HT_CAP_SGI_20)
1538 if (sta->deflink.ht_cap.cap & IEEE80211_HT_CAP_SGI_40)
1540 if (sta->deflink.ht_cap.cap & IEEE80211_HT_CAP_TX_STBC)
1542 if (sta->deflink.ht_cap.cap & IEEE80211_HT_CAP_RX_STBC)
1545 (sta->deflink.ht_cap.cap & IEEE80211_HT_CAP_LDPC_CODING))
1548 mt7915_mcu_set_sta_ht_mcs(sta, ra->ht_mcs,
1553 if (sta->deflink.vht_cap.vht_supported) {
1558 sta->deflink.vht_cap.cap);
1562 if (sta->deflink.vht_cap.cap & IEEE80211_VHT_CAP_SHORT_GI_80)
1564 if (sta->deflink.vht_cap.cap & IEEE80211_VHT_CAP_SHORT_GI_160)
1566 if (sta->deflink.vht_cap.cap & IEEE80211_VHT_CAP_TXSTBC)
1568 if (sta->deflink.vht_cap.cap & IEEE80211_VHT_CAP_RXSTBC_1)
1571 (sta->deflink.vht_cap.cap & IEEE80211_VHT_CAP_RXLDPC))
1574 mt7915_mcu_set_sta_vht_mcs(sta, ra->supp_vht_mcs,
1578 if (sta->deflink.he_cap.has_he) {
1582 if (sta->deflink.he_6ghz_capa.capa)
1583 ra->af = le16_get_bits(sta->deflink.he_6ghz_capa.capa,
1591 struct ieee80211_sta *sta, bool changed)
1594 struct mt7915_sta *msta = (struct mt7915_sta *)sta->drv_priv;
1608 mt7915_mcu_sta_he_tlv(skb, sta, vif);
1613 mt7915_mcu_sta_rate_ctrl_tlv(skb, dev, vif, sta);
1624 return mt7915_mcu_add_rate_ctrl_fixed(dev, vif, sta);
1629 struct ieee80211_sta *sta)
1647 msta = sta ? (struct mt7915_sta *)sta->drv_priv : &mvif->sta;
1656 struct ieee80211_sta *sta, bool enable)
1663 msta = sta ? (struct mt7915_sta *)sta->drv_priv : &mvif->sta;
1671 mt76_connac_mcu_sta_basic_tlv(&dev->mt76, skb, vif, sta, enable,
1677 if (sta) {
1679 mt7915_mcu_sta_bfer_tlv(dev, skb, vif, sta);
1681 mt7915_mcu_sta_ht_tlv(skb, sta);
1683 mt7915_mcu_sta_vht_tlv(skb, sta);
1685 mt76_connac_mcu_sta_uapsd(skb, vif, sta);
1688 ret = mt7915_mcu_sta_wtbl_tlv(dev, skb, vif, sta);
1694 if (sta) {
1696 mt7915_mcu_sta_amsdu_tlv(dev, skb, vif, sta);
1698 mt7915_mcu_sta_he_tlv(skb, sta, vif);
1700 mt7915_mcu_sta_muru_tlv(dev, skb, sta, vif);
1702 mt7915_mcu_sta_bfee_tlv(dev, skb, vif, sta);
1705 ret = mt7915_mcu_add_group(dev, vif, sta);
3259 struct ieee80211_sta *sta, s8 txpower)
3261 struct mt7915_sta *msta = (struct mt7915_sta *)sta->drv_priv;
3291 if (sta->deflink.ht_cap.ht_supported) {
3297 if (sta->deflink.vht_cap.vht_supported) {
3301 if (sta->deflink.he_cap.has_he) {
3692 struct ieee80211_sta *sta, struct rate_info *rate)
3695 struct mt7915_sta *msta = (struct mt7915_sta *)sta->drv_priv;