[PATCH 3/3] ath11k: set correct NL80211_FEATURE_DYNAMIC_SMPS for WCN6855
Wen Gong
wgong at codeaurora.org
Thu Sep 16 07:09:00 PDT 2021
On 2021-09-16 18:08, Kalle Valo wrote:
> Jouni Malinen <jouni at codeaurora.org> writes:
>
>> From: Wen Gong <wgong at codeaurora.org>
>>
>> Commit "ath11k: support SMPS configuration for 6 GHz" changed "if
>> (ht_cap & WMI_HT_CAP_DYNAMIC_SMPS)" to "if (ht_cap &
>> WMI_HT_CAP_DYNAMIC_SMPS || ar->supports_6ghz)" which means
>> NL80211_FEATURE_DYNAMIC_SMPS is enabled for all chips which support 6
>> GHz. However, WCN6855 supports 6 GHz but it does not support feature
>> NL80211_FEATURE_DYNAMIC_SMPS, and this can lead to MU-MIMO test
>> failures
>> for WCN6855.
>>
>> Disable NL80211_FEATURE_DYNAMIC_SMPS for WCN6855 since its ht_cap does
>> not support WMI_HT_CAP_DYNAMIC_SMPS.
>>
>> Tested-on: WCN6855 hw2.0 PCI
>> WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1
>>
>> Signed-off-by: Wen Gong <wgong at codeaurora.org>
>> Signed-off-by: Jouni Malinen <jouni at codeaurora.org>
>
> [...]
>
>> --- a/drivers/net/wireless/ath/ath11k/mac.c
>> +++ b/drivers/net/wireless/ath/ath11k/mac.c
>> @@ -7570,7 +7570,8 @@ static int __ath11k_mac_register(struct ath11k
>> *ar)
>> * for each band for a dual band capable radio. It will be tricky to
>> * handle it when the ht capability different for each band.
>> */
>> - if (ht_cap & WMI_HT_CAP_DYNAMIC_SMPS || ar->supports_6ghz)
>> + if (ht_cap & WMI_HT_CAP_DYNAMIC_SMPS ||
>> + (ar->supports_6ghz && !ab->hw_params.check_dynamic_smps))
>> ar->hw->wiphy->features |= NL80211_FEATURE_DYNAMIC_SMPS;
>>
>> ar->hw->wiphy->max_scan_ssids = WLAN_SCAN_PARAMS_MAX_SSID;
>
> This hunk failed, in the pending branch as I don't have that
> ar->supports_6ghz check. I'll drop this patch 3 for now, let's revisit
> after my queue of ath11k patches is smaller.
Hi Kalle,
ar->supports_6ghz is introduced by this patch:
https://patchwork.kernel.org/project/linux-wireless/patch/20210913175510.193005-3-jouni@codeaurora.org/
@@ -7559,7 +7570,7 @@ static int __ath11k_mac_register(struct ath11k
*ar)
* for each band for a dual band capable radio. It will be tricky to
* handle it when the ht capability different for each band.
*/
- if (ht_cap & WMI_HT_CAP_DYNAMIC_SMPS)
+ if (ht_cap & WMI_HT_CAP_DYNAMIC_SMPS || ar->supports_6ghz)
ar->hw->wiphy->features |= NL80211_FEATURE_DYNAMIC_SMPS;
ar->hw->wiphy->max_scan_ssids = WLAN_SCAN_PARAMS_MAX_SSID;
More information about the ath11k
mailing list