• Surabhi Vishnoi's avatar
    ath10k: Fill rx duration for each peer in fw_stats for WCN3990 · f40a307e
    Surabhi Vishnoi authored
    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: default avatarSurabhi Vishnoi <svishnoi@codeaurora.org>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    f40a307e
wmi.h 211 KB