Tamizh Chelvam <tamizhr@xxxxxxxxxxxxxx> wrote: > This patch add ops for set_tid_config to support TID > specific configuration. Station specific TID configuration > will have more priority than vif specific TID configuration. > WMI_SERVICE_PEER_TID_CONFIGS_SUPPORT service flag introduced > to notify host for TID config support. And RTS_CTS extended tid > configuration support advertised through the service flag > WMI_10_4_SERVICE_EXT_PEER_TID_CONFIGS_SUPPORT. > > TID specific noack configuration requires > aggregation should be disabled and rate for the data TID packets > should be basic rates. So, if the TID already configured > with noack policy then driver will ignore the aggregation > or TX rate related configuration for the same data TID. > > In TX rate configuration should be applied with highest > preamble configuration(HT rates should not be applied > for the station which supports vht rates). > > Tested-on: QCA9984 hw1.0 PCI 10.4-3.9.0.2-00021 > > Signed-off-by: Tamizh Chelvam <tamizhr@xxxxxxxxxxxxxx> > Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx> There few checkpatch warnings which I fixed and also I did some whitespace changes to improve readability. Others were trivial but please check carefully this change and let me know if it's ok: --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c @@ -7089,6 +7089,7 @@ static void ath10k_sta_tid_cfg_wk(struct work_struct *wk) bool config_apply; int ret, i; u32 changed; + u8 nss; arsta = container_of(wk, struct ath10k_sta, tid_config_wk); sta = container_of((void *)arsta, struct ieee80211_sta, drv_priv); @@ -7138,9 +7139,12 @@ static void ath10k_sta_tid_cfg_wk(struct work_struct *wk) if (changed & (BIT(NL80211_TID_CONFIG_ATTR_TX_RATE) | BIT(NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE))) { - if (arvif->rate_ctrl[i] > WMI_TID_CONFIG_RATE_CONTROL_AUTO && - ath10k_mac_validate_rate_mask(ar, sta, arvif->rate_code[i], - ATH10K_HW_NSS(arvif->rate_code[i]))) { + nss = ATH10K_HW_NSS(arvif->rate_code[i]); + ret = ath10k_mac_validate_rate_mask(ar, sta, + arvif->rate_code[i], + nss); + if (ret && + arvif->rate_ctrl[i] > WMI_TID_CONFIG_RATE_CONTROL_AUTO) { arg.rate_ctrl = 0; arg.rcode_flags = 0; } -- https://patchwork.kernel.org/patch/11643787/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches