ath10k: report tx airtime provided by fw

If supported, update transmit airtime in mac80211 with the airtime
values reported by the firmware. TX airtime of the PPDU is reported
via HTT data TX completion indication message.

A new service flag 'WMI_SERVICE_REPORT_AIRTIME' is added to advertise
the firmware support. For firmwares which do not support this feature,
TX airtime is calculated in the driver using TX bitrate.

Hardwares tested : QCA9984
Firmwares tested : 10.4-3.6.1-00841

Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
Manikanta Pubbisetty
2019-02-11 18:47:59 +02:00
committed by Kalle Valo
parent 4920ce3bf7
commit bb31b7cb10
6 changed files with 86 additions and 5 deletions

View File

@@ -3985,6 +3985,9 @@ static u16 ath10k_mac_update_airtime(struct ath10k *ar,
if (!txq || !txq->sta)
return airtime;
if (test_bit(WMI_SERVICE_REPORT_AIRTIME, ar->wmi.svc_map))
return airtime;
spin_lock_bh(&ar->data_lock);
arsta = (struct ath10k_sta *)txq->sta->drv_priv;
@@ -8694,7 +8697,8 @@ int ath10k_mac_register(struct ath10k *ar)
wiphy_ext_feature_set(ar->hw->wiphy,
NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT);
if (ath10k_peer_stats_enabled(ar))
if (ath10k_peer_stats_enabled(ar) ||
test_bit(WMI_SERVICE_REPORT_AIRTIME, ar->wmi.svc_map))
wiphy_ext_feature_set(ar->hw->wiphy,
NL80211_EXT_FEATURE_AIRTIME_FAIRNESS);