mac80211: ath11k: sync with ath-next
[openwrt/openwrt.git] / package / kernel / mac80211 / patches / ath11k / 0078-wifi-ath11k-Relocate-the-func-ath11k_mac_bitrate_mas.patch
diff --git a/package/kernel/mac80211/patches/ath11k/0078-wifi-ath11k-Relocate-the-func-ath11k_mac_bitrate_mas.patch b/package/kernel/mac80211/patches/ath11k/0078-wifi-ath11k-Relocate-the-func-ath11k_mac_bitrate_mas.patch
new file mode 100644 (file)
index 0000000..610bf72
--- /dev/null
@@ -0,0 +1,75 @@
+From 570eec3d40505c30babbe3b8f85a38496c975ab2 Mon Sep 17 00:00:00 2001
+From: Maharaja Kennadyrajan <quic_mkenna@quicinc.com>
+Date: Tue, 9 May 2023 20:07:23 +0300
+Subject: [PATCH] wifi: ath11k: Relocate the func
+ ath11k_mac_bitrate_mask_num_ht_rates() and change hweight16 to hweight8
+
+Relocate the function ath11k_mac_bitrate_mask_num_ht_rates() definition
+to call this function from other functions which helps to avoid the
+compilation error (function not defined).
+
+ht_mcs[] is 1 byte array and it is enough to use hweight8() instead
+of hweight16(). Hence, fixed the same.
+
+Tested on: Compile tested only.
+
+Signed-off-by: Maharaja Kennadyrajan <quic_mkenna@quicinc.com>
+Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
+Link: https://lore.kernel.org/r/20230504092033.3542456-2-quic_mkenna@quicinc.com
+---
+ drivers/net/wireless/ath/ath11k/mac.c | 30 +++++++++++++--------------
+ 1 file changed, 15 insertions(+), 15 deletions(-)
+
+--- a/drivers/net/wireless/ath/ath11k/mac.c
++++ b/drivers/net/wireless/ath/ath11k/mac.c
+@@ -1,7 +1,7 @@
+ // SPDX-License-Identifier: BSD-3-Clause-Clear
+ /*
+  * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
+- * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
++ * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+  */
+ #include <net/mac80211.h>
+@@ -4338,6 +4338,20 @@ exit:
+ }
+ static int
++ath11k_mac_bitrate_mask_num_ht_rates(struct ath11k *ar,
++                                   enum nl80211_band band,
++                                   const struct cfg80211_bitrate_mask *mask)
++{
++      int num_rates = 0;
++      int i;
++
++      for (i = 0; i < ARRAY_SIZE(mask->control[band].ht_mcs); i++)
++              num_rates += hweight8(mask->control[band].ht_mcs[i]);
++
++      return num_rates;
++}
++
++static int
+ ath11k_mac_bitrate_mask_num_vht_rates(struct ath11k *ar,
+                                     enum nl80211_band band,
+                                     const struct cfg80211_bitrate_mask *mask)
+@@ -7791,20 +7805,6 @@ static void ath11k_mac_op_flush(struct i
+       ath11k_mac_flush_tx_complete(ar);
+ }
+-static int
+-ath11k_mac_bitrate_mask_num_ht_rates(struct ath11k *ar,
+-                                   enum nl80211_band band,
+-                                   const struct cfg80211_bitrate_mask *mask)
+-{
+-      int num_rates = 0;
+-      int i;
+-
+-      for (i = 0; i < ARRAY_SIZE(mask->control[band].ht_mcs); i++)
+-              num_rates += hweight16(mask->control[band].ht_mcs[i]);
+-
+-      return num_rates;
+-}
+-
+ static bool
+ ath11k_mac_has_single_legacy_rate(struct ath11k *ar,
+                                 enum nl80211_band band,