OSDN Git Service

ath10k: refactor ath10k_peer_assoc_h_phymode()
authorKalle Valo <kvalo@qca.qualcomm.com>
Thu, 12 Jan 2017 11:02:11 +0000 (13:02 +0200)
committerKalle Valo <kvalo@qca.qualcomm.com>
Fri, 13 Jan 2017 13:26:26 +0000 (15:26 +0200)
When adding VHT160 support to ath10k_peer_assoc_h_phymode() the VHT mode
selection code becomes too complex. Simplify it by refactoring the vht part to
a separate function.

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath10k/mac.c

index d1b7edb..2f6f777 100644 (file)
@@ -2533,6 +2533,21 @@ static bool ath10k_mac_sta_has_ofdm_only(struct ieee80211_sta *sta)
               ATH10K_MAC_FIRST_OFDM_RATE_IDX;
 }
 
+static enum wmi_phy_mode ath10k_mac_get_phymode_vht(struct ath10k *ar,
+                                                   struct ieee80211_sta *sta)
+{
+       if (sta->bandwidth == IEEE80211_STA_RX_BW_80)
+               return MODE_11AC_VHT80;
+
+       if (sta->bandwidth == IEEE80211_STA_RX_BW_40)
+               return MODE_11AC_VHT40;
+
+       if (sta->bandwidth == IEEE80211_STA_RX_BW_20)
+               return MODE_11AC_VHT20;
+
+       return MODE_UNKNOWN;
+}
+
 static void ath10k_peer_assoc_h_phymode(struct ath10k *ar,
                                        struct ieee80211_vif *vif,
                                        struct ieee80211_sta *sta,
@@ -2579,12 +2594,7 @@ static void ath10k_peer_assoc_h_phymode(struct ath10k *ar,
                 */
                if (sta->vht_cap.vht_supported &&
                    !ath10k_peer_assoc_h_vht_masked(vht_mcs_mask)) {
-                       if (sta->bandwidth == IEEE80211_STA_RX_BW_80)
-                               phymode = MODE_11AC_VHT80;
-                       else if (sta->bandwidth == IEEE80211_STA_RX_BW_40)
-                               phymode = MODE_11AC_VHT40;
-                       else if (sta->bandwidth == IEEE80211_STA_RX_BW_20)
-                               phymode = MODE_11AC_VHT20;
+                       phymode = ath10k_mac_get_phymode_vht(ar, sta);
                } else if (sta->ht_cap.ht_supported &&
                           !ath10k_peer_assoc_h_ht_masked(ht_mcs_mask)) {
                        if (sta->bandwidth >= IEEE80211_STA_RX_BW_40)