Search Linux Wireless

Re: [PATCH v2 07/10] wifi: ath12k: add support for setting fixed HE rate/GI/LTF

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 3/27/2024 10:09 AM, Pradeep Kumar Chitrapu wrote:
> Add support to set fixed HE rate/GI/LTF values using nl80211.
> Reuse parts of the existing code path already used for HT/VHT
> to implement the new helpers symmetrically, similar to how
> HT/VHT is handled.
> 
> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
> 
> Co-developed-by: Muna Sinada <quic_msinada@xxxxxxxxxxx>
> Signed-off-by: Muna Sinada <quic_msinada@xxxxxxxxxxx>
> Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@xxxxxxxxxxx>
> ---
>  drivers/net/wireless/ath/ath12k/mac.c | 588 ++++++++++++++++++++++++--
>  drivers/net/wireless/ath/ath12k/wmi.h |  18 +
>  2 files changed, 562 insertions(+), 44 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c
> index 46ef2d63a3de..72232285d2b1 100644
> --- a/drivers/net/wireless/ath/ath12k/mac.c
> +++ b/drivers/net/wireless/ath/ath12k/mac.c
[...]
> @@ -3888,8 +4130,9 @@ static void ath12k_sta_rc_update_wk(struct work_struct *wk)
>  	mutex_lock(&ar->conf_mutex);
>  
>  	nss = max_t(u32, 1, nss);
> -	nss = min(nss, max(ath12k_mac_max_ht_nss(ht_mcs_mask),
> -			   ath12k_mac_max_vht_nss(vht_mcs_mask)));
> +	nss = min(nss, max3(ath12k_mac_max_ht_nss(ht_mcs_mask),
> +			    ath12k_mac_max_vht_nss(vht_mcs_mask),
> +			    ath12k_mac_max_he_nss(he_mcs_mask)));

When I run this entire series through ath12k-check I'm getting the following
issue here:

drivers/net/wireless/ath/ath12k/mac.c:4170:15: error: too long token expansion
drivers/net/wireless/ath/ath12k/mac.c:4170:15: error: too long token expansion

caeed0eb7fb4d (Pradeep Kumar Chitrapu 2024-03-27 10:09:07 -0700 4170)   nss = min(nss, max3(ath12k_mac_max_ht_nss(ht_mcs_mask),

I don't see anything wrong with the code.

Even stranger is that when this series is in place, I see this same issue at
another place:
drivers/net/wireless/ath/ath12k/mac.c:7903:23: error: too long token expansion
drivers/net/wireless/ath/ath12k/mac.c:7903:23: error: too long token expansion

But that is actually pre-existing code from the original ath12k driver drop:
d889913205cf7 (Kalle Valo             2022-11-28 17:09:53 +0200 7903)          nss = min_t(u32, ar->num_tx_chains,

And the issue is not flagged when this series is not present.

However that same logic also caused the same issue in ath11k, and Kalle fixed
it there with:
https://lore.kernel.org/all/20231214161740.1582340-1-kvalo@xxxxxxxxxx/

And one of the MediaTek drivers encountered a similar issue here:
https://lore.kernel.org/all/5457b92e41909dd75ab3db7a0e9ec372b917a386.1710858172.git.lorenzo@xxxxxxxxxx/

So there is definitely a tooling issue here.

As a local test I added an intermediate step and now I don't see the issue
here:
-       u32 changed, bw, nss, smps, bw_prev;
+       u32 changed, bw, nss, mac_nss, smps, bw_prev;
...
-       nss = min(nss, max3(ath12k_mac_max_ht_nss(ht_mcs_mask),
-                           ath12k_mac_max_vht_nss(vht_mcs_mask),
-                           ath12k_mac_max_he_nss(he_mcs_mask)));
+       mac_nss = max3(ath12k_mac_max_ht_nss(ht_mcs_mask),
+                      ath12k_mac_max_vht_nss(vht_mcs_mask),
+                      ath12k_mac_max_he_nss(he_mcs_mask));
+       nss = min(nss, mac_nss);

So let's add something like that in v3 (perhaps pick a better name)

(Even with this I still see the other issue from the original driver drop so
we may need to separately propagate the ath11k driver change to ath12k).

/jeff






[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux