Surabhi Vishnoi <svishnoi@xxxxxxxxxxxxxx> wrote: > Currently, rx_duration for each peer is not getting populated in > fw_stats debugfs entry for WCN3990. > > WCN3990 firmware sends rx duration for each peer as part of > peer_extd_stats in WMI_UPDATE_STATS_EVENT. To enable peer_extd_stats, > firmware expects host to send fw_stats_req_mask with flag > WMI_TLV_PEER_STATS_EXTD set in WMI_REQUEST_STATS_CMD. > > Send fw_stats_req_mask with flag WMI_TLV_PEER_STATS_EXTD set in > WMI_REQUEST_STATS_CMD and parse the peer_extd_stats in > WMI_UPDATE_STATS_EVENT to populate the rx_duration of each peer > in fw_stats debugfs entry. > > Currently the driver handles 32-bit rx_duration, but the rx_duration > for WCN3990 can be upto 63 bit. The firmware sends rx_duration split > into two 32-bit fields, with the upper 32-bits being valid only if its > MSB is set. This change handles the 63-bit rx_duration obtained from > WCN3990 and maintain the backward compatibility. > > To get the rx_duration of each connected peer : > cat /sys/kernel/debug/ieee80211/phyX/ath10k/fw_stats > > Tested HW: WCN3990 > Tested FW: WLAN.HL.3.1-00784-QCAHLSWMTPLZ-1 > > Signed-off-by: Surabhi Vishnoi <svishnoi@xxxxxxxxxxxxxx> > Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx> Kbuild bot reported a warning: drivers/net/wireless/ath/ath10k/wmi-tlv.c: In function 'ath10k_wmi_tlv_op_pull_fw_stats': >> drivers/net/wireless/ath/ath10k/wmi-tlv.c:1423:42: warning: left shift count >= width of type [-Wshift-count-overflow] dst->rx_duration |= rx_duration_high << ^~ -- https://patchwork.kernel.org/patch/10819589/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches