Message ID | 20200803145444.473810-1-john@phrozen.org (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Kalle Valo |
Headers | show |
Series | [V6,1/2] ath11k: switch to using ieee80211_tx_status_ext() | expand |
John Crispin <john@phrozen.org> writes: > This allows us to pass HE rates down into the stack. > > Signed-off-by: John Crispin <john@phrozen.org> On what hardware and firmware was this tested?
On 19.08.20 19:34, Kalle Valo wrote: > John Crispin <john@phrozen.org> writes: > >> This allows us to pass HE rates down into the stack. >> >> Signed-off-by: John Crispin <john@phrozen.org> > On what hardware and firmware was this tested? > Miles can give more insight, the patch was written by him, I just rebased it, removed the checkpatch warnings and did some basic testing. John
John Crispin <john@phrozen.org> wrote: > This allows us to pass HE rates down into the stack. > > Signed-off-by: John Crispin <john@phrozen.org> > Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Dropping the per and expecting Miles will address the issues. Miles, as I did some changes to the patches in pending branch please incorporate my changes in v7: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=pending&id=52a632ec5dd0eab7e82051164d42bd35fe06af00 https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=pending&id=0ed5b5fc10d08b565183008a14267779d6da4bd4 2 patches set to Changes Requested. 11698305 [V6,1/2] ath11k: switch to using ieee80211_tx_status_ext() 11698303 [V6,2/2] ath11k: add more HE fields into radiotap header
diff --git a/drivers/net/wireless/ath/ath11k/dp_tx.c b/drivers/net/wireless/ath/ath11k/dp_tx.c index 1af76775b1a8..a1f16f589b98 100644 --- a/drivers/net/wireless/ath/ath11k/dp_tx.c +++ b/drivers/net/wireless/ath/ath11k/dp_tx.c @@ -393,9 +393,12 @@ static void ath11k_dp_tx_complete_msdu(struct ath11k *ar, struct sk_buff *msdu, struct hal_tx_status *ts) { + struct ieee80211_tx_status status = { }; struct ath11k_base *ab = ar->ab; struct ieee80211_tx_info *info; struct ath11k_skb_cb *skb_cb; + struct ath11k_peer *peer; + struct ath11k_sta *arsta; if (WARN_ON_ONCE(ts->buf_rel_source != HAL_WBM_REL_SRC_MODULE_TQM)) { /* Must not happen */ @@ -459,12 +462,23 @@ static void ath11k_dp_tx_complete_msdu(struct ath11k *ar, ath11k_dp_tx_cache_peer_stats(ar, msdu, ts); } - /* NOTE: Tx rate status reporting. Tx completion status does not have - * necessary information (for example nss) to build the tx rate. - * Might end up reporting it out-of-band from HTT stats. - */ - ieee80211_tx_status(ar->hw, msdu); + spin_lock_bh(&ab->base_lock); + peer = ath11k_peer_find_by_id(ab, ts->peer_id); + if (peer) { + arsta = (struct ath11k_sta *)peer->sta->drv_priv; + status.sta = peer->sta; + status.skb = msdu; + status.info = info; + status.rate = &arsta->last_txrate; + } + rcu_read_unlock(); + if (peer) + ieee80211_tx_status_ext(ar->hw, &status); + else + dev_kfree_skb_any(msdu); + spin_unlock_bh(&ab->base_lock); + return; exit: rcu_read_unlock();
This allows us to pass HE rates down into the stack. Signed-off-by: John Crispin <john@phrozen.org> --- Changes in V5 * fix sparse warnings drivers/net/wireless/ath/ath11k/dp_tx.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-)