ath10k: Move rate mask validation function up in the file
authorTamizh Chelvam <tamizhr@codeaurora.org>
Wed, 19 Aug 2020 17:55:38 +0000 (20:55 +0300)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 26 Aug 2020 14:52:49 +0000 (17:52 +0300)
This patch does not have any functional changes.

Tested-on: QCA9984 hw1.0 PCI 10.4-3.9.0.2-00021

Signed-off-by: Tamizh Chelvam <tamizhr@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/1593875614-5683-3-git-send-email-tamizhr@codeaurora.org
drivers/net/wireless/ath/ath10k/mac.c

index 82b4bf5..2dc2d38 100644 (file)
@@ -6597,6 +6597,93 @@ out:
        return ret;
 }
 
+static bool
+ath10k_mac_bitrate_mask_has_single_rate(struct ath10k *ar,
+                                       enum nl80211_band band,
+                                       const struct cfg80211_bitrate_mask *mask,
+                                       int *vht_num_rates)
+{
+       int num_rates = 0;
+       int i, tmp;
+
+       num_rates += hweight32(mask->control[band].legacy);
+
+       for (i = 0; i < ARRAY_SIZE(mask->control[band].ht_mcs); i++)
+               num_rates += hweight8(mask->control[band].ht_mcs[i]);
+
+       *vht_num_rates = 0;
+       for (i = 0; i < ARRAY_SIZE(mask->control[band].vht_mcs); i++) {
+               tmp = hweight16(mask->control[band].vht_mcs[i]);
+               num_rates += tmp;
+               *vht_num_rates += tmp;
+       }
+
+       return num_rates == 1;
+}
+
+static int
+ath10k_mac_bitrate_mask_get_single_rate(struct ath10k *ar,
+                                       enum nl80211_band band,
+                                       const struct cfg80211_bitrate_mask *mask,
+                                       u8 *rate, u8 *nss, bool vht_only)
+{
+       int rate_idx;
+       int i;
+       u16 bitrate;
+       u8 preamble;
+       u8 hw_rate;
+
+       if (vht_only)
+               goto next;
+
+       if (hweight32(mask->control[band].legacy) == 1) {
+               rate_idx = ffs(mask->control[band].legacy) - 1;
+
+               if (ar->phy_capability & WHAL_WLAN_11A_CAPABILITY)
+                       rate_idx += ATH10K_MAC_FIRST_OFDM_RATE_IDX;
+
+               hw_rate = ath10k_wmi_legacy_rates[rate_idx].hw_value;
+               bitrate = ath10k_wmi_legacy_rates[rate_idx].bitrate;
+
+               if (ath10k_mac_bitrate_is_cck(bitrate))
+                       preamble = WMI_RATE_PREAMBLE_CCK;
+               else
+                       preamble = WMI_RATE_PREAMBLE_OFDM;
+
+               *nss = 1;
+               *rate = preamble << 6 |
+                       (*nss - 1) << 4 |
+                       hw_rate << 0;
+
+               return 0;
+       }
+
+       for (i = 0; i < ARRAY_SIZE(mask->control[band].ht_mcs); i++) {
+               if (hweight8(mask->control[band].ht_mcs[i]) == 1) {
+                       *nss = i + 1;
+                       *rate = WMI_RATE_PREAMBLE_HT << 6 |
+                               (*nss - 1) << 4 |
+                               (ffs(mask->control[band].ht_mcs[i]) - 1);
+
+                       return 0;
+               }
+       }
+
+next:
+       for (i = 0; i < ARRAY_SIZE(mask->control[band].vht_mcs); i++) {
+               if (hweight16(mask->control[band].vht_mcs[i]) == 1) {
+                       *nss = i + 1;
+                       *rate = WMI_RATE_PREAMBLE_VHT << 6 |
+                               (*nss - 1) << 4 |
+                               (ffs(mask->control[band].vht_mcs[i]) - 1);
+
+                       return 0;
+               }
+       }
+
+       return -EINVAL;
+}
+
 static int ath10k_sta_state(struct ieee80211_hw *hw,
                            struct ieee80211_vif *vif,
                            struct ieee80211_sta *sta,
@@ -7347,30 +7434,6 @@ exit:
 }
 
 static bool
-ath10k_mac_bitrate_mask_has_single_rate(struct ath10k *ar,
-                                       enum nl80211_band band,
-                                       const struct cfg80211_bitrate_mask *mask,
-                                       int *vht_num_rates)
-{
-       int num_rates = 0;
-       int i, tmp;
-
-       num_rates += hweight32(mask->control[band].legacy);
-
-       for (i = 0; i < ARRAY_SIZE(mask->control[band].ht_mcs); i++)
-               num_rates += hweight8(mask->control[band].ht_mcs[i]);
-
-       *vht_num_rates = 0;
-       for (i = 0; i < ARRAY_SIZE(mask->control[band].vht_mcs); i++) {
-               tmp = hweight16(mask->control[band].vht_mcs[i]);
-               num_rates += tmp;
-               *vht_num_rates += tmp;
-       }
-
-       return num_rates == 1;
-}
-
-static bool
 ath10k_mac_bitrate_mask_get_single_nss(struct ath10k *ar,
                                       enum nl80211_band band,
                                       const struct cfg80211_bitrate_mask *mask,
@@ -7419,69 +7482,6 @@ ath10k_mac_bitrate_mask_get_single_nss(struct ath10k *ar,
        return true;
 }
 
-static int
-ath10k_mac_bitrate_mask_get_single_rate(struct ath10k *ar,
-                                       enum nl80211_band band,
-                                       const struct cfg80211_bitrate_mask *mask,
-                                       u8 *rate, u8 *nss, bool vht_only)
-{
-       int rate_idx;
-       int i;
-       u16 bitrate;
-       u8 preamble;
-       u8 hw_rate;
-
-       if (vht_only)
-               goto next;
-
-       if (hweight32(mask->control[band].legacy) == 1) {
-               rate_idx = ffs(mask->control[band].legacy) - 1;
-
-               if (ar->phy_capability & WHAL_WLAN_11A_CAPABILITY)
-                       rate_idx += ATH10K_MAC_FIRST_OFDM_RATE_IDX;
-
-               hw_rate = ath10k_wmi_legacy_rates[rate_idx].hw_value;
-               bitrate = ath10k_wmi_legacy_rates[rate_idx].bitrate;
-
-               if (ath10k_mac_bitrate_is_cck(bitrate))
-                       preamble = WMI_RATE_PREAMBLE_CCK;
-               else
-                       preamble = WMI_RATE_PREAMBLE_OFDM;
-
-               *nss = 1;
-               *rate = preamble << 6 |
-                       (*nss - 1) << 4 |
-                       hw_rate << 0;
-
-               return 0;
-       }
-
-       for (i = 0; i < ARRAY_SIZE(mask->control[band].ht_mcs); i++) {
-               if (hweight8(mask->control[band].ht_mcs[i]) == 1) {
-                       *nss = i + 1;
-                       *rate = WMI_RATE_PREAMBLE_HT << 6 |
-                               (*nss - 1) << 4 |
-                               (ffs(mask->control[band].ht_mcs[i]) - 1);
-
-                       return 0;
-               }
-       }
-
-next:
-       for (i = 0; i < ARRAY_SIZE(mask->control[band].vht_mcs); i++) {
-               if (hweight16(mask->control[band].vht_mcs[i]) == 1) {
-                       *nss = i + 1;
-                       *rate = WMI_RATE_PREAMBLE_VHT << 6 |
-                               (*nss - 1) << 4 |
-                               (ffs(mask->control[band].vht_mcs[i]) - 1);
-
-                       return 0;
-               }
-       }
-
-       return -EINVAL;
-}
-
 static int ath10k_mac_set_fixed_rate_params(struct ath10k_vif *arvif,
                                            u8 rate, u8 nss, u8 sgi, u8 ldpc)
 {