Surabhi Vishnoi <svishnoi@xxxxxxxxxxxxxx> writes: > The firmware sends peer stats to the host driver if the firmware > advertises WMI_SERVICE_PEER_STATS service and the host driver > indicates the WMI_RSRC_CFG_FLAG_TX_PEER_STATS capability in the > host capab flag in wmi init cmd. > > When peer stats are enabled, firmware sends one HTT event > HTT_TLV_T2H_MSG_TYPE_PEER_STATS for every four PPDUs transmitted. > HTT msg payload has tag followed by length followed by > success pkts/bytes, failed pkts/bytes, retry pkts/bytes and rate > info per ppdu. > > Parse peer stats sent by the firmware in tlv format and update the > tx rate information and tx_stats debugfs entry per STA. > > To get the tx_stats: > echo 1 > /sys/kernel/debug/ieee80211/phyX/ath10k/enable_extd_tx_stats > cat /sys/kernel/debug/ieee80211/phyX/net:wlanX/stations/xx:xx:xx:xx:xx:xx/tx_stats > > Tested HW: WCN3990 > Tested FW: WLAN.HL.3.1-00784-QCAHLSWMTPLZ-1 > > Signed-off-by: Surabhi Vishnoi <svishnoi@xxxxxxxxxxxxxx> [...] > @@ -3438,7 +3566,7 @@ bool ath10k_htt_t2h_msg_handler(struct ath10k *ar, struct sk_buff *skb) > ath10k_htt_rx_tx_mode_switch_ind(ar, skb); > break; > case HTT_T2H_MSG_TYPE_PEER_STATS: > - ath10k_htt_fetch_peer_stats(ar, skb); > + htt->rx_ops->htt_fetch_peer_stats(ar, skb); > break; I think this belongs to patch 1. > +#define ATH10K_HW_GI_MASK GENMASK(5, 5) BIT(5) > +#define ATH10K_HW_SKIPPED_RATE_CTRL_MASK GENMASK(6, 6) BIT(6) > +#define ATH10K_HW_WCN3990_GI_MASK GENMASK(6, 6) BIT(6) > +#define ATH10K_HW_WCN3990_SKIPPED_RATE_CTRL_MASK GENMASK(7, 7) BIT(7) -- Kalle Valo