Lines Matching refs:txrate
3666 struct rate_info *txrate = &arsta->txrate; in ath10k_accumulate_per_peer_tx_stats() local
3675 flags = txrate->flags; in ath10k_accumulate_per_peer_tx_stats()
3678 bw = txrate->bw; in ath10k_accumulate_per_peer_tx_stats()
3679 nss = txrate->nss; in ath10k_accumulate_per_peer_tx_stats()
3686 if (txrate->flags & RATE_INFO_FLAGS_VHT_MCS) { in ath10k_accumulate_per_peer_tx_stats()
3693 } else if (txrate->flags & RATE_INFO_FLAGS_MCS) { in ath10k_accumulate_per_peer_tx_stats()
3714 if (txrate->flags & RATE_INFO_FLAGS_MCS) { in ath10k_accumulate_per_peer_tx_stats()
3770 if (txrate->flags >= RATE_INFO_FLAGS_MCS) { in ath10k_accumulate_per_peer_tx_stats()
3792 struct rate_info txrate; in ath10k_update_per_peer_tx_stats() local
3796 txrate.flags = ATH10K_HW_PREAMBLE(peer_stats->ratecode); in ath10k_update_per_peer_tx_stats()
3797 txrate.bw = ATH10K_HW_BW(peer_stats->flags); in ath10k_update_per_peer_tx_stats()
3798 txrate.nss = ATH10K_HW_NSS(peer_stats->ratecode); in ath10k_update_per_peer_tx_stats()
3799 txrate.mcs = ATH10K_HW_MCS_RATE(peer_stats->ratecode); in ath10k_update_per_peer_tx_stats()
3809 if (txrate.flags == WMI_RATE_PREAMBLE_VHT && txrate.mcs > 9) { in ath10k_update_per_peer_tx_stats()
3810 ath10k_warn(ar, "Invalid VHT mcs %d peer stats", txrate.mcs); in ath10k_update_per_peer_tx_stats()
3814 if (txrate.flags == WMI_RATE_PREAMBLE_HT && in ath10k_update_per_peer_tx_stats()
3815 (txrate.mcs > 7 || txrate.nss < 1)) { in ath10k_update_per_peer_tx_stats()
3817 txrate.mcs, txrate.nss); in ath10k_update_per_peer_tx_stats()
3821 memset(&arsta->txrate, 0, sizeof(arsta->txrate)); in ath10k_update_per_peer_tx_stats()
3823 if (txrate.flags == WMI_RATE_PREAMBLE_CCK || in ath10k_update_per_peer_tx_stats()
3824 txrate.flags == WMI_RATE_PREAMBLE_OFDM) { in ath10k_update_per_peer_tx_stats()
3827 if (rate == 6 && txrate.flags == WMI_RATE_PREAMBLE_CCK) in ath10k_update_per_peer_tx_stats()
3832 arsta->txrate.legacy = rate; in ath10k_update_per_peer_tx_stats()
3833 } else if (txrate.flags == WMI_RATE_PREAMBLE_HT) { in ath10k_update_per_peer_tx_stats()
3834 arsta->txrate.flags = RATE_INFO_FLAGS_MCS; in ath10k_update_per_peer_tx_stats()
3835 arsta->txrate.mcs = txrate.mcs + 8 * (txrate.nss - 1); in ath10k_update_per_peer_tx_stats()
3837 arsta->txrate.flags = RATE_INFO_FLAGS_VHT_MCS; in ath10k_update_per_peer_tx_stats()
3838 arsta->txrate.mcs = txrate.mcs; in ath10k_update_per_peer_tx_stats()
3841 switch (txrate.flags) { in ath10k_update_per_peer_tx_stats()
3857 txrate.mcs + ((txrate.nss - 1) * 8); in ath10k_update_per_peer_tx_stats()
3865 txrate.mcs, txrate.nss); in ath10k_update_per_peer_tx_stats()
3873 arsta->txrate.nss = txrate.nss; in ath10k_update_per_peer_tx_stats()
3874 arsta->txrate.bw = ath10k_bw_to_mac80211_bw(txrate.bw); in ath10k_update_per_peer_tx_stats()
3875 arsta->last_tx_bitrate = cfg80211_calculate_bitrate(&arsta->txrate); in ath10k_update_per_peer_tx_stats()
3877 arsta->txrate.flags |= RATE_INFO_FLAGS_SHORT_GI; in ath10k_update_per_peer_tx_stats()
3879 switch (arsta->txrate.bw) { in ath10k_update_per_peer_tx_stats()