aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/services/hostapd/patches/004-wpa_supplicant-fix-frequency-config-for-non-p2p-vht-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/services/hostapd/patches/004-wpa_supplicant-fix-frequency-config-for-non-p2p-vht-.patch')
-rw-r--r--package/network/services/hostapd/patches/004-wpa_supplicant-fix-frequency-config-for-non-p2p-vht-.patch63
1 files changed, 63 insertions, 0 deletions
diff --git a/package/network/services/hostapd/patches/004-wpa_supplicant-fix-frequency-config-for-non-p2p-vht-.patch b/package/network/services/hostapd/patches/004-wpa_supplicant-fix-frequency-config-for-non-p2p-vht-.patch
new file mode 100644
index 0000000000..e8682af644
--- /dev/null
+++ b/package/network/services/hostapd/patches/004-wpa_supplicant-fix-frequency-config-for-non-p2p-vht-.patch
@@ -0,0 +1,63 @@
+From 7f7325dae1d03a3964d4e91940d8369f3fed7b43 Mon Sep 17 00:00:00 2001
+From: Markus Theil <markus.theil@tu-ilmenau.de>
+Date: Tue, 30 Jun 2020 13:53:20 +0200
+Subject: [PATCH 04/19] wpa_supplicant: fix frequency config for non p2p vht/he
+ cases
+
+Fix compile without CONFIG_P2P and only set secondary channel seg idx
+if we use a mode supporting a sec channel for vht/he.
+
+Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
+---
+ wpa_supplicant/ap.c | 23 +++++++++++++----------
+ 1 file changed, 13 insertions(+), 10 deletions(-)
+
+--- a/wpa_supplicant/ap.c
++++ b/wpa_supplicant/ap.c
+@@ -52,8 +52,8 @@ static void wpas_conf_ap_vht(struct wpa_
+ #ifdef CONFIG_P2P
+ u8 center_chan = 0;
+ u8 channel = conf->channel;
+- u8 freq_seg_idx;
+ #endif /* CONFIG_P2P */
++ u8 freq_seg_idx;
+
+ if (!conf->secondary_channel)
+ goto no_vht;
+@@ -62,24 +62,27 @@ static void wpas_conf_ap_vht(struct wpa_
+ if (ssid->max_oper_chwidth)
+ hostapd_set_oper_chwidth(conf, ssid->max_oper_chwidth);
+
+- ieee80211_freq_to_chan(ssid->vht_center_freq2,
+- &freq_seg_idx);
+- hostapd_set_oper_centr_freq_seg1_idx(conf, freq_seg_idx);
+-
+ if (!ssid->p2p_group) {
+- if (!ssid->vht_center_freq1 ||
+- hostapd_get_oper_chwidth(conf) == CHANWIDTH_USE_HT)
++ if (!ssid->vht_center_freq1)
+ goto no_vht;
+ ieee80211_freq_to_chan(ssid->vht_center_freq1,
+ &freq_seg_idx);
+ hostapd_set_oper_centr_freq_seg0_idx(conf, freq_seg_idx);
+- wpa_printf(MSG_DEBUG, "VHT seg0 index %d for AP",
+- hostapd_get_oper_centr_freq_seg0_idx(conf));
++
++ if (hostapd_get_oper_chwidth(conf) == CHANWIDTH_80P80MHZ) {
++ ieee80211_freq_to_chan(ssid->vht_center_freq2,
++ &freq_seg_idx);
++ hostapd_set_oper_centr_freq_seg1_idx(conf, freq_seg_idx);
++ }
++
++ wpa_printf(MSG_DEBUG, "VHT seg0 index %d and seg1 index %d for AP",
++ hostapd_get_oper_centr_freq_seg0_idx(conf),
++ hostapd_get_oper_centr_freq_seg1_idx(conf));
+ return;
+ }
+
+ #ifdef CONFIG_P2P
+- switch (conf->vht_oper_chwidth) {
++ switch (hostapd_get_oper_chwidth(conf)) {
+ case CHANWIDTH_80MHZ:
+ case CHANWIDTH_80P80MHZ:
+ center_chan = wpas_p2p_get_vht80_center(wpa_s, mode, channel);