|
@@ -987,6 +987,25 @@ void ieee80211_tx_status_ext(struct ieee80211_hw *hw,
|
|
|
}
|
|
|
EXPORT_SYMBOL(ieee80211_tx_status_ext);
|
|
|
|
|
|
+void ieee80211_tx_rate_update(struct ieee80211_hw *hw,
|
|
|
+ struct ieee80211_sta *pubsta,
|
|
|
+ struct ieee80211_tx_info *info)
|
|
|
+{
|
|
|
+ struct ieee80211_local *local = hw_to_local(hw);
|
|
|
+ struct ieee80211_supported_band *sband = hw->wiphy->bands[info->band];
|
|
|
+ struct sta_info *sta = container_of(pubsta, struct sta_info, sta);
|
|
|
+ struct ieee80211_tx_status status = {
|
|
|
+ .info = info,
|
|
|
+ .sta = pubsta,
|
|
|
+ };
|
|
|
+
|
|
|
+ rate_control_tx_status(local, sband, &status);
|
|
|
+
|
|
|
+ if (ieee80211_hw_check(&local->hw, HAS_RATE_CONTROL))
|
|
|
+ sta->tx_stats.last_rate = info->status.rates[0];
|
|
|
+}
|
|
|
+EXPORT_SYMBOL(ieee80211_tx_rate_update);
|
|
|
+
|
|
|
void ieee80211_report_low_ack(struct ieee80211_sta *pubsta, u32 num_packets)
|
|
|
{
|
|
|
struct sta_info *sta = container_of(pubsta, struct sta_info, sta);
|