From 84337cd7cc25c227b19f8dde3138c40fdbf863b4 Mon Sep 17 00:00:00 2001
From: Michael Lee <michael-cy.lee@mediatek.com>
Date: Wed, 22 Mar 2023 13:59:29 +0800
Subject: [PATCH 21/32] hostapd: mtk: Add channel information for hostapd
 reload

Add center channel, operating class, and bandwidth into the UPDATE
command when wpa_supplciant reloads hostapd.
Hostapd can correctly update its channel information.

Signed-off-by: Michael Lee <michael-cy.lee@mediatek.com>
---
 hostapd/ctrl_iface.c            | 11 +++++++++++
 wpa_supplicant/wpa_supplicant.c | 17 ++++++++++++++---
 2 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/hostapd/ctrl_iface.c b/hostapd/ctrl_iface.c
index 997b50aad..3abf06a09 100644
--- a/hostapd/ctrl_iface.c
+++ b/hostapd/ctrl_iface.c
@@ -171,6 +171,17 @@ static struct hostapd_config *hostapd_ctrl_iface_config_read(const char *fname)
 			conf->hw_mode = atoi(val);
 		else if ((val = get_option(opt, "ieee80211n=")))
 			conf->ieee80211n = atoi(val);
+		else if ((val = get_option(opt, "center_segment0=")))
+			hostapd_set_oper_centr_freq_seg0_idx(conf, atoi(val));
+		else if ((val = get_option(opt, "center_segment1=")))
+			hostapd_set_oper_centr_freq_seg1_idx(conf, atoi(val));
+		else if ((val = get_option(opt, "op_class="))) {
+			enum oper_chan_width ch_width;
+
+			conf->op_class = atoi(val);
+			ch_width = op_class_to_ch_width(conf->op_class);
+			hostapd_set_oper_chwidth(conf, ch_width);
+		}
 		else
 			break;
 	}
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index deb14632c..2ca2bd263 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
@@ -150,9 +150,10 @@ static int hostapd_reload(struct wpa_supplicant *wpa_s, struct wpa_bss *bss)
 	char buf[256];
 	size_t len = sizeof(buf);
 	enum hostapd_hw_mode hw_mode;
-	u8 channel;
+	u8 channel, center_segment0, center_segment1 = 0, op_class;
 	int sec_chan = 0;
 	int ret;
+	struct wpa_channel_info ci;
 
 	if (!bss)
 		return -1;
@@ -165,9 +166,19 @@ static int hostapd_reload(struct wpa_supplicant *wpa_s, struct wpa_bss *bss)
 			sec_chan = -1;
 	}
 
+	ret = wpa_drv_channel_info(wpa_s, &ci);
+	if (ret)
+		return -1;
+
+	ieee80211_freq_to_chan(ci.center_frq1, &center_segment0);
+	ieee80211_freq_to_chan(ci.center_frq2, &center_segment1);
+	ieee80211_chaninfo_to_channel(ci.frequency, ci.chanwidth, sec_chan,
+				      &op_class, &channel);
 	hw_mode = ieee80211_freq_to_chan(bss->freq, &channel);
-	if (asprintf(&cmd, "UPDATE channel=%d sec_chan=%d hw_mode=%d",
-		     channel, sec_chan, hw_mode) < 0)
+	if (asprintf(&cmd, "UPDATE channel=%d center_segment0=%d "
+		     "center_segment1=%d sec_chan=%d hw_mode=%d op_class=%d",
+		     channel, center_segment0, center_segment1, sec_chan,
+		     hw_mode, op_class) < 0)
 		return -1;
 
 	ret = wpa_ctrl_request(wpa_s->hostapd, cmd, os_strlen(cmd), buf, &len, NULL);
-- 
2.39.2

