[rdkb][common][bsp][Refactor ans sync wifi from openwrt]

[Description]
174f052 [MAC80211][wpa_supplicant][Add sae_pwe config to wpa_supplicant]
393edf7 [mac80211][mt76][Fix kernel crash because wcid may be null]
693a907 [MAC80211][misc][Change the HEMU name]
319b70b [MT7622+Kite WHNAT development]
3040258 [MAC80211][core][refine backports 5.15 patches]

[Release-log]

Change-Id: Icaa248f9381c398c78a71e09d4427594cb536f28
diff --git a/recipes-wifi/hostapd/files/openwrt_script/hostapd.sh b/recipes-wifi/hostapd/files/openwrt_script/hostapd.sh
index b165995..8c233a4 100644
--- a/recipes-wifi/hostapd/files/openwrt_script/hostapd.sh
+++ b/recipes-wifi/hostapd/files/openwrt_script/hostapd.sh
@@ -24,12 +24,12 @@
 		[1234])
 			for idx in 1 2 3 4; do
 				local zidx
-				zidx=$(($idx - 1))
+				zidx="$(($idx - 1))"
 				json_get_var ckey "key${idx}"
 				[ -n "$ckey" ] && \
 					append $var "wep_key${zidx}=$(prepare_key_wep "$ckey")" "$N$T"
 			done
-			wep_keyidx=$((key - 1))
+			wep_keyidx="$((key - 1))"
 		;;
 		*)
 			append $var "wep_key0=$(prepare_key_wep "$key")" "$N$T"
@@ -787,7 +787,7 @@
 		;;
 	esac
 
-	local auth_algs=$((($auth_mode_shared << 1) | $auth_mode_open))
+	local auth_algs="$((($auth_mode_shared << 1) | $auth_mode_open))"
 	append bss_conf "auth_algs=${auth_algs:-1}" "$N"
 	append bss_conf "wpa=$wpa" "$N"
 	[ -n "$wpa_pairwise" ] && append bss_conf "wpa_pairwise=$wpa_pairwise" "$N"
@@ -1156,7 +1156,7 @@
 		append bss_conf "$val" "$N"
 	done
 
-	bss_md5sum=$(echo $bss_conf | md5sum | cut -d" " -f1)
+	bss_md5sum="$(echo $bss_conf | md5sum | cut -d" " -f1)"
 	append bss_conf "config_id=$bss_md5sum" "$N"
 
 	append "$var" "$bss_conf" "$N"
@@ -1178,7 +1178,7 @@
 	set_default log_iapp   1
 	set_default log_mlme   1
 
-	local log_mask=$(( \
+	local log_mask="$(( \
 		($log_80211  << 0) | \
 		($log_8021x  << 1) | \
 		($log_radius << 2) | \
@@ -1186,7 +1186,7 @@
 		($log_driver << 4) | \
 		($log_iapp   << 5) | \
 		($log_mlme   << 6)   \
-	))
+	))"
 
 	append "$var" "logger_syslog=$log_mask" "$N"
 	append "$var" "logger_syslog_level=$log_level" "$N"
@@ -1372,11 +1372,11 @@
 
 			key_mgmt="$wpa_key_mgmt"
 
-			if [ ${#key} -eq 64 ]; then
-				passphrase="psk=${key}"
+			if [ "$_w_mode" = "mesh" ] || [ "$auth_type" = "sae" ]; then
+				passphrase="sae_password=\"${key}\""
 			else
-				if [ "$_w_mode" = "mesh" ]; then
-					passphrase="sae_password=\"${key}\""
+				if [ ${#key} -eq 64 ]; then
+					passphrase="psk=${key}"
 				else
 					passphrase="psk=\"${key}\""
 				fi
diff --git a/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0006-hostapd-mtk-Add-hostapd-HEMU-SET-GET-control.patch b/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0006-hostapd-mtk-Add-hostapd-MU-SET-GET-control.patch
similarity index 71%
rename from recipes-wifi/hostapd/files/patches-2.10.3/mtk-0006-hostapd-mtk-Add-hostapd-HEMU-SET-GET-control.patch
rename to recipes-wifi/hostapd/files/patches-2.10.3/mtk-0006-hostapd-mtk-Add-hostapd-MU-SET-GET-control.patch
index 27e71da..07e0d6d 100644
--- a/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0006-hostapd-mtk-Add-hostapd-HEMU-SET-GET-control.patch
+++ b/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0006-hostapd-mtk-Add-hostapd-MU-SET-GET-control.patch
@@ -1,7 +1,7 @@
 From 4919444a2dc29c019ec92321109603763c732071 Mon Sep 17 00:00:00 2001
 From: TomLiu <tomml.liu@mediatek.com>
 Date: Tue, 9 Aug 2022 10:23:44 -0700
-Subject: [PATCH 06/15] hostapd: mtk: Add hostapd HEMU SET/GET control
+Subject: [PATCH 06/15] hostapd: mtk: Add hostapd MU SET/GET control
 
 ---
  hostapd/config_file.c             |   9 +++
@@ -27,15 +27,15 @@
  			return 1;
  		}
  		bss->unsol_bcast_probe_resp_interval = val;
-+	} else if (os_strcmp(buf, "hemu_onoff") == 0) {
++	} else if (os_strcmp(buf, "mu_onoff") == 0) {
 +		int val = atoi(pos);
 +		if (val < 0 || val > 15) {
 +			wpa_printf(MSG_ERROR,
-+				   "Line %d: invalid hemu_onoff value",
++				   "Line %d: invalid mu_onoff value",
 +				   line);
 +			return 1;
 +		}
-+		conf->hemu_onoff = val;
++		conf->mu_onoff = val;
  #endif /* CONFIG_IEEE80211AX */
  	} else if (os_strcmp(buf, "max_listen_interval") == 0) {
  		bss->max_listen_interval = atoi(pos);
@@ -48,7 +48,7 @@
  
  
 +static int
-+hostapd_ctrl_iface_set_hemu(struct hostapd_data *hapd, char *cmd,
++hostapd_ctrl_iface_set_mu(struct hostapd_data *hapd, char *cmd,
 +					 char *buf, size_t buflen)
 +{
 +	char *pos, *config, *value;
@@ -63,19 +63,19 @@
 +	value = pos;
 +
 +	if (os_strcmp(config, "onoff") == 0) {
-+		int hemu = atoi(value);
-+		if (hemu < 0 || hemu > 15) {
-+			wpa_printf(MSG_ERROR, "Invalid value for hemu");
++		int mu = atoi(value);
++		if (mu < 0 || mu > 15) {
++			wpa_printf(MSG_ERROR, "Invalid value for mu");
 +			return -1;
 +		}
-+		hapd->iconf->hemu_onoff = (u8) hemu;
++		hapd->iconf->mu_onoff = (u8) mu;
 +	} else {
 +		wpa_printf(MSG_ERROR,
-+			"Unsupported parameter %s for SET_HEMU", config);
++			"Unsupported parameter %s for SET_MU", config);
 +		return -1;
 +	}
 +
-+	if(hostapd_drv_hemu_ctrl(hapd) == 0) {
++	if(hostapd_drv_mu_ctrl(hapd) == 0) {
 +		return os_snprintf(buf, buflen, "OK\n");
 +	} else {
 +		return -1;
@@ -84,19 +84,19 @@
 +
 +
 +static int
-+hostapd_ctrl_iface_get_hemu(struct hostapd_data *hapd, char *buf,
++hostapd_ctrl_iface_get_mu(struct hostapd_data *hapd, char *buf,
 +					 size_t buflen)
 +{
-+	u8 hemu_onoff;
++	u8 mu_onoff;
 +	char *pos, *end;
 +
 +	pos = buf;
 +	end = buf + buflen;
 +
-+	if (hostapd_drv_hemu_dump(hapd, &hemu_onoff) == 0) {
-+		hapd->iconf->hemu_onoff = hemu_onoff;
++	if (hostapd_drv_mu_dump(hapd, &mu_onoff) == 0) {
++		hapd->iconf->mu_onoff = mu_onoff;
 +		return os_snprintf(pos, end - pos, "[hostapd_cli] = UL MU-MIMO: %d, DL MU-MIMO: %d, UL OFDMA: %d, DL OFDMA: %d\n",
-+			!!(hemu_onoff&BIT(3)), !!(hemu_onoff&BIT(2)), !!(hemu_onoff&BIT(1)), !!(hemu_onoff&BIT(0)));
++			!!(mu_onoff&BIT(3)), !!(mu_onoff&BIT(2)), !!(mu_onoff&BIT(1)), !!(mu_onoff&BIT(0)));
 +	} else {
 +		wpa_printf(MSG_INFO, "ctrl iface failed to call");
 +		return -1;
@@ -111,11 +111,11 @@
  	} else if (os_strncmp(buf, "GET_EDCCA ", 10) == 0) {
  		reply_len = hostapd_ctrl_iface_get_edcca(hapd, buf+10, reply,
  							  reply_size);
-+	} else if (os_strncmp(buf, "SET_HEMU ", 9) == 0) {
-+		reply_len = hostapd_ctrl_iface_set_hemu(hapd, buf+9, reply,
++	} else if (os_strncmp(buf, "SET_MU ", 7) == 0) {
++		reply_len = hostapd_ctrl_iface_set_mu(hapd, buf + 7, reply,
 +							  reply_size);
-+	} else if (os_strncmp(buf, "GET_HEMU", 8) == 0) {
-+		reply_len = hostapd_ctrl_iface_get_hemu(hapd, reply, reply_size);
++	} else if (os_strncmp(buf, "GET_MU", 6) == 0) {
++		reply_len = hostapd_ctrl_iface_get_mu(hapd, reply, reply_size);
  	} else {
  		os_memcpy(reply, "UNKNOWN COMMAND\n", 16);
  		reply_len = 16;
@@ -127,17 +127,17 @@
  }
  
  
-+static int hostapd_cli_cmd_set_hemu(struct wpa_ctrl *ctrl, int argc,
++static int hostapd_cli_cmd_set_mu(struct wpa_ctrl *ctrl, int argc,
 +					   char *argv[])
 +{
-+	return hostapd_cli_cmd(ctrl, "SET_HEMU", 1, argc, argv);
++	return hostapd_cli_cmd(ctrl, "SET_MU", 1, argc, argv);
 +}
 +
 +
-+static int hostapd_cli_cmd_get_hemu(struct wpa_ctrl *ctrl, int argc,
++static int hostapd_cli_cmd_get_mu(struct wpa_ctrl *ctrl, int argc,
 +					   char *argv[])
 +{
-+	return hostapd_cli_cmd(ctrl, "GET_HEMU", 0, NULL, NULL);
++	return hostapd_cli_cmd(ctrl, "GET_MU", 0, NULL, NULL);
 +}
 +
 +
@@ -148,10 +148,10 @@
  	  " = send FTM range request"},
  	{ "driver_flags", hostapd_cli_cmd_driver_flags, NULL,
  	  " = show supported driver flags"},
-+	{ "set_hemu", hostapd_cli_cmd_set_hemu, NULL,
++	{ "set_mu", hostapd_cli_cmd_set_mu, NULL,
 +		"<value> [0-15] bitmap- UL MU-MIMO(bit3), DL MU-MIMO(bit2), UL OFDMA(bit1), DL OFDMA(bit0)"},
-+	{ "get_hemu", hostapd_cli_cmd_get_hemu, NULL,
-+		" = show hemu onoff value in 0-15 bitmap"},
++	{ "get_mu", hostapd_cli_cmd_get_mu, NULL,
++		" = show mu onoff value in 0-15 bitmap"},
  #ifdef CONFIG_DPP
  	{ "dpp_qr_code", hostapd_cli_cmd_dpp_qr_code, NULL,
  	  "report a scanned DPP URI from a QR Code" },
@@ -163,7 +163,7 @@
  	conf->he_6ghz_max_ampdu_len_exp = 7;
  	conf->he_6ghz_rx_ant_pat = 1;
  	conf->he_6ghz_tx_ant_pat = 1;
-+	conf->hemu_onoff = 13;
++	conf->mu_onoff = 13;
  #endif /* CONFIG_IEEE80211AX */
  
  	/* The third octet of the country string uses an ASCII space character
@@ -175,7 +175,7 @@
  	u8 he_6ghz_rx_ant_pat;
  	u8 he_6ghz_tx_ant_pat;
  	u8 he_6ghz_reg_pwr_type;
-+	u8 hemu_onoff;
++	u8 mu_onoff;
  #endif /* CONFIG_IEEE80211AX */
  
  	/* VHT enable/disable config from CHAN_SWITCH */
@@ -188,18 +188,18 @@
  	return hapd->driver->get_edcca(hapd->drv_priv, mode, value);
  }
 +
-+int hostapd_drv_hemu_ctrl(struct hostapd_data *hapd)
++int hostapd_drv_mu_ctrl(struct hostapd_data *hapd)
 +{
-+	if (!hapd->driver || !hapd->driver->hemu_ctrl)
++	if (!hapd->driver || !hapd->driver->mu_ctrl)
 +		return 0;
-+	return hapd->driver->hemu_ctrl(hapd->drv_priv, hapd->iconf->hemu_onoff);
++	return hapd->driver->mu_ctrl(hapd->drv_priv, hapd->iconf->mu_onoff);
 +}
 +
-+int hostapd_drv_hemu_dump(struct hostapd_data *hapd, u8 *hemu_onoff)
++int hostapd_drv_mu_dump(struct hostapd_data *hapd, u8 *mu_onoff)
 +{
-+	if (!hapd->driver || !hapd->driver->hemu_dump)
++	if (!hapd->driver || !hapd->driver->mu_dump)
 +		return 0;
-+	return hapd->driver->hemu_dump(hapd->drv_priv, hemu_onoff);
++	return hapd->driver->mu_dump(hapd->drv_priv, mu_onoff);
 +}
 diff --git a/src/ap/ap_drv_ops.h b/src/ap/ap_drv_ops.h
 index 70a99f406..bca39c502 100644
@@ -209,8 +209,8 @@
  int hostapd_drv_configure_edcca_threshold(struct hostapd_data *hapd,
  					  const int *threshold);
  int hostapd_drv_get_edcca(struct hostapd_data *hapd, const u8 mode, u8 *value);
-+int hostapd_drv_hemu_ctrl(struct hostapd_data *hapd);
-+int hostapd_drv_hemu_dump(struct hostapd_data *hapd, u8 *hemu_onoff);
++int hostapd_drv_mu_ctrl(struct hostapd_data *hapd);
++int hostapd_drv_mu_dump(struct hostapd_data *hapd, u8 *mu_onoff);
  
  #include "drivers/driver.h"
  
@@ -222,7 +222,7 @@
  	if (hostapd_drv_configure_edcca_threshold(hapd,
  						  hapd->iconf->edcca_threshold) < 0)
  		goto fail;
-+	if (hostapd_drv_hemu_ctrl(hapd) < 0)
++	if (hostapd_drv_mu_ctrl(hapd) < 0)
 +		goto fail;
  
  	wpa_printf(MSG_DEBUG, "%s: Setup of interface done.",
@@ -235,7 +235,7 @@
  	MTK_NL80211_VENDOR_SUBCMD_CSI_CTRL = 0xc2,
  	MTK_NL80211_VENDOR_SUBCMD_RFEATURE_CTRL = 0xc3,
  	MTK_NL80211_VENDOR_SUBCMD_WIRELESS_CTRL = 0xc4,
-+	MTK_NL80211_VENDOR_SUBCMD_HEMU_CTRL = 0xc5,
++	MTK_NL80211_VENDOR_SUBCMD_MU_CTRL = 0xc5,
 +	MTK_NL80211_VENDOR_SUBCMD_PHY_CAPA_CTRL= 0xc6,
  	MTK_NL80211_VENDOR_SUBCMD_EDCCA_CTRL = 0xc7,
  };
@@ -244,16 +244,16 @@
  		NUM_MTK_VENDOR_ATTRS_RFEATURE_CTRL - 1
  };
  
-+enum mtk_vendor_attr_hemu_ctrl {
-+	MTK_VENDOR_ATTR_HEMU_CTRL_UNSPEC,
++enum mtk_vendor_attr_mu_ctrl {
++	MTK_VENDOR_ATTR_MU_CTRL_UNSPEC,
 +
-+	MTK_VENDOR_ATTR_HEMU_CTRL_ONOFF,
-+	MTK_VENDOR_ATTR_HEMU_CTRL_DUMP,
++	MTK_VENDOR_ATTR_MU_CTRL_ONOFF,
++	MTK_VENDOR_ATTR_MU_CTRL_DUMP,
 +
 +	/* keep last */
-+	NUM_MTK_VENDOR_ATTRS_HEMU_CTRL,
-+	MTK_VENDOR_ATTR_HEMU_CTRL_MAX =
-+		NUM_MTK_VENDOR_ATTRS_HEMU_CTRL - 1
++	NUM_MTK_VENDOR_ATTRS_MU_CTRL,
++	MTK_VENDOR_ATTR_MU_CTRL_MAX =
++		NUM_MTK_VENDOR_ATTRS_MU_CTRL - 1
 +};
 +
 +
@@ -270,9 +270,9 @@
  	size_t unsol_bcast_probe_resp_tmpl_len;
 +
 +	/**
-+	 * hemu onoff=<val> (bitmap- UL MU-MIMO(bit3), DL MU-MIMO(bit2), UL OFDMA(bit1), DL OFDMA(bit0))
++	 * mu onoff=<val> (bitmap- UL MU-MIMO(bit3), DL MU-MIMO(bit2), UL OFDMA(bit1), DL OFDMA(bit0))
 +	 */
-+	u8 hemu_onoff;
++	u8 mu_onoff;
  };
  
  struct wpa_driver_mesh_bss_params {
@@ -282,12 +282,12 @@
  	int (*get_edcca)(void *priv, const u8 mode, u8 *value);
 +
 +	/**
-+	 * hemu_ctrl - ctrl on off for UL/DL MURU
++	 * mu_ctrl - ctrl on off for UL/DL MURU
 +	 * @priv: Private driver interface data
 +	 *
 +	 */
-+	 int (*hemu_ctrl)(void *priv, u8 hemu_onoff);
-+	 int (*hemu_dump)(void *priv, u8 *hemu_onoff);
++	 int (*mu_ctrl)(void *priv, u8 mu_onoff);
++	 int (*mu_dump)(void *priv, u8 *mu_onoff);
  };
  
  /**
@@ -300,7 +300,7 @@
  
  
 +#ifdef CONFIG_IEEE80211AX
-+static int nl80211_hemu_muruonoff(void *priv, u8 hemu_onoff)
++static int nl80211_mu_onoff(void *priv, u8 mu_onoff)
 +{
 +	struct i802_bss *bss = priv;
 +	struct wpa_driver_nl80211_data *drv = bss->drv;
@@ -308,41 +308,41 @@
 +	struct nlattr *data;
 +	int ret;
 +
-+	if (!drv->mtk_hemu_vendor_cmd_avail) {
++	if (!drv->mtk_mu_vendor_cmd_avail) {
 +		wpa_printf(MSG_INFO,
-+			   "nl80211: Driver does not support setting hemu control");
++			   "nl80211: Driver does not support setting mu control");
 +		return 0;
 +	}
 +
 +	if (!(msg = nl80211_drv_msg(drv, 0, NL80211_CMD_VENDOR)) ||
 +		nla_put_u32(msg, NL80211_ATTR_VENDOR_ID, OUI_MTK) ||
-+		nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD, MTK_NL80211_VENDOR_SUBCMD_HEMU_CTRL) ||
++		nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD, MTK_NL80211_VENDOR_SUBCMD_MU_CTRL) ||
 +		!(data = nla_nest_start(msg, NL80211_ATTR_VENDOR_DATA)) ||
-+		nla_put_u8(msg, MTK_VENDOR_ATTR_HEMU_CTRL_ONOFF, hemu_onoff)) {
++		nla_put_u8(msg, MTK_VENDOR_ATTR_MU_CTRL_ONOFF, mu_onoff)) {
 +		nlmsg_free(msg);
 +		return -ENOBUFS;
 +	}
 +	nla_nest_end(msg, data);
 +	ret = send_and_recv_msgs(drv, msg, NULL, NULL, NULL, NULL);
 +	if(ret){
-+		wpa_printf(MSG_ERROR, "Failed to set hemu_onoff. ret=%d (%s)", ret, strerror(-ret));
++		wpa_printf(MSG_ERROR, "Failed to set mu_onoff. ret=%d (%s)", ret, strerror(-ret));
 +	}
 +	return ret;
 +}
 +
 +
-+static int hemu_dump_handler(struct nl_msg *msg, void *arg)
++static int mu_dump_handler(struct nl_msg *msg, void *arg)
 +{
-+	u8 *hemu_onoff = (u8 *) arg;
++	u8 *mu_onoff = (u8 *) arg;
 +	struct nlattr *tb[NL80211_ATTR_MAX + 1];
-+	struct nlattr *tb_vendor[MTK_VENDOR_ATTR_HEMU_CTRL_MAX + 1];
++	struct nlattr *tb_vendor[MTK_VENDOR_ATTR_MU_CTRL_MAX + 1];
 +	struct genlmsghdr *gnlh = nlmsg_data(nlmsg_hdr(msg));
 +	struct nlattr *nl_vend, *attr;
 +
 +	static const struct nla_policy
-+	hemu_ctrl_policy[NUM_MTK_VENDOR_ATTRS_HEMU_CTRL + 1] = {
-+		[MTK_VENDOR_ATTR_HEMU_CTRL_ONOFF] = {.type = NLA_U8 },
-+		[MTK_VENDOR_ATTR_HEMU_CTRL_DUMP] = {.type = NLA_U8 },
++	mu_ctrl_policy[NUM_MTK_VENDOR_ATTRS_MU_CTRL + 1] = {
++		[MTK_VENDOR_ATTR_MU_CTRL_ONOFF] = {.type = NLA_U8 },
++		[MTK_VENDOR_ATTR_MU_CTRL_DUMP] = {.type = NLA_U8 },
 +	};
 +
 +	nla_parse(tb, NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0),
@@ -352,22 +352,22 @@
 +	if (!nl_vend)
 +		return NL_SKIP;
 +
-+	nla_parse(tb_vendor, MTK_VENDOR_ATTR_HEMU_CTRL_MAX,
++	nla_parse(tb_vendor, MTK_VENDOR_ATTR_MU_CTRL_MAX,
 +		  nla_data(nl_vend), nla_len(nl_vend), NULL);
 +
-+	attr = tb_vendor[MTK_VENDOR_ATTR_HEMU_CTRL_DUMP];
++	attr = tb_vendor[MTK_VENDOR_ATTR_MU_CTRL_DUMP];
 +	if (!attr) {
-+		wpa_printf(MSG_ERROR, "nl80211: cannot find MTK_VENDOR_ATTR_HEMU_CTRL_DUMP");
++		wpa_printf(MSG_ERROR, "nl80211: cannot find MTK_VENDOR_ATTR_MU_CTRL_DUMP");
 +		return NL_SKIP;
 +	}
 +
-+	*hemu_onoff = nla_get_u8(attr);
-+	wpa_printf(MSG_DEBUG, "nla_get hemu_onoff: %d\n", *hemu_onoff);
++	*mu_onoff = nla_get_u8(attr);
++	wpa_printf(MSG_DEBUG, "nla_get mu_onoff: %d\n", *mu_onoff);
 +
 +	return 0;
 +}
 +
-+static int nl80211_hemu_dump(void *priv, u8 *hemu_onoff)
++static int nl80211_mu_dump(void *priv, u8 *mu_onoff)
 +{
 +	struct i802_bss *bss = priv;
 +	struct wpa_driver_nl80211_data *drv = bss->drv;
@@ -375,15 +375,15 @@
 +	struct nlattr *attr;
 +	int ret;
 +
-+	if (!drv->mtk_hemu_vendor_cmd_avail) {
++	if (!drv->mtk_mu_vendor_cmd_avail) {
 +		wpa_printf(MSG_INFO,
-+			   "nl80211: Driver does not support setting hemu control");
++			   "nl80211: Driver does not support setting mu control");
 +		return 0;
 +	}
 +
 +	if (!(msg = nl80211_drv_msg(drv, NLM_F_DUMP, NL80211_CMD_VENDOR)) ||
 +		nla_put_u32(msg, NL80211_ATTR_VENDOR_ID, OUI_MTK) ||
-+		nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD, MTK_NL80211_VENDOR_SUBCMD_HEMU_CTRL)) {
++		nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD, MTK_NL80211_VENDOR_SUBCMD_MU_CTRL)) {
 +		nlmsg_free(msg);
 +		return -ENOBUFS;
 +	}
@@ -396,10 +396,10 @@
 +
 +	nla_nest_end(msg, attr);
 +
-+	ret = send_and_recv_msgs(drv, msg, hemu_dump_handler, hemu_onoff, NULL, NULL);
++	ret = send_and_recv_msgs(drv, msg, mu_dump_handler, mu_onoff, NULL, NULL);
 +
 +	if(ret){
-+		wpa_printf(MSG_ERROR, "Failed to get hemu_onoff. ret=%d (%s)", ret, strerror(-ret));
++		wpa_printf(MSG_ERROR, "Failed to get mu_onoff. ret=%d (%s)", ret, strerror(-ret));
 +	}
 +
 +	return ret;
@@ -414,8 +414,8 @@
  	.update_connect_params = nl80211_update_connection_params,
  	.send_external_auth_status = nl80211_send_external_auth_status,
  	.set_4addr_mode = nl80211_set_4addr_mode,
-+	.hemu_ctrl = nl80211_hemu_muruonoff,
-+	.hemu_dump = nl80211_hemu_dump,
++	.mu_ctrl = nl80211_mu_onoff,
++	.mu_dump = nl80211_mu_dump,
  #ifdef CONFIG_DPP
  	.dpp_listen = nl80211_dpp_listen,
  #endif /* CONFIG_DPP */
@@ -427,7 +427,7 @@
  	unsigned int brcm_do_acs:1;
  	unsigned int uses_6ghz:1;
  	unsigned int mtk_edcca_vendor_cmd_avail:1;
-+	unsigned int mtk_hemu_vendor_cmd_avail:1;
++	unsigned int mtk_mu_vendor_cmd_avail:1;
  
  	u64 vendor_scan_cookie;
  	u64 remain_on_chan_cookie;
@@ -439,8 +439,8 @@
  				case MTK_NL80211_VENDOR_SUBCMD_EDCCA_CTRL :
  					drv->mtk_edcca_vendor_cmd_avail = 1;
  					break;
-+				case MTK_NL80211_VENDOR_SUBCMD_HEMU_CTRL :
-+					drv->mtk_hemu_vendor_cmd_avail = 1;
++				case MTK_NL80211_VENDOR_SUBCMD_MU_CTRL :
++					drv->mtk_mu_vendor_cmd_avail = 1;
 +					break;
  				}
  			}
diff --git a/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0007-hostapd-mtk-Add-three-wire-PTA-ctrl-hostapd-vendor-c.patch b/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0007-hostapd-mtk-Add-three-wire-PTA-ctrl-hostapd-vendor-c.patch
index 4bc3fcd..8ca8c55 100644
--- a/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0007-hostapd-mtk-Add-three-wire-PTA-ctrl-hostapd-vendor-c.patch
+++ b/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0007-hostapd-mtk-Add-three-wire-PTA-ctrl-hostapd-vendor-c.patch
@@ -74,9 +74,9 @@
 index 4598737a3..a1d83e4ee 100644
 --- a/src/ap/ap_drv_ops.c
 +++ b/src/ap/ap_drv_ops.c
-@@ -1053,3 +1053,14 @@ int hostapd_drv_hemu_dump(struct hostapd_data *hapd, u8 *hemu_onoff)
+@@ -1053,3 +1053,14 @@ int hostapd_drv_mu_dump(struct hostapd_data *hapd, u8 *mu_onoff)
  		return 0;
- 	return hapd->driver->hemu_dump(hapd->drv_priv, hemu_onoff);
+ 	return hapd->driver->mu_dump(hapd->drv_priv, mu_onoff);
  }
 +
 +int hostapd_drv_three_wire_ctrl(struct hostapd_data *hapd)
@@ -95,8 +95,8 @@
 +++ b/src/ap/ap_drv_ops.h
 @@ -144,6 +144,7 @@ int hostapd_drv_configure_edcca_threshold(struct hostapd_data *hapd,
  int hostapd_drv_get_edcca(struct hostapd_data *hapd, const u8 mode, u8 *value);
- int hostapd_drv_hemu_ctrl(struct hostapd_data *hapd);
- int hostapd_drv_hemu_dump(struct hostapd_data *hapd, u8 *hemu_onoff);
+ int hostapd_drv_mu_ctrl(struct hostapd_data *hapd);
+ int hostapd_drv_mu_dump(struct hostapd_data *hapd, u8 *mu_onoff);
 +int hostapd_drv_three_wire_ctrl(struct hostapd_data *hapd);
  
  #include "drivers/driver.h"
@@ -107,7 +107,7 @@
 +++ b/src/ap/hostapd.c
 @@ -2304,6 +2304,8 @@ dfs_offload:
  		goto fail;
- 	if (hostapd_drv_hemu_ctrl(hapd) < 0)
+ 	if (hostapd_drv_mu_ctrl(hapd) < 0)
  		goto fail;
 +	if (hostapd_drv_three_wire_ctrl(hapd) < 0)
 +		goto fail;
@@ -119,7 +119,7 @@
 --- a/src/common/mtk_vendor.h
 +++ b/src/common/mtk_vendor.h
 @@ -13,6 +13,7 @@ enum mtk_nl80211_vendor_subcmds {
- 	MTK_NL80211_VENDOR_SUBCMD_HEMU_CTRL = 0xc5,
+ 	MTK_NL80211_VENDOR_SUBCMD_MU_CTRL = 0xc5,
  	MTK_NL80211_VENDOR_SUBCMD_PHY_CAPA_CTRL= 0xc6,
  	MTK_NL80211_VENDOR_SUBCMD_EDCCA_CTRL = 0xc7,
 +	MTK_NL80211_VENDOR_SUBCMD_3WIRE_CTRL = 0xc8
@@ -154,8 +154,8 @@
 +++ b/src/drivers/driver.h
 @@ -4693,6 +4693,14 @@ struct wpa_driver_ops {
  	 */
- 	 int (*hemu_ctrl)(void *priv, u8 hemu_onoff);
- 	 int (*hemu_dump)(void *priv, u8 *hemu_onoff);
+ 	 int (*mu_ctrl)(void *priv, u8 mu_onoff);
+ 	 int (*mu_dump)(void *priv, u8 *mu_onoff);
 +
 +	/**
 +	 * three_wire_ctrl - set three_wire_ctrl mode
@@ -223,7 +223,7 @@
 @@ -183,6 +183,7 @@ struct wpa_driver_nl80211_data {
  	unsigned int uses_6ghz:1;
  	unsigned int mtk_edcca_vendor_cmd_avail:1;
- 	unsigned int mtk_hemu_vendor_cmd_avail:1;
+ 	unsigned int mtk_mu_vendor_cmd_avail:1;
 +	unsigned int mtk_3wire_vendor_cmd_avail:1;
  
  	u64 vendor_scan_cookie;
@@ -233,8 +233,8 @@
 --- a/src/drivers/driver_nl80211_capa.c
 +++ b/src/drivers/driver_nl80211_capa.c
 @@ -1059,6 +1059,9 @@ static int wiphy_info_handler(struct nl_msg *msg, void *arg)
- 				case MTK_NL80211_VENDOR_SUBCMD_HEMU_CTRL :
- 					drv->mtk_hemu_vendor_cmd_avail = 1;
+ 				case MTK_NL80211_VENDOR_SUBCMD_MU_CTRL :
+ 					drv->mtk_mu_vendor_cmd_avail = 1;
  					break;
 +				case MTK_NL80211_VENDOR_SUBCMD_3WIRE_CTRL :
 +					drv->mtk_3wire_vendor_cmd_avail = 1;
diff --git a/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0008-hostapd-mtk-Add-hostapd-iBF-control.patch b/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0008-hostapd-mtk-Add-hostapd-iBF-control.patch
index 6bfe3d0..fc38b4f 100644
--- a/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0008-hostapd-mtk-Add-hostapd-iBF-control.patch
+++ b/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0008-hostapd-mtk-Add-hostapd-iBF-control.patch
@@ -38,7 +38,7 @@
 index 5f71aeea9..c881d3717 100644
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
-@@ -3498,6 +3498,30 @@ hostapd_ctrl_iface_get_hemu(struct hostapd_data *hapd, char *buf,
+@@ -3498,6 +3498,30 @@ hostapd_ctrl_iface_get_mu(struct hostapd_data *hapd, char *buf,
  }
  
  
@@ -71,8 +71,8 @@
  					      int reply_size,
 @@ -4055,6 +4079,8 @@ static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
  							  reply_size);
- 	} else if (os_strncmp(buf, "GET_HEMU", 8) == 0) {
- 		reply_len = hostapd_ctrl_iface_get_hemu(hapd, reply, reply_size);
+ 	} else if (os_strncmp(buf, "GET_MU", 6) == 0) {
+ 		reply_len = hostapd_ctrl_iface_get_mu(hapd, reply, reply_size);
 +	} else if (os_strncmp(buf, "GET_IBF", 7) == 0) {
 +		reply_len = hostapd_ctrl_iface_get_ibf(hapd, reply, reply_size);
  	} else {
@@ -165,8 +165,8 @@
 --- a/src/ap/ap_drv_ops.h
 +++ b/src/ap/ap_drv_ops.h
 @@ -145,6 +145,8 @@ int hostapd_drv_get_edcca(struct hostapd_data *hapd, const u8 mode, u8 *value);
- int hostapd_drv_hemu_ctrl(struct hostapd_data *hapd);
- int hostapd_drv_hemu_dump(struct hostapd_data *hapd, u8 *hemu_onoff);
+ int hostapd_drv_mu_ctrl(struct hostapd_data *hapd);
+ int hostapd_drv_mu_dump(struct hostapd_data *hapd, u8 *mu_onoff);
  int hostapd_drv_three_wire_ctrl(struct hostapd_data *hapd);
 +int hostapd_drv_ibf_ctrl(struct hostapd_data *hapd);
 +int hostapd_drv_ibf_dump(struct hostapd_data *hapd, u8 *ibf_enable);
@@ -191,7 +191,7 @@
 --- a/src/common/mtk_vendor.h
 +++ b/src/common/mtk_vendor.h
 @@ -13,7 +13,8 @@ enum mtk_nl80211_vendor_subcmds {
- 	MTK_NL80211_VENDOR_SUBCMD_HEMU_CTRL = 0xc5,
+ 	MTK_NL80211_VENDOR_SUBCMD_MU_CTRL = 0xc5,
  	MTK_NL80211_VENDOR_SUBCMD_PHY_CAPA_CTRL= 0xc6,
  	MTK_NL80211_VENDOR_SUBCMD_EDCCA_CTRL = 0xc7,
 -	MTK_NL80211_VENDOR_SUBCMD_3WIRE_CTRL = 0xc8
@@ -200,8 +200,8 @@
  };
  
  enum mtk_vendor_attr_edcca_ctrl {
-@@ -204,6 +205,38 @@ enum mtk_vendor_attr_hemu_ctrl {
- 		NUM_MTK_VENDOR_ATTRS_HEMU_CTRL - 1
+@@ -204,6 +205,38 @@ enum mtk_vendor_attr_mu_ctrl {
+ 		NUM_MTK_VENDOR_ATTRS_MU_CTRL - 1
  };
  
 +enum mtk_vendor_attr_ibf_ctrl {
@@ -244,9 +244,9 @@
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
 @@ -1628,6 +1628,11 @@ struct wpa_driver_ap_params {
- 	 * hemu onoff=<val> (bitmap- UL MU-MIMO(bit3), DL MU-MIMO(bit2), UL OFDMA(bit1), DL OFDMA(bit0))
+ 	 * mu onoff=<val> (bitmap- UL MU-MIMO(bit3), DL MU-MIMO(bit2), UL OFDMA(bit1), DL OFDMA(bit0))
  	 */
- 	u8 hemu_onoff;
+ 	u8 mu_onoff;
 +
 +	/**
 +	 * ibf_enable=<val>
@@ -406,7 +406,7 @@
 +++ b/src/drivers/driver_nl80211.h
 @@ -184,6 +184,7 @@ struct wpa_driver_nl80211_data {
  	unsigned int mtk_edcca_vendor_cmd_avail:1;
- 	unsigned int mtk_hemu_vendor_cmd_avail:1;
+ 	unsigned int mtk_mu_vendor_cmd_avail:1;
  	unsigned int mtk_3wire_vendor_cmd_avail:1;
 +	unsigned int mtk_ibf_vendor_cmd_avail:1;
  
diff --git a/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0010-hostapd-mtk-Add-DFS-and-ZWDFS-support.patch b/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0010-hostapd-mtk-Add-DFS-and-ZWDFS-support.patch
index 8a387a7..3237aa3 100644
--- a/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0010-hostapd-mtk-Add-DFS-and-ZWDFS-support.patch
+++ b/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0010-hostapd-mtk-Add-DFS-and-ZWDFS-support.patch
@@ -133,7 +133,7 @@
  					      char *buf, char *reply,
  					      int reply_size,
 @@ -4081,6 +4171,11 @@ static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
- 		reply_len = hostapd_ctrl_iface_get_hemu(hapd, reply, reply_size);
+ 		reply_len = hostapd_ctrl_iface_get_mu(hapd, reply, reply_size);
  	} else if (os_strncmp(buf, "GET_IBF", 7) == 0) {
  		reply_len = hostapd_ctrl_iface_get_ibf(hapd, reply, reply_size);
 +	} else if (os_strncmp(buf, "DFS_DETECT_MODE ", 16) == 0) {
diff --git a/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0011-hostapd-mtk-Add-amsdu-set-get-ctrl.patch b/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0011-hostapd-mtk-Add-amsdu-set-get-ctrl.patch
index ed796c1..dba90d1 100644
--- a/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0011-hostapd-mtk-Add-amsdu-set-get-ctrl.patch
+++ b/recipes-wifi/hostapd/files/patches-2.10.3/mtk-0011-hostapd-mtk-Add-amsdu-set-get-ctrl.patch
@@ -162,7 +162,7 @@
 index ab9aedcee..4406666fd 100644
 --- a/src/ap/ap_drv_ops.h
 +++ b/src/ap/ap_drv_ops.h
-@@ -147,6 +147,8 @@ int hostapd_drv_hemu_dump(struct hostapd_data *hapd, u8 *hemu_onoff);
+@@ -147,6 +147,8 @@ int hostapd_drv_mu_dump(struct hostapd_data *hapd, u8 *mu_onoff);
  int hostapd_drv_three_wire_ctrl(struct hostapd_data *hapd);
  int hostapd_drv_ibf_ctrl(struct hostapd_data *hapd);
  int hostapd_drv_ibf_dump(struct hostapd_data *hapd, u8 *ibf_enable);
@@ -374,7 +374,7 @@
 --- a/src/drivers/driver_nl80211.h
 +++ b/src/drivers/driver_nl80211.h
 @@ -185,6 +185,7 @@ struct wpa_driver_nl80211_data {
- 	unsigned int mtk_hemu_vendor_cmd_avail:1;
+ 	unsigned int mtk_mu_vendor_cmd_avail:1;
  	unsigned int mtk_3wire_vendor_cmd_avail:1;
  	unsigned int mtk_ibf_vendor_cmd_avail:1;
 +	unsigned int mtk_wireless_vendor_cmd_avail:1;
diff --git a/recipes-wifi/hostapd/files/patches-2.10.3/patches.inc b/recipes-wifi/hostapd/files/patches-2.10.3/patches.inc
index 8cda113..4a42f53 100644
--- a/recipes-wifi/hostapd/files/patches-2.10.3/patches.inc
+++ b/recipes-wifi/hostapd/files/patches-2.10.3/patches.inc
@@ -67,7 +67,7 @@
     file://mtk-0003-hostapd-mtk-add-support-for-runtime-set-in-band-disc.patch \
     file://mtk-0004-hostapd-mtk-Add-mtk_vendor.h.patch \
     file://mtk-0005-hostapd-mtk-Support-EDCCA-hostapd-configuration.patch \
-    file://mtk-0006-hostapd-mtk-Add-hostapd-HEMU-SET-GET-control.patch \
+    file://mtk-0006-hostapd-mtk-Add-hostapd-MU-SET-GET-control.patch \
     file://mtk-0007-hostapd-mtk-Add-three-wire-PTA-ctrl-hostapd-vendor-c.patch \
     file://mtk-0008-hostapd-mtk-Add-hostapd-iBF-control.patch \
     file://mtk-0009-hostapd-mtk-Do-not-include-HE-capab-IE-if-associated.patch \
diff --git a/recipes-wifi/hostapd/files/patches/mtk-0006-hostapd-mtk-Add-hostapd-HEMU-SET-GET-control.patch b/recipes-wifi/hostapd/files/patches/mtk-0006-hostapd-mtk-Add-hostapd-MU-SET-GET-control.patch
similarity index 71%
rename from recipes-wifi/hostapd/files/patches/mtk-0006-hostapd-mtk-Add-hostapd-HEMU-SET-GET-control.patch
rename to recipes-wifi/hostapd/files/patches/mtk-0006-hostapd-mtk-Add-hostapd-MU-SET-GET-control.patch
index 27e71da..07e0d6d 100644
--- a/recipes-wifi/hostapd/files/patches/mtk-0006-hostapd-mtk-Add-hostapd-HEMU-SET-GET-control.patch
+++ b/recipes-wifi/hostapd/files/patches/mtk-0006-hostapd-mtk-Add-hostapd-MU-SET-GET-control.patch
@@ -1,7 +1,7 @@
 From 4919444a2dc29c019ec92321109603763c732071 Mon Sep 17 00:00:00 2001
 From: TomLiu <tomml.liu@mediatek.com>
 Date: Tue, 9 Aug 2022 10:23:44 -0700
-Subject: [PATCH 06/15] hostapd: mtk: Add hostapd HEMU SET/GET control
+Subject: [PATCH 06/15] hostapd: mtk: Add hostapd MU SET/GET control
 
 ---
  hostapd/config_file.c             |   9 +++
@@ -27,15 +27,15 @@
  			return 1;
  		}
  		bss->unsol_bcast_probe_resp_interval = val;
-+	} else if (os_strcmp(buf, "hemu_onoff") == 0) {
++	} else if (os_strcmp(buf, "mu_onoff") == 0) {
 +		int val = atoi(pos);
 +		if (val < 0 || val > 15) {
 +			wpa_printf(MSG_ERROR,
-+				   "Line %d: invalid hemu_onoff value",
++				   "Line %d: invalid mu_onoff value",
 +				   line);
 +			return 1;
 +		}
-+		conf->hemu_onoff = val;
++		conf->mu_onoff = val;
  #endif /* CONFIG_IEEE80211AX */
  	} else if (os_strcmp(buf, "max_listen_interval") == 0) {
  		bss->max_listen_interval = atoi(pos);
@@ -48,7 +48,7 @@
  
  
 +static int
-+hostapd_ctrl_iface_set_hemu(struct hostapd_data *hapd, char *cmd,
++hostapd_ctrl_iface_set_mu(struct hostapd_data *hapd, char *cmd,
 +					 char *buf, size_t buflen)
 +{
 +	char *pos, *config, *value;
@@ -63,19 +63,19 @@
 +	value = pos;
 +
 +	if (os_strcmp(config, "onoff") == 0) {
-+		int hemu = atoi(value);
-+		if (hemu < 0 || hemu > 15) {
-+			wpa_printf(MSG_ERROR, "Invalid value for hemu");
++		int mu = atoi(value);
++		if (mu < 0 || mu > 15) {
++			wpa_printf(MSG_ERROR, "Invalid value for mu");
 +			return -1;
 +		}
-+		hapd->iconf->hemu_onoff = (u8) hemu;
++		hapd->iconf->mu_onoff = (u8) mu;
 +	} else {
 +		wpa_printf(MSG_ERROR,
-+			"Unsupported parameter %s for SET_HEMU", config);
++			"Unsupported parameter %s for SET_MU", config);
 +		return -1;
 +	}
 +
-+	if(hostapd_drv_hemu_ctrl(hapd) == 0) {
++	if(hostapd_drv_mu_ctrl(hapd) == 0) {
 +		return os_snprintf(buf, buflen, "OK\n");
 +	} else {
 +		return -1;
@@ -84,19 +84,19 @@
 +
 +
 +static int
-+hostapd_ctrl_iface_get_hemu(struct hostapd_data *hapd, char *buf,
++hostapd_ctrl_iface_get_mu(struct hostapd_data *hapd, char *buf,
 +					 size_t buflen)
 +{
-+	u8 hemu_onoff;
++	u8 mu_onoff;
 +	char *pos, *end;
 +
 +	pos = buf;
 +	end = buf + buflen;
 +
-+	if (hostapd_drv_hemu_dump(hapd, &hemu_onoff) == 0) {
-+		hapd->iconf->hemu_onoff = hemu_onoff;
++	if (hostapd_drv_mu_dump(hapd, &mu_onoff) == 0) {
++		hapd->iconf->mu_onoff = mu_onoff;
 +		return os_snprintf(pos, end - pos, "[hostapd_cli] = UL MU-MIMO: %d, DL MU-MIMO: %d, UL OFDMA: %d, DL OFDMA: %d\n",
-+			!!(hemu_onoff&BIT(3)), !!(hemu_onoff&BIT(2)), !!(hemu_onoff&BIT(1)), !!(hemu_onoff&BIT(0)));
++			!!(mu_onoff&BIT(3)), !!(mu_onoff&BIT(2)), !!(mu_onoff&BIT(1)), !!(mu_onoff&BIT(0)));
 +	} else {
 +		wpa_printf(MSG_INFO, "ctrl iface failed to call");
 +		return -1;
@@ -111,11 +111,11 @@
  	} else if (os_strncmp(buf, "GET_EDCCA ", 10) == 0) {
  		reply_len = hostapd_ctrl_iface_get_edcca(hapd, buf+10, reply,
  							  reply_size);
-+	} else if (os_strncmp(buf, "SET_HEMU ", 9) == 0) {
-+		reply_len = hostapd_ctrl_iface_set_hemu(hapd, buf+9, reply,
++	} else if (os_strncmp(buf, "SET_MU ", 7) == 0) {
++		reply_len = hostapd_ctrl_iface_set_mu(hapd, buf + 7, reply,
 +							  reply_size);
-+	} else if (os_strncmp(buf, "GET_HEMU", 8) == 0) {
-+		reply_len = hostapd_ctrl_iface_get_hemu(hapd, reply, reply_size);
++	} else if (os_strncmp(buf, "GET_MU", 6) == 0) {
++		reply_len = hostapd_ctrl_iface_get_mu(hapd, reply, reply_size);
  	} else {
  		os_memcpy(reply, "UNKNOWN COMMAND\n", 16);
  		reply_len = 16;
@@ -127,17 +127,17 @@
  }
  
  
-+static int hostapd_cli_cmd_set_hemu(struct wpa_ctrl *ctrl, int argc,
++static int hostapd_cli_cmd_set_mu(struct wpa_ctrl *ctrl, int argc,
 +					   char *argv[])
 +{
-+	return hostapd_cli_cmd(ctrl, "SET_HEMU", 1, argc, argv);
++	return hostapd_cli_cmd(ctrl, "SET_MU", 1, argc, argv);
 +}
 +
 +
-+static int hostapd_cli_cmd_get_hemu(struct wpa_ctrl *ctrl, int argc,
++static int hostapd_cli_cmd_get_mu(struct wpa_ctrl *ctrl, int argc,
 +					   char *argv[])
 +{
-+	return hostapd_cli_cmd(ctrl, "GET_HEMU", 0, NULL, NULL);
++	return hostapd_cli_cmd(ctrl, "GET_MU", 0, NULL, NULL);
 +}
 +
 +
@@ -148,10 +148,10 @@
  	  " = send FTM range request"},
  	{ "driver_flags", hostapd_cli_cmd_driver_flags, NULL,
  	  " = show supported driver flags"},
-+	{ "set_hemu", hostapd_cli_cmd_set_hemu, NULL,
++	{ "set_mu", hostapd_cli_cmd_set_mu, NULL,
 +		"<value> [0-15] bitmap- UL MU-MIMO(bit3), DL MU-MIMO(bit2), UL OFDMA(bit1), DL OFDMA(bit0)"},
-+	{ "get_hemu", hostapd_cli_cmd_get_hemu, NULL,
-+		" = show hemu onoff value in 0-15 bitmap"},
++	{ "get_mu", hostapd_cli_cmd_get_mu, NULL,
++		" = show mu onoff value in 0-15 bitmap"},
  #ifdef CONFIG_DPP
  	{ "dpp_qr_code", hostapd_cli_cmd_dpp_qr_code, NULL,
  	  "report a scanned DPP URI from a QR Code" },
@@ -163,7 +163,7 @@
  	conf->he_6ghz_max_ampdu_len_exp = 7;
  	conf->he_6ghz_rx_ant_pat = 1;
  	conf->he_6ghz_tx_ant_pat = 1;
-+	conf->hemu_onoff = 13;
++	conf->mu_onoff = 13;
  #endif /* CONFIG_IEEE80211AX */
  
  	/* The third octet of the country string uses an ASCII space character
@@ -175,7 +175,7 @@
  	u8 he_6ghz_rx_ant_pat;
  	u8 he_6ghz_tx_ant_pat;
  	u8 he_6ghz_reg_pwr_type;
-+	u8 hemu_onoff;
++	u8 mu_onoff;
  #endif /* CONFIG_IEEE80211AX */
  
  	/* VHT enable/disable config from CHAN_SWITCH */
@@ -188,18 +188,18 @@
  	return hapd->driver->get_edcca(hapd->drv_priv, mode, value);
  }
 +
-+int hostapd_drv_hemu_ctrl(struct hostapd_data *hapd)
++int hostapd_drv_mu_ctrl(struct hostapd_data *hapd)
 +{
-+	if (!hapd->driver || !hapd->driver->hemu_ctrl)
++	if (!hapd->driver || !hapd->driver->mu_ctrl)
 +		return 0;
-+	return hapd->driver->hemu_ctrl(hapd->drv_priv, hapd->iconf->hemu_onoff);
++	return hapd->driver->mu_ctrl(hapd->drv_priv, hapd->iconf->mu_onoff);
 +}
 +
-+int hostapd_drv_hemu_dump(struct hostapd_data *hapd, u8 *hemu_onoff)
++int hostapd_drv_mu_dump(struct hostapd_data *hapd, u8 *mu_onoff)
 +{
-+	if (!hapd->driver || !hapd->driver->hemu_dump)
++	if (!hapd->driver || !hapd->driver->mu_dump)
 +		return 0;
-+	return hapd->driver->hemu_dump(hapd->drv_priv, hemu_onoff);
++	return hapd->driver->mu_dump(hapd->drv_priv, mu_onoff);
 +}
 diff --git a/src/ap/ap_drv_ops.h b/src/ap/ap_drv_ops.h
 index 70a99f406..bca39c502 100644
@@ -209,8 +209,8 @@
  int hostapd_drv_configure_edcca_threshold(struct hostapd_data *hapd,
  					  const int *threshold);
  int hostapd_drv_get_edcca(struct hostapd_data *hapd, const u8 mode, u8 *value);
-+int hostapd_drv_hemu_ctrl(struct hostapd_data *hapd);
-+int hostapd_drv_hemu_dump(struct hostapd_data *hapd, u8 *hemu_onoff);
++int hostapd_drv_mu_ctrl(struct hostapd_data *hapd);
++int hostapd_drv_mu_dump(struct hostapd_data *hapd, u8 *mu_onoff);
  
  #include "drivers/driver.h"
  
@@ -222,7 +222,7 @@
  	if (hostapd_drv_configure_edcca_threshold(hapd,
  						  hapd->iconf->edcca_threshold) < 0)
  		goto fail;
-+	if (hostapd_drv_hemu_ctrl(hapd) < 0)
++	if (hostapd_drv_mu_ctrl(hapd) < 0)
 +		goto fail;
  
  	wpa_printf(MSG_DEBUG, "%s: Setup of interface done.",
@@ -235,7 +235,7 @@
  	MTK_NL80211_VENDOR_SUBCMD_CSI_CTRL = 0xc2,
  	MTK_NL80211_VENDOR_SUBCMD_RFEATURE_CTRL = 0xc3,
  	MTK_NL80211_VENDOR_SUBCMD_WIRELESS_CTRL = 0xc4,
-+	MTK_NL80211_VENDOR_SUBCMD_HEMU_CTRL = 0xc5,
++	MTK_NL80211_VENDOR_SUBCMD_MU_CTRL = 0xc5,
 +	MTK_NL80211_VENDOR_SUBCMD_PHY_CAPA_CTRL= 0xc6,
  	MTK_NL80211_VENDOR_SUBCMD_EDCCA_CTRL = 0xc7,
  };
@@ -244,16 +244,16 @@
  		NUM_MTK_VENDOR_ATTRS_RFEATURE_CTRL - 1
  };
  
-+enum mtk_vendor_attr_hemu_ctrl {
-+	MTK_VENDOR_ATTR_HEMU_CTRL_UNSPEC,
++enum mtk_vendor_attr_mu_ctrl {
++	MTK_VENDOR_ATTR_MU_CTRL_UNSPEC,
 +
-+	MTK_VENDOR_ATTR_HEMU_CTRL_ONOFF,
-+	MTK_VENDOR_ATTR_HEMU_CTRL_DUMP,
++	MTK_VENDOR_ATTR_MU_CTRL_ONOFF,
++	MTK_VENDOR_ATTR_MU_CTRL_DUMP,
 +
 +	/* keep last */
-+	NUM_MTK_VENDOR_ATTRS_HEMU_CTRL,
-+	MTK_VENDOR_ATTR_HEMU_CTRL_MAX =
-+		NUM_MTK_VENDOR_ATTRS_HEMU_CTRL - 1
++	NUM_MTK_VENDOR_ATTRS_MU_CTRL,
++	MTK_VENDOR_ATTR_MU_CTRL_MAX =
++		NUM_MTK_VENDOR_ATTRS_MU_CTRL - 1
 +};
 +
 +
@@ -270,9 +270,9 @@
  	size_t unsol_bcast_probe_resp_tmpl_len;
 +
 +	/**
-+	 * hemu onoff=<val> (bitmap- UL MU-MIMO(bit3), DL MU-MIMO(bit2), UL OFDMA(bit1), DL OFDMA(bit0))
++	 * mu onoff=<val> (bitmap- UL MU-MIMO(bit3), DL MU-MIMO(bit2), UL OFDMA(bit1), DL OFDMA(bit0))
 +	 */
-+	u8 hemu_onoff;
++	u8 mu_onoff;
  };
  
  struct wpa_driver_mesh_bss_params {
@@ -282,12 +282,12 @@
  	int (*get_edcca)(void *priv, const u8 mode, u8 *value);
 +
 +	/**
-+	 * hemu_ctrl - ctrl on off for UL/DL MURU
++	 * mu_ctrl - ctrl on off for UL/DL MURU
 +	 * @priv: Private driver interface data
 +	 *
 +	 */
-+	 int (*hemu_ctrl)(void *priv, u8 hemu_onoff);
-+	 int (*hemu_dump)(void *priv, u8 *hemu_onoff);
++	 int (*mu_ctrl)(void *priv, u8 mu_onoff);
++	 int (*mu_dump)(void *priv, u8 *mu_onoff);
  };
  
  /**
@@ -300,7 +300,7 @@
  
  
 +#ifdef CONFIG_IEEE80211AX
-+static int nl80211_hemu_muruonoff(void *priv, u8 hemu_onoff)
++static int nl80211_mu_onoff(void *priv, u8 mu_onoff)
 +{
 +	struct i802_bss *bss = priv;
 +	struct wpa_driver_nl80211_data *drv = bss->drv;
@@ -308,41 +308,41 @@
 +	struct nlattr *data;
 +	int ret;
 +
-+	if (!drv->mtk_hemu_vendor_cmd_avail) {
++	if (!drv->mtk_mu_vendor_cmd_avail) {
 +		wpa_printf(MSG_INFO,
-+			   "nl80211: Driver does not support setting hemu control");
++			   "nl80211: Driver does not support setting mu control");
 +		return 0;
 +	}
 +
 +	if (!(msg = nl80211_drv_msg(drv, 0, NL80211_CMD_VENDOR)) ||
 +		nla_put_u32(msg, NL80211_ATTR_VENDOR_ID, OUI_MTK) ||
-+		nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD, MTK_NL80211_VENDOR_SUBCMD_HEMU_CTRL) ||
++		nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD, MTK_NL80211_VENDOR_SUBCMD_MU_CTRL) ||
 +		!(data = nla_nest_start(msg, NL80211_ATTR_VENDOR_DATA)) ||
-+		nla_put_u8(msg, MTK_VENDOR_ATTR_HEMU_CTRL_ONOFF, hemu_onoff)) {
++		nla_put_u8(msg, MTK_VENDOR_ATTR_MU_CTRL_ONOFF, mu_onoff)) {
 +		nlmsg_free(msg);
 +		return -ENOBUFS;
 +	}
 +	nla_nest_end(msg, data);
 +	ret = send_and_recv_msgs(drv, msg, NULL, NULL, NULL, NULL);
 +	if(ret){
-+		wpa_printf(MSG_ERROR, "Failed to set hemu_onoff. ret=%d (%s)", ret, strerror(-ret));
++		wpa_printf(MSG_ERROR, "Failed to set mu_onoff. ret=%d (%s)", ret, strerror(-ret));
 +	}
 +	return ret;
 +}
 +
 +
-+static int hemu_dump_handler(struct nl_msg *msg, void *arg)
++static int mu_dump_handler(struct nl_msg *msg, void *arg)
 +{
-+	u8 *hemu_onoff = (u8 *) arg;
++	u8 *mu_onoff = (u8 *) arg;
 +	struct nlattr *tb[NL80211_ATTR_MAX + 1];
-+	struct nlattr *tb_vendor[MTK_VENDOR_ATTR_HEMU_CTRL_MAX + 1];
++	struct nlattr *tb_vendor[MTK_VENDOR_ATTR_MU_CTRL_MAX + 1];
 +	struct genlmsghdr *gnlh = nlmsg_data(nlmsg_hdr(msg));
 +	struct nlattr *nl_vend, *attr;
 +
 +	static const struct nla_policy
-+	hemu_ctrl_policy[NUM_MTK_VENDOR_ATTRS_HEMU_CTRL + 1] = {
-+		[MTK_VENDOR_ATTR_HEMU_CTRL_ONOFF] = {.type = NLA_U8 },
-+		[MTK_VENDOR_ATTR_HEMU_CTRL_DUMP] = {.type = NLA_U8 },
++	mu_ctrl_policy[NUM_MTK_VENDOR_ATTRS_MU_CTRL + 1] = {
++		[MTK_VENDOR_ATTR_MU_CTRL_ONOFF] = {.type = NLA_U8 },
++		[MTK_VENDOR_ATTR_MU_CTRL_DUMP] = {.type = NLA_U8 },
 +	};
 +
 +	nla_parse(tb, NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0),
@@ -352,22 +352,22 @@
 +	if (!nl_vend)
 +		return NL_SKIP;
 +
-+	nla_parse(tb_vendor, MTK_VENDOR_ATTR_HEMU_CTRL_MAX,
++	nla_parse(tb_vendor, MTK_VENDOR_ATTR_MU_CTRL_MAX,
 +		  nla_data(nl_vend), nla_len(nl_vend), NULL);
 +
-+	attr = tb_vendor[MTK_VENDOR_ATTR_HEMU_CTRL_DUMP];
++	attr = tb_vendor[MTK_VENDOR_ATTR_MU_CTRL_DUMP];
 +	if (!attr) {
-+		wpa_printf(MSG_ERROR, "nl80211: cannot find MTK_VENDOR_ATTR_HEMU_CTRL_DUMP");
++		wpa_printf(MSG_ERROR, "nl80211: cannot find MTK_VENDOR_ATTR_MU_CTRL_DUMP");
 +		return NL_SKIP;
 +	}
 +
-+	*hemu_onoff = nla_get_u8(attr);
-+	wpa_printf(MSG_DEBUG, "nla_get hemu_onoff: %d\n", *hemu_onoff);
++	*mu_onoff = nla_get_u8(attr);
++	wpa_printf(MSG_DEBUG, "nla_get mu_onoff: %d\n", *mu_onoff);
 +
 +	return 0;
 +}
 +
-+static int nl80211_hemu_dump(void *priv, u8 *hemu_onoff)
++static int nl80211_mu_dump(void *priv, u8 *mu_onoff)
 +{
 +	struct i802_bss *bss = priv;
 +	struct wpa_driver_nl80211_data *drv = bss->drv;
@@ -375,15 +375,15 @@
 +	struct nlattr *attr;
 +	int ret;
 +
-+	if (!drv->mtk_hemu_vendor_cmd_avail) {
++	if (!drv->mtk_mu_vendor_cmd_avail) {
 +		wpa_printf(MSG_INFO,
-+			   "nl80211: Driver does not support setting hemu control");
++			   "nl80211: Driver does not support setting mu control");
 +		return 0;
 +	}
 +
 +	if (!(msg = nl80211_drv_msg(drv, NLM_F_DUMP, NL80211_CMD_VENDOR)) ||
 +		nla_put_u32(msg, NL80211_ATTR_VENDOR_ID, OUI_MTK) ||
-+		nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD, MTK_NL80211_VENDOR_SUBCMD_HEMU_CTRL)) {
++		nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD, MTK_NL80211_VENDOR_SUBCMD_MU_CTRL)) {
 +		nlmsg_free(msg);
 +		return -ENOBUFS;
 +	}
@@ -396,10 +396,10 @@
 +
 +	nla_nest_end(msg, attr);
 +
-+	ret = send_and_recv_msgs(drv, msg, hemu_dump_handler, hemu_onoff, NULL, NULL);
++	ret = send_and_recv_msgs(drv, msg, mu_dump_handler, mu_onoff, NULL, NULL);
 +
 +	if(ret){
-+		wpa_printf(MSG_ERROR, "Failed to get hemu_onoff. ret=%d (%s)", ret, strerror(-ret));
++		wpa_printf(MSG_ERROR, "Failed to get mu_onoff. ret=%d (%s)", ret, strerror(-ret));
 +	}
 +
 +	return ret;
@@ -414,8 +414,8 @@
  	.update_connect_params = nl80211_update_connection_params,
  	.send_external_auth_status = nl80211_send_external_auth_status,
  	.set_4addr_mode = nl80211_set_4addr_mode,
-+	.hemu_ctrl = nl80211_hemu_muruonoff,
-+	.hemu_dump = nl80211_hemu_dump,
++	.mu_ctrl = nl80211_mu_onoff,
++	.mu_dump = nl80211_mu_dump,
  #ifdef CONFIG_DPP
  	.dpp_listen = nl80211_dpp_listen,
  #endif /* CONFIG_DPP */
@@ -427,7 +427,7 @@
  	unsigned int brcm_do_acs:1;
  	unsigned int uses_6ghz:1;
  	unsigned int mtk_edcca_vendor_cmd_avail:1;
-+	unsigned int mtk_hemu_vendor_cmd_avail:1;
++	unsigned int mtk_mu_vendor_cmd_avail:1;
  
  	u64 vendor_scan_cookie;
  	u64 remain_on_chan_cookie;
@@ -439,8 +439,8 @@
  				case MTK_NL80211_VENDOR_SUBCMD_EDCCA_CTRL :
  					drv->mtk_edcca_vendor_cmd_avail = 1;
  					break;
-+				case MTK_NL80211_VENDOR_SUBCMD_HEMU_CTRL :
-+					drv->mtk_hemu_vendor_cmd_avail = 1;
++				case MTK_NL80211_VENDOR_SUBCMD_MU_CTRL :
++					drv->mtk_mu_vendor_cmd_avail = 1;
 +					break;
  				}
  			}
diff --git a/recipes-wifi/hostapd/files/patches/mtk-0007-hostapd-mtk-Add-three-wire-PTA-ctrl-hostapd-vendor-c.patch b/recipes-wifi/hostapd/files/patches/mtk-0007-hostapd-mtk-Add-three-wire-PTA-ctrl-hostapd-vendor-c.patch
index 4bc3fcd..8ca8c55 100644
--- a/recipes-wifi/hostapd/files/patches/mtk-0007-hostapd-mtk-Add-three-wire-PTA-ctrl-hostapd-vendor-c.patch
+++ b/recipes-wifi/hostapd/files/patches/mtk-0007-hostapd-mtk-Add-three-wire-PTA-ctrl-hostapd-vendor-c.patch
@@ -74,9 +74,9 @@
 index 4598737a3..a1d83e4ee 100644
 --- a/src/ap/ap_drv_ops.c
 +++ b/src/ap/ap_drv_ops.c
-@@ -1053,3 +1053,14 @@ int hostapd_drv_hemu_dump(struct hostapd_data *hapd, u8 *hemu_onoff)
+@@ -1053,3 +1053,14 @@ int hostapd_drv_mu_dump(struct hostapd_data *hapd, u8 *mu_onoff)
  		return 0;
- 	return hapd->driver->hemu_dump(hapd->drv_priv, hemu_onoff);
+ 	return hapd->driver->mu_dump(hapd->drv_priv, mu_onoff);
  }
 +
 +int hostapd_drv_three_wire_ctrl(struct hostapd_data *hapd)
@@ -95,8 +95,8 @@
 +++ b/src/ap/ap_drv_ops.h
 @@ -144,6 +144,7 @@ int hostapd_drv_configure_edcca_threshold(struct hostapd_data *hapd,
  int hostapd_drv_get_edcca(struct hostapd_data *hapd, const u8 mode, u8 *value);
- int hostapd_drv_hemu_ctrl(struct hostapd_data *hapd);
- int hostapd_drv_hemu_dump(struct hostapd_data *hapd, u8 *hemu_onoff);
+ int hostapd_drv_mu_ctrl(struct hostapd_data *hapd);
+ int hostapd_drv_mu_dump(struct hostapd_data *hapd, u8 *mu_onoff);
 +int hostapd_drv_three_wire_ctrl(struct hostapd_data *hapd);
  
  #include "drivers/driver.h"
@@ -107,7 +107,7 @@
 +++ b/src/ap/hostapd.c
 @@ -2304,6 +2304,8 @@ dfs_offload:
  		goto fail;
- 	if (hostapd_drv_hemu_ctrl(hapd) < 0)
+ 	if (hostapd_drv_mu_ctrl(hapd) < 0)
  		goto fail;
 +	if (hostapd_drv_three_wire_ctrl(hapd) < 0)
 +		goto fail;
@@ -119,7 +119,7 @@
 --- a/src/common/mtk_vendor.h
 +++ b/src/common/mtk_vendor.h
 @@ -13,6 +13,7 @@ enum mtk_nl80211_vendor_subcmds {
- 	MTK_NL80211_VENDOR_SUBCMD_HEMU_CTRL = 0xc5,
+ 	MTK_NL80211_VENDOR_SUBCMD_MU_CTRL = 0xc5,
  	MTK_NL80211_VENDOR_SUBCMD_PHY_CAPA_CTRL= 0xc6,
  	MTK_NL80211_VENDOR_SUBCMD_EDCCA_CTRL = 0xc7,
 +	MTK_NL80211_VENDOR_SUBCMD_3WIRE_CTRL = 0xc8
@@ -154,8 +154,8 @@
 +++ b/src/drivers/driver.h
 @@ -4693,6 +4693,14 @@ struct wpa_driver_ops {
  	 */
- 	 int (*hemu_ctrl)(void *priv, u8 hemu_onoff);
- 	 int (*hemu_dump)(void *priv, u8 *hemu_onoff);
+ 	 int (*mu_ctrl)(void *priv, u8 mu_onoff);
+ 	 int (*mu_dump)(void *priv, u8 *mu_onoff);
 +
 +	/**
 +	 * three_wire_ctrl - set three_wire_ctrl mode
@@ -223,7 +223,7 @@
 @@ -183,6 +183,7 @@ struct wpa_driver_nl80211_data {
  	unsigned int uses_6ghz:1;
  	unsigned int mtk_edcca_vendor_cmd_avail:1;
- 	unsigned int mtk_hemu_vendor_cmd_avail:1;
+ 	unsigned int mtk_mu_vendor_cmd_avail:1;
 +	unsigned int mtk_3wire_vendor_cmd_avail:1;
  
  	u64 vendor_scan_cookie;
@@ -233,8 +233,8 @@
 --- a/src/drivers/driver_nl80211_capa.c
 +++ b/src/drivers/driver_nl80211_capa.c
 @@ -1059,6 +1059,9 @@ static int wiphy_info_handler(struct nl_msg *msg, void *arg)
- 				case MTK_NL80211_VENDOR_SUBCMD_HEMU_CTRL :
- 					drv->mtk_hemu_vendor_cmd_avail = 1;
+ 				case MTK_NL80211_VENDOR_SUBCMD_MU_CTRL :
+ 					drv->mtk_mu_vendor_cmd_avail = 1;
  					break;
 +				case MTK_NL80211_VENDOR_SUBCMD_3WIRE_CTRL :
 +					drv->mtk_3wire_vendor_cmd_avail = 1;
diff --git a/recipes-wifi/hostapd/files/patches/mtk-0008-hostapd-mtk-Add-hostapd-iBF-control.patch b/recipes-wifi/hostapd/files/patches/mtk-0008-hostapd-mtk-Add-hostapd-iBF-control.patch
index 6bfe3d0..fc38b4f 100644
--- a/recipes-wifi/hostapd/files/patches/mtk-0008-hostapd-mtk-Add-hostapd-iBF-control.patch
+++ b/recipes-wifi/hostapd/files/patches/mtk-0008-hostapd-mtk-Add-hostapd-iBF-control.patch
@@ -38,7 +38,7 @@
 index 5f71aeea9..c881d3717 100644
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
-@@ -3498,6 +3498,30 @@ hostapd_ctrl_iface_get_hemu(struct hostapd_data *hapd, char *buf,
+@@ -3498,6 +3498,30 @@ hostapd_ctrl_iface_get_mu(struct hostapd_data *hapd, char *buf,
  }
  
  
@@ -71,8 +71,8 @@
  					      int reply_size,
 @@ -4055,6 +4079,8 @@ static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
  							  reply_size);
- 	} else if (os_strncmp(buf, "GET_HEMU", 8) == 0) {
- 		reply_len = hostapd_ctrl_iface_get_hemu(hapd, reply, reply_size);
+ 	} else if (os_strncmp(buf, "GET_MU", 6) == 0) {
+ 		reply_len = hostapd_ctrl_iface_get_mu(hapd, reply, reply_size);
 +	} else if (os_strncmp(buf, "GET_IBF", 7) == 0) {
 +		reply_len = hostapd_ctrl_iface_get_ibf(hapd, reply, reply_size);
  	} else {
@@ -165,8 +165,8 @@
 --- a/src/ap/ap_drv_ops.h
 +++ b/src/ap/ap_drv_ops.h
 @@ -145,6 +145,8 @@ int hostapd_drv_get_edcca(struct hostapd_data *hapd, const u8 mode, u8 *value);
- int hostapd_drv_hemu_ctrl(struct hostapd_data *hapd);
- int hostapd_drv_hemu_dump(struct hostapd_data *hapd, u8 *hemu_onoff);
+ int hostapd_drv_mu_ctrl(struct hostapd_data *hapd);
+ int hostapd_drv_mu_dump(struct hostapd_data *hapd, u8 *mu_onoff);
  int hostapd_drv_three_wire_ctrl(struct hostapd_data *hapd);
 +int hostapd_drv_ibf_ctrl(struct hostapd_data *hapd);
 +int hostapd_drv_ibf_dump(struct hostapd_data *hapd, u8 *ibf_enable);
@@ -191,7 +191,7 @@
 --- a/src/common/mtk_vendor.h
 +++ b/src/common/mtk_vendor.h
 @@ -13,7 +13,8 @@ enum mtk_nl80211_vendor_subcmds {
- 	MTK_NL80211_VENDOR_SUBCMD_HEMU_CTRL = 0xc5,
+ 	MTK_NL80211_VENDOR_SUBCMD_MU_CTRL = 0xc5,
  	MTK_NL80211_VENDOR_SUBCMD_PHY_CAPA_CTRL= 0xc6,
  	MTK_NL80211_VENDOR_SUBCMD_EDCCA_CTRL = 0xc7,
 -	MTK_NL80211_VENDOR_SUBCMD_3WIRE_CTRL = 0xc8
@@ -200,8 +200,8 @@
  };
  
  enum mtk_vendor_attr_edcca_ctrl {
-@@ -204,6 +205,38 @@ enum mtk_vendor_attr_hemu_ctrl {
- 		NUM_MTK_VENDOR_ATTRS_HEMU_CTRL - 1
+@@ -204,6 +205,38 @@ enum mtk_vendor_attr_mu_ctrl {
+ 		NUM_MTK_VENDOR_ATTRS_MU_CTRL - 1
  };
  
 +enum mtk_vendor_attr_ibf_ctrl {
@@ -244,9 +244,9 @@
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
 @@ -1628,6 +1628,11 @@ struct wpa_driver_ap_params {
- 	 * hemu onoff=<val> (bitmap- UL MU-MIMO(bit3), DL MU-MIMO(bit2), UL OFDMA(bit1), DL OFDMA(bit0))
+ 	 * mu onoff=<val> (bitmap- UL MU-MIMO(bit3), DL MU-MIMO(bit2), UL OFDMA(bit1), DL OFDMA(bit0))
  	 */
- 	u8 hemu_onoff;
+ 	u8 mu_onoff;
 +
 +	/**
 +	 * ibf_enable=<val>
@@ -406,7 +406,7 @@
 +++ b/src/drivers/driver_nl80211.h
 @@ -184,6 +184,7 @@ struct wpa_driver_nl80211_data {
  	unsigned int mtk_edcca_vendor_cmd_avail:1;
- 	unsigned int mtk_hemu_vendor_cmd_avail:1;
+ 	unsigned int mtk_mu_vendor_cmd_avail:1;
  	unsigned int mtk_3wire_vendor_cmd_avail:1;
 +	unsigned int mtk_ibf_vendor_cmd_avail:1;
  
diff --git a/recipes-wifi/hostapd/files/patches/mtk-0010-hostapd-mtk-Add-DFS-and-ZWDFS-support.patch b/recipes-wifi/hostapd/files/patches/mtk-0010-hostapd-mtk-Add-DFS-and-ZWDFS-support.patch
index 8a387a7..3237aa3 100644
--- a/recipes-wifi/hostapd/files/patches/mtk-0010-hostapd-mtk-Add-DFS-and-ZWDFS-support.patch
+++ b/recipes-wifi/hostapd/files/patches/mtk-0010-hostapd-mtk-Add-DFS-and-ZWDFS-support.patch
@@ -133,7 +133,7 @@
  					      char *buf, char *reply,
  					      int reply_size,
 @@ -4081,6 +4171,11 @@ static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
- 		reply_len = hostapd_ctrl_iface_get_hemu(hapd, reply, reply_size);
+ 		reply_len = hostapd_ctrl_iface_get_mu(hapd, reply, reply_size);
  	} else if (os_strncmp(buf, "GET_IBF", 7) == 0) {
  		reply_len = hostapd_ctrl_iface_get_ibf(hapd, reply, reply_size);
 +	} else if (os_strncmp(buf, "DFS_DETECT_MODE ", 16) == 0) {
diff --git a/recipes-wifi/hostapd/files/patches/mtk-0011-hostapd-mtk-Add-amsdu-set-get-ctrl.patch b/recipes-wifi/hostapd/files/patches/mtk-0011-hostapd-mtk-Add-amsdu-set-get-ctrl.patch
index ed796c1..dba90d1 100644
--- a/recipes-wifi/hostapd/files/patches/mtk-0011-hostapd-mtk-Add-amsdu-set-get-ctrl.patch
+++ b/recipes-wifi/hostapd/files/patches/mtk-0011-hostapd-mtk-Add-amsdu-set-get-ctrl.patch
@@ -162,7 +162,7 @@
 index ab9aedcee..4406666fd 100644
 --- a/src/ap/ap_drv_ops.h
 +++ b/src/ap/ap_drv_ops.h
-@@ -147,6 +147,8 @@ int hostapd_drv_hemu_dump(struct hostapd_data *hapd, u8 *hemu_onoff);
+@@ -147,6 +147,8 @@ int hostapd_drv_mu_dump(struct hostapd_data *hapd, u8 *mu_onoff);
  int hostapd_drv_three_wire_ctrl(struct hostapd_data *hapd);
  int hostapd_drv_ibf_ctrl(struct hostapd_data *hapd);
  int hostapd_drv_ibf_dump(struct hostapd_data *hapd, u8 *ibf_enable);
@@ -374,7 +374,7 @@
 --- a/src/drivers/driver_nl80211.h
 +++ b/src/drivers/driver_nl80211.h
 @@ -185,6 +185,7 @@ struct wpa_driver_nl80211_data {
- 	unsigned int mtk_hemu_vendor_cmd_avail:1;
+ 	unsigned int mtk_mu_vendor_cmd_avail:1;
  	unsigned int mtk_3wire_vendor_cmd_avail:1;
  	unsigned int mtk_ibf_vendor_cmd_avail:1;
 +	unsigned int mtk_wireless_vendor_cmd_avail:1;
diff --git a/recipes-wifi/hostapd/files/patches/patches.inc b/recipes-wifi/hostapd/files/patches/patches.inc
index 4fcacd1..b2f59b9 100644
--- a/recipes-wifi/hostapd/files/patches/patches.inc
+++ b/recipes-wifi/hostapd/files/patches/patches.inc
@@ -67,7 +67,7 @@
     file://mtk-0003-hostapd-mtk-add-support-for-runtime-set-in-band-disc.patch \
     file://mtk-0004-hostapd-mtk-Add-mtk_vendor.h.patch \
     file://mtk-0005-hostapd-mtk-Support-EDCCA-hostapd-configuration.patch \
-    file://mtk-0006-hostapd-mtk-Add-hostapd-HEMU-SET-GET-control.patch \
+    file://mtk-0006-hostapd-mtk-Add-hostapd-MU-SET-GET-control.patch \
     file://mtk-0007-hostapd-mtk-Add-three-wire-PTA-ctrl-hostapd-vendor-c.patch \
     file://mtk-0008-hostapd-mtk-Add-hostapd-iBF-control.patch \
     file://mtk-0009-hostapd-mtk-Do-not-include-HE-capab-IE-if-associated.patch \