Lines Matching refs:txrate

3361 	struct rate_info *txrate = &arsta->txrate;  in ath10k_accumulate_per_peer_tx_stats()  local
3370 flags = txrate->flags; in ath10k_accumulate_per_peer_tx_stats()
3373 bw = txrate->bw; in ath10k_accumulate_per_peer_tx_stats()
3374 nss = txrate->nss; in ath10k_accumulate_per_peer_tx_stats()
3381 if (txrate->flags & RATE_INFO_FLAGS_VHT_MCS) { in ath10k_accumulate_per_peer_tx_stats()
3388 } else if (txrate->flags & RATE_INFO_FLAGS_MCS) { in ath10k_accumulate_per_peer_tx_stats()
3409 if (txrate->flags & RATE_INFO_FLAGS_MCS) { in ath10k_accumulate_per_peer_tx_stats()
3465 if (txrate->flags >= RATE_INFO_FLAGS_MCS) { in ath10k_accumulate_per_peer_tx_stats()
3487 struct rate_info txrate; in ath10k_update_per_peer_tx_stats() local
3491 txrate.flags = ATH10K_HW_PREAMBLE(peer_stats->ratecode); in ath10k_update_per_peer_tx_stats()
3492 txrate.bw = ATH10K_HW_BW(peer_stats->flags); in ath10k_update_per_peer_tx_stats()
3493 txrate.nss = ATH10K_HW_NSS(peer_stats->ratecode); in ath10k_update_per_peer_tx_stats()
3494 txrate.mcs = ATH10K_HW_MCS_RATE(peer_stats->ratecode); in ath10k_update_per_peer_tx_stats()
3504 if (txrate.flags == WMI_RATE_PREAMBLE_VHT && txrate.mcs > 9) { in ath10k_update_per_peer_tx_stats()
3505 ath10k_warn(ar, "Invalid VHT mcs %hhd peer stats", txrate.mcs); in ath10k_update_per_peer_tx_stats()
3509 if (txrate.flags == WMI_RATE_PREAMBLE_HT && in ath10k_update_per_peer_tx_stats()
3510 (txrate.mcs > 7 || txrate.nss < 1)) { in ath10k_update_per_peer_tx_stats()
3512 txrate.mcs, txrate.nss); in ath10k_update_per_peer_tx_stats()
3516 memset(&arsta->txrate, 0, sizeof(arsta->txrate)); in ath10k_update_per_peer_tx_stats()
3518 if (txrate.flags == WMI_RATE_PREAMBLE_CCK || in ath10k_update_per_peer_tx_stats()
3519 txrate.flags == WMI_RATE_PREAMBLE_OFDM) { in ath10k_update_per_peer_tx_stats()
3522 if (rate == 6 && txrate.flags == WMI_RATE_PREAMBLE_CCK) in ath10k_update_per_peer_tx_stats()
3527 arsta->txrate.legacy = rate; in ath10k_update_per_peer_tx_stats()
3528 } else if (txrate.flags == WMI_RATE_PREAMBLE_HT) { in ath10k_update_per_peer_tx_stats()
3529 arsta->txrate.flags = RATE_INFO_FLAGS_MCS; in ath10k_update_per_peer_tx_stats()
3530 arsta->txrate.mcs = txrate.mcs + 8 * (txrate.nss - 1); in ath10k_update_per_peer_tx_stats()
3532 arsta->txrate.flags = RATE_INFO_FLAGS_VHT_MCS; in ath10k_update_per_peer_tx_stats()
3533 arsta->txrate.mcs = txrate.mcs; in ath10k_update_per_peer_tx_stats()
3536 switch (txrate.flags) { in ath10k_update_per_peer_tx_stats()
3552 txrate.mcs + ((txrate.nss - 1) * 8); in ath10k_update_per_peer_tx_stats()
3560 txrate.mcs, txrate.nss); in ath10k_update_per_peer_tx_stats()
3568 arsta->txrate.nss = txrate.nss; in ath10k_update_per_peer_tx_stats()
3569 arsta->txrate.bw = ath10k_bw_to_mac80211_bw(txrate.bw); in ath10k_update_per_peer_tx_stats()
3570 arsta->last_tx_bitrate = cfg80211_calculate_bitrate(&arsta->txrate); in ath10k_update_per_peer_tx_stats()
3572 arsta->txrate.flags |= RATE_INFO_FLAGS_SHORT_GI; in ath10k_update_per_peer_tx_stats()
3574 switch (arsta->txrate.bw) { in ath10k_update_per_peer_tx_stats()