[PATCHv2 3/4] ath10k: Add new api to support TID specific configuration

Tamizh Chelvam tamizhr at codeaurora.org
Tue Aug 18 06:06:38 EDT 2020


Hi Kalle,

> 
>> 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 at codeaurora.org>
>> Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
> 
> 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:
> 
Thanks for the cleanup. Change looks good to me.

> --- 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;
>                         }

Tamizh.



More information about the ath10k mailing list