Jonas Jelonek <jelonek.jonas@xxxxxxxxx> wrote: > Switching from legacy usage of ieee80211_get_tx_rates() lookup to direct > rate table lookup in struct ieee80211_sta->rates. > > The current rate control API allows drivers to directly get rates from > ieee80211_sta->rates. ath5k is currently one of the legacy drivers that > perform translation/merge with the internal rate table via > ieee80211_get_tx_rates provided by rate control API. > For our upcoming changes to rate control API and the implementation of > transmit power control, this patch changes the behaviour. The call to > ieee80211_get_tx_rates and subsequent calls are also avoided. ath5k now > directly reads rates from sta->rates into its internal rate table. Cause > ath5k does not rely on the rate array in SKB->CB, this is not considered > anymore except for the first entry (used for probing). > > Tested this on a PCEngines ALIX with CMP9-GP miniPCI wifi card (Atheros > AR5213A). Generated traffic between AP and multiple STAs before and > after applying the patch and simultaneously measured throughput and > captured rc_stats. Comparison resulted in same rate selection and no > performance loss between both runs. > > Co-developed-by: Thomas Huehn <thomas.huehn@xxxxxxxxxxxxxxxx> > Signed-off-by: Thomas Huehn <thomas.huehn@xxxxxxxxxxxxxxxx> > Signed-off-by: Jonas Jelonek <jelonek.jonas@xxxxxxxxx> > Signed-off-by: Kalle Valo <quic_kvalo@xxxxxxxxxxx> Patch applied to ath-next branch of ath.git, thanks. a5d862da9105 ath5k: switch to rate table based lookup -- https://patchwork.kernel.org/project/linux-wireless/patch/20211215215042.637-1-jelonek.jonas@xxxxxxxxx/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches