From: Anilkumar Kolli <akolli@codeaurora.org> To: ath10k@lists.infradead.org Cc: linux-wireless@vger.kernel.org, Anilkumar Kolli <akolli@codeaurora.org> Subject: [PATCH 1/2] mac80211: implement ieee80211_tx_rate_update to update rate Date: Thu, 11 Oct 2018 18:15:03 +0530 [thread overview] Message-ID: <1539261904-9016-2-git-send-email-akolli@codeaurora.org> (raw) In-Reply-To: <1539261904-9016-1-git-send-email-akolli@codeaurora.org> Current mac80211 has provision to update tx status through ieee80211_tx_status() and ieee80211_tx_status_ext(). But drivers like ath10k updates the tx status from the skb except txrate, txrate will be updated from a different path, peer stats. Using ieee80211_tx_status_ext() in two different paths - (one for the stats, one for the tx rate) will duplicate the stats. To avoid this stats duplication, ieee80211_tx_rate_update() is implemented. Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> --- include/net/mac80211.h | 15 +++++++++++++++ net/mac80211/status.c | 22 ++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/include/net/mac80211.h b/include/net/mac80211.h index c4fadbafbf21..86a6b1117a16 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h @@ -4352,6 +4352,21 @@ void ieee80211_sta_set_expected_throughput(struct ieee80211_sta *pubsta, u32 thr); /** + * ieee80211_tx_rate_update - transmit rate update callback + * + * Drivers should call this functions with a non-NULL pub sta + * This function can be used in drivers that does not have provision + * in updating the tx rate in data path. + * + * @hw: the hardware the frame was transmitted by + * @pubsta: the station to update the tx rate for. + * @info: tx status information + */ +void ieee80211_tx_rate_update(struct ieee80211_hw *hw, + struct ieee80211_sta *pubsta, + struct ieee80211_tx_info *info); + +/** * ieee80211_tx_status - transmit status callback * * Call this function for all transmitted frames after they have been diff --git a/net/mac80211/status.c b/net/mac80211/status.c index 91d7c0cd1882..6272fe1b351d 100644 --- a/net/mac80211/status.c +++ b/net/mac80211/status.c @@ -987,6 +987,28 @@ 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; + struct sta_info *sta; + struct ieee80211_tx_status status; + + sband = hw->wiphy->bands[info->band]; + + sta = container_of(pubsta, struct sta_info, sta); + status.skb = NULL; + status.info = info; + status.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); -- 1.7.9.5
WARNING: multiple messages have this Message-ID (diff)
From: Anilkumar Kolli <akolli@codeaurora.org> To: ath10k@lists.infradead.org Cc: Anilkumar Kolli <akolli@codeaurora.org>, linux-wireless@vger.kernel.org Subject: [PATCH 1/2] mac80211: implement ieee80211_tx_rate_update to update rate Date: Thu, 11 Oct 2018 18:15:03 +0530 [thread overview] Message-ID: <1539261904-9016-2-git-send-email-akolli@codeaurora.org> (raw) In-Reply-To: <1539261904-9016-1-git-send-email-akolli@codeaurora.org> Current mac80211 has provision to update tx status through ieee80211_tx_status() and ieee80211_tx_status_ext(). But drivers like ath10k updates the tx status from the skb except txrate, txrate will be updated from a different path, peer stats. Using ieee80211_tx_status_ext() in two different paths - (one for the stats, one for the tx rate) will duplicate the stats. To avoid this stats duplication, ieee80211_tx_rate_update() is implemented. Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> --- include/net/mac80211.h | 15 +++++++++++++++ net/mac80211/status.c | 22 ++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/include/net/mac80211.h b/include/net/mac80211.h index c4fadbafbf21..86a6b1117a16 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h @@ -4352,6 +4352,21 @@ void ieee80211_sta_set_expected_throughput(struct ieee80211_sta *pubsta, u32 thr); /** + * ieee80211_tx_rate_update - transmit rate update callback + * + * Drivers should call this functions with a non-NULL pub sta + * This function can be used in drivers that does not have provision + * in updating the tx rate in data path. + * + * @hw: the hardware the frame was transmitted by + * @pubsta: the station to update the tx rate for. + * @info: tx status information + */ +void ieee80211_tx_rate_update(struct ieee80211_hw *hw, + struct ieee80211_sta *pubsta, + struct ieee80211_tx_info *info); + +/** * ieee80211_tx_status - transmit status callback * * Call this function for all transmitted frames after they have been diff --git a/net/mac80211/status.c b/net/mac80211/status.c index 91d7c0cd1882..6272fe1b351d 100644 --- a/net/mac80211/status.c +++ b/net/mac80211/status.c @@ -987,6 +987,28 @@ 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; + struct sta_info *sta; + struct ieee80211_tx_status status; + + sband = hw->wiphy->bands[info->band]; + + sta = container_of(pubsta, struct sta_info, sta); + status.skb = NULL; + status.info = info; + status.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); -- 1.7.9.5 _______________________________________________ ath10k mailing list ath10k@lists.infradead.org http://lists.infradead.org/mailman/listinfo/ath10k
next prev parent reply other threads:[~2018-10-11 12:42 UTC|newest] Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-10-11 12:45 [PATCH 0/2] ath10k: Add support to update tx rate to mac80211 Anilkumar Kolli 2018-10-11 12:45 ` Anilkumar Kolli 2018-10-11 12:45 ` Anilkumar Kolli [this message] 2018-10-11 12:45 ` [PATCH 1/2] mac80211: implement ieee80211_tx_rate_update to update rate Anilkumar Kolli 2018-10-11 12:45 ` [PATCH 2/2] ath10k: report tx rate using ieee80211_tx_rate_update() Anilkumar Kolli 2018-10-11 12:45 ` Anilkumar Kolli 2018-10-12 11:35 ` Kalle Valo 2018-10-12 11:35 ` Kalle Valo [not found] ` <20181012113515.202BD6063F@smtp.codeaurora.org> 2018-10-26 12:58 ` Anilkumar Kolli 2018-10-26 12:58 ` Anilkumar Kolli
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1539261904-9016-2-git-send-email-akolli@codeaurora.org \ --to=akolli@codeaurora.org \ --cc=ath10k@lists.infradead.org \ --cc=linux-wireless@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.