Files
wlan-ap/feeds/ipq807x_v5.4/hostapd/patches/e00-003-hostapd-chan-switch-6ghz.patch
John Crispin 3b6582117b ipq807x: add ath12 / v5.4 support
Signed-off-by: John Crispin <john@phrozen.org>
2023-04-10 14:25:48 +02:00

66 lines
2.1 KiB
Diff

From 917653b0674dfacc976e20956e999fef13c6e6ba Mon Sep 17 00:00:00 2001
From: Muna Sinada <msinada@codeaurora.org>
Date: Wed, 29 Jul 2020 09:41:31 -0700
Subject: [PATCH] hostapd:remove 11A specific case to allow for 6 GHz
With 6 GHz utilizing 11A/HE, frequency to channel conversions needed
to accomedate for 6 GHz frequencies in hostapd_event_ch_switch. Removed
5 GHz specific conversions for the 11A case due to incorrect 6 GHz
frequencies being incorrectly being converted in
hostapd_event_ch_switch
Signed-off-by: Muna Sinada <msinada@codeaurora.org>
---
src/ap/drv_callbacks.c | 14 ++------------
1 file changed, 2 insertions(+), 12 deletions(-)
--- a/src/ap/drv_callbacks.c
+++ b/src/ap/drv_callbacks.c
@@ -876,7 +876,7 @@ void hostapd_event_ch_switch(struct host
{
#ifdef NEED_AP_MLME
int channel, chwidth, is_dfs;
- u8 seg0_idx = 0, seg1_idx = 0;
+ u8 seg0_idx = 0, seg1_idx = 0, op_class;
size_t i;
hostapd_logger(hapd, NULL, HOSTAPD_MODULE_IEEE80211,
@@ -922,27 +922,8 @@ void hostapd_event_ch_switch(struct host
break;
}
- switch (hapd->iface->current_mode->mode) {
- case HOSTAPD_MODE_IEEE80211A:
- if (cf1 == 5935)
- seg0_idx = (cf1 - 5925) / 5;
- else if (cf1 > 5950)
- seg0_idx = (cf1 - 5950) / 5;
- else if (cf1 > 5000)
- seg0_idx = (cf1 - 5000) / 5;
-
- if (cf2 == 5935)
- seg1_idx = (cf2 - 5925) / 5;
- else if (cf2 > 5950)
- seg1_idx = (cf2 - 5950) / 5;
- else if (cf2 > 5000)
- seg1_idx = (cf2 - 5000) / 5;
- break;
- default:
- ieee80211_freq_to_chan(cf1, &seg0_idx);
- ieee80211_freq_to_chan(cf2, &seg1_idx);
- break;
- }
+ ieee80211_freq_to_channel_ext(cf1, offset, chwidth, &op_class, &seg0_idx);
+ ieee80211_freq_to_chan(cf2, &seg1_idx);
hapd->iconf->channel = channel;
hapd->iconf->ieee80211n = ht;
@@ -977,6 +958,7 @@ void hostapd_event_ch_switch(struct host
hostapd_set_oper_chwidth(hapd->iconf, chwidth);
hostapd_set_oper_centr_freq_seg0_idx(hapd->iconf, seg0_idx);
hostapd_set_oper_centr_freq_seg1_idx(hapd->iconf, seg1_idx);
+ hapd->iconf->op_class = op_class;
is_dfs = ieee80211_is_dfs(freq, hapd->iface->hw_features,
hapd->iface->num_hw_features);