[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