[wifi][MR3.0][wpa]Feture:update wpa_suppicant

Change-Id: I66e2d48fde6219dad924220e5f8496e4ae7a9690
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/hostapd/.config b/src/lynq/packages/thirdpart/lynq-wg870/hostapd/.config
index 04f0b34..1c02c16 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/hostapd/.config
+++ b/src/lynq/packages/thirdpart/lynq-wg870/hostapd/.config
@@ -177,7 +177,7 @@
 # Note: This is experimental and work in progress. The definitions are still
 # subject to change and this should not be expected to interoperate with the
 # final IEEE 802.11ax version.
-#CONFIG_IEEE80211AX=y
+CONFIG_IEEE80211AX=y
 
 # Remove debugging code that is printing out debug messages to stdout.
 # This can be used to reduce the size of the hostapd considerably if debugging
@@ -204,7 +204,7 @@
 #CONFIG_NO_RADIUS=y
 
 # Remove support for VLANs
-#CONFIG_NO_VLAN=y
+CONFIG_NO_VLAN=y
 
 # Enable support for fully dynamic VLANs. This enables hostapd to
 # automatically create bridge and VLAN interfaces if necessary.
@@ -409,3 +409,11 @@
 
 # Host SAE via Vendor commands
 #CONFIG_WL_SAE=y
+
+# Enable all IFX/Cypress changes
+CONFIG_DRIVER_NL80211_IFX=y
+
+# WPA3 Enterprise Mode
+CONFIG_SUITEB192=y
+CONFIG_SUITEB=y
+#
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/hostapd/config_file.c b/src/lynq/packages/thirdpart/lynq-wg870/hostapd/config_file.c
index 1226191..0d3c6fd 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/hostapd/config_file.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/hostapd/config_file.c
@@ -700,14 +700,6 @@
 		*end = '\0';
 		if (os_strcmp(start, "WPA-PSK") == 0)
 			val |= WPA_KEY_MGMT_PSK;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-		else if (os_strcmp(start, "WAPI-PSK") == 0) {
-			val |= WPA_KEY_MGMT_WAPI_PSK;
-			wpa_printf(MSG_INFO, "%s: key mgmt is set to WPA_KEY_MGMT_WAPI_PSK\n", __FUNCTION__);
-		}
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		else if (os_strcmp(start, "WPA-EAP") == 0)
 			val |= WPA_KEY_MGMT_IEEE8021X;
 #ifdef CONFIG_IEEE80211R_AP
@@ -2252,7 +2244,6 @@
 		pw->password[end - val] = '\0';
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef WL_SAE
 	if (strlen(pw->password) < 8 || strlen(pw->password) > 63) {
 		wpa_printf(MSG_ERROR, "invalid SAE passphrase length %d (expected 8..63)",
@@ -2260,7 +2251,6 @@
 		goto fail;
 	}
 #endif /* WL_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_SAE_PK
 	if (pw->pk &&
 #ifdef CONFIG_TESTING_OPTIONS
@@ -2860,7 +2850,6 @@
 	} else if (os_strcmp(buf, "wpa_ptk_rekey") == 0) {
 		bss->wpa_ptk_rekey = atoi(pos);
 	} else if (os_strcmp(buf, "wpa_deny_ptk0_rekey") == 0) {
-#if defined(CONFIG_DRIVER_NL80211_IFX)
 		/* Fix compilation error for unsigned enum comparision */
 		int val = atoi(pos);
 
@@ -2871,16 +2860,6 @@
 			return 1;
 		}
 		bss->wpa_deny_ptk0_rekey = val;
-#else
-		bss->wpa_deny_ptk0_rekey = atoi(pos);
-		if (bss->wpa_deny_ptk0_rekey < 0 ||
-		    bss->wpa_deny_ptk0_rekey > 2) {
-			wpa_printf(MSG_ERROR,
-				   "Line %d: Invalid wpa_deny_ptk0_rekey=%d; allowed range 0..2",
-				   line, bss->wpa_deny_ptk0_rekey);
-			return 1;
-		}
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	} else if (os_strcmp(buf, "wpa_group_update_count") == 0) {
 		char *endp;
 		unsigned long val = strtoul(pos, &endp, 0);
@@ -3441,12 +3420,10 @@
 		conf->require_ht = atoi(pos);
 	} else if (os_strcmp(buf, "obss_interval") == 0) {
 		conf->obss_interval = atoi(pos);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_RSN_CNTRS
 	} else if (os_strcmp(buf, "replay_cntrs") == 0) {
 		bss->replay_cntrs = atoi(pos);
 #endif /* CONFIG_BRCM_RSN_CNTRS */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_IEEE80211AC
 	} else if (os_strcmp(buf, "ieee80211ac") == 0) {
 		conf->ieee80211ac = atoi(pos);
@@ -4472,12 +4449,10 @@
 #endif /* CONFIG_OWE */
 	} else if (os_strcmp(buf, "coloc_intf_reporting") == 0) {
 		bss->coloc_intf_reporting = atoi(pos);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_SUPP_ACS
 	} else if (os_strcmp(buf, "autochannel_enabled") == 0) {
 		conf->autochannel_enabled = atoi(pos);
 #endif /* BRCM_SUPP_ACS */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	} else if (os_strcmp(buf, "multi_ap") == 0) {
 		int val = atoi(pos);
 
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/hostapd/ctrl_iface.c b/src/lynq/packages/thirdpart/lynq-wg870/hostapd/ctrl_iface.c
index f11fa78..0cb7607 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/hostapd/ctrl_iface.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/hostapd/ctrl_iface.c
@@ -2770,7 +2770,6 @@
 	return ret;
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_VENDOR_IE
 static int hostapd_ctrl_iface_vendor_ie(struct hostapd_data *hapd, char *cmd)
 {
@@ -2852,7 +2851,6 @@
 	return ret;
 }
 #endif /* ANDROID || BCM_LINUX_BUILD */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static int hostapd_ctrl_iface_eapol_reauth(struct hostapd_data *hapd,
 					   const char *cmd)
@@ -3654,13 +3652,11 @@
 	} else if (os_strncmp(buf, "VENDOR ", 7) == 0) {
 		reply_len = hostapd_ctrl_iface_vendor(hapd, buf + 7, reply,
 						      reply_size);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_VENDOR_IE
 	} else if (os_strncmp(buf, "VENDOR_IE ", 10) == 0) {
 		if (hostapd_ctrl_iface_vendor_ie(hapd, buf + 10))
 			reply_len = -1;
 #endif /* CONFIG_BRCM_VENDOR_IE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	} else if (os_strcmp(buf, "ERP_FLUSH") == 0) {
 		ieee802_1x_erp_flush(hapd);
 #ifdef RADIUS_SERVER
@@ -3754,13 +3750,11 @@
 				&hapd->conf->deny_mac,
 				&hapd->conf->num_deny_mac);
 		}
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(ANDROID) || defined(BCM_LINUX_BUILD)
         } else if (os_strncmp(buf, "DRIVER ", 7) == 0) {
                 reply_len = hostapd_driver_cmd(hapd, buf + 7, reply,
                                                       reply_size);
 #endif /* ANDROID || BCM_LINUX_BUILD */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_DPP
 	} else if (os_strncmp(buf, "DPP_QR_CODE ", 12) == 0) {
 		res = hostapd_dpp_qr_code(hapd, buf + 12);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/hostapd/ctrl_iface.h b/src/lynq/packages/thirdpart/lynq-wg870/hostapd/ctrl_iface.h
index a4d013e..4430c9f 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/hostapd/ctrl_iface.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/hostapd/ctrl_iface.h
@@ -14,12 +14,10 @@
 void hostapd_ctrl_iface_deinit(struct hostapd_data *hapd);
 int hostapd_global_ctrl_iface_init(struct hapd_interfaces *interface);
 void hostapd_global_ctrl_iface_deinit(struct hapd_interfaces *interface);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(ANDROID) || defined(BCM_LINUX_BUILD)
 int hostapd_driver_cmd(struct hostapd_data *hapd, char *cmd,
 			char *buf, size_t buflen);
 #endif /* ANDROID || BCM_LINUX_BUILD */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #else /* CONFIG_NO_CTRL_IFACE */
 static inline int hostapd_ctrl_iface_init(struct hostapd_data *hapd)
 {
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/hostapd/defconfig_auto b/src/lynq/packages/thirdpart/lynq-wg870/hostapd/defconfig_auto
index 805741e..1c02c16 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/hostapd/defconfig_auto
+++ b/src/lynq/packages/thirdpart/lynq-wg870/hostapd/defconfig_auto
@@ -177,7 +177,7 @@
 # Note: This is experimental and work in progress. The definitions are still
 # subject to change and this should not be expected to interoperate with the
 # final IEEE 802.11ax version.
-#CONFIG_IEEE80211AX=y
+CONFIG_IEEE80211AX=y
 
 # Remove debugging code that is printing out debug messages to stdout.
 # This can be used to reduce the size of the hostapd considerably if debugging
@@ -204,7 +204,7 @@
 #CONFIG_NO_RADIUS=y
 
 # Remove support for VLANs
-#CONFIG_NO_VLAN=y
+CONFIG_NO_VLAN=y
 
 # Enable support for fully dynamic VLANs. This enables hostapd to
 # automatically create bridge and VLAN interfaces if necessary.
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/hostapd/hostapd_cli.c b/src/lynq/packages/thirdpart/lynq-wg870/hostapd/hostapd_cli.c
index 37e010f..58d92a5 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/hostapd/hostapd_cli.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/hostapd/hostapd_cli.c
@@ -1244,7 +1244,6 @@
 }
 
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_VENDOR_IE
 static int hostapd_cli_cmd_vendor_ie(struct wpa_ctrl *ctrl, int argc, char *argv[])
 {
@@ -1261,7 +1260,6 @@
 	return wpa_ctrl_command(ctrl, cmd);
 }
 #endif /* CONFIG_BRCM_VENDOR_IE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 static int hostapd_cli_cmd_erp_flush(struct wpa_ctrl *ctrl, int argc,
 				     char *argv[])
 {
@@ -1269,7 +1267,6 @@
 }
 
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(ANDROID) || defined(BCM_LINUX_BUILD)
 static int hostapd_cli_cmd_driver(struct wpa_ctrl *ctrl, int argc, char *argv[])
 {
@@ -1290,7 +1287,6 @@
 	return wpa_ctrl_command(ctrl, cmd);
 }
 #endif /* ANDROID || BCM_LINUX_BUILD */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 static int hostapd_cli_cmd_log_level(struct wpa_ctrl *ctrl, int argc,
 				     char *argv[])
 {
@@ -1704,14 +1700,12 @@
 	  " = send FTM range request"},
 	{ "driver_flags", hostapd_cli_cmd_driver_flags, NULL,
 	  " = show supported driver flags"},
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_VENDOR_IE
 	{ "vendor_ie", hostapd_cli_cmd_vendor_ie, NULL, NULL },
 #endif /* CONFIG_BRCM_VENDOR_IE */
 #if defined(ANDROID) || defined(BCM_LINUX_BUILD)
 	{ "driver", hostapd_cli_cmd_driver, NULL, NULL },
 #endif /* ANDROID || BCM_LINUX_BUILD */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_DPP
 	{ "dpp_qr_code", hostapd_cli_cmd_dpp_qr_code, NULL,
 	  "report a scanned DPP URI from a QR Code" },
@@ -2139,11 +2133,7 @@
 		printf("%s\n\n%s\n\n", hostapd_cli_version, cli_license);
 	}
 
-#if defined(CONFIG_DRIVER_NL80211_IFX)  && defined(WAPI_AP)
-        if (eloop_init(NULL))
-#else
 	if (eloop_init())
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI_AP */
 		return -1;
 
 	for (;;) {
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/hostapd/main.c b/src/lynq/packages/thirdpart/lynq-wg870/hostapd/main.c
index fa42160..7e385d6 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/hostapd/main.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/hostapd/main.c
@@ -30,11 +30,9 @@
 #include "config_file.h"
 #include "eap_register.h"
 #include "ctrl_iface.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 #include "hidl.h"
 #endif /* CONFIG_CTRL_IFACE_HIDL */
-#endif /*CONFIG_DRIVER_NL80211_IFX */
 
 
 struct hapd_global {
@@ -218,7 +216,6 @@
 		return -1;
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_SUPP_ACS
 	if (iface->conf->autochannel_enabled) {
 		char buf[64];
@@ -245,7 +242,6 @@
 		}
 	}
 #endif /* BRCM_SUPP_ACS */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (hapd->driver->get_capa &&
 	    hapd->driver->get_capa(hapd->drv_priv, &capa) == 0) {
 		struct wowlan_triggers *triggs;
@@ -378,11 +374,7 @@
 		return -1;
 	}
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI_AP)
-	if (eloop_init(NULL)) {
-#else
 	if (eloop_init()) {
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI_AP */
 		wpa_printf(MSG_ERROR, "Failed to initialize event loop");
 		return -1;
 	}
@@ -801,17 +793,11 @@
 		}
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifndef CONFIG_CTRL_IFACE_HIDL
 	if (optind == argc && interfaces.global_iface_path == NULL &&
 	    num_bss_configs == 0)
 		usage();
 #endif /* CONFIG_CTRL_IFACE_HIDL */
-#else
-	if (optind == argc && interfaces.global_iface_path == NULL &&
-	    num_bss_configs == 0)
-		usage();
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	wpa_msg_register_ifname_cb(hostapd_msg_ifname_cb);
 
@@ -932,14 +918,12 @@
 			goto out;
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
         if (hostapd_hidl_init(&interfaces)) {
                 wpa_printf(MSG_ERROR, "Failed to initialize HIDL interface");
                 goto out;
         }
 #endif /* CONFIG_CTRL_IFACE_HIDL */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	hostapd_global_ctrl_iface_init(&interfaces);
 
 	if (hostapd_global_run(&interfaces, daemonize, pid_file)) {
@@ -950,11 +934,9 @@
 	ret = 0;
 
  out:
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
         hostapd_hidl_deinit(&interfaces);
 #endif /* CONFIG_CTRL_IFACE_HIDL */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	hostapd_global_ctrl_iface_deinit(&interfaces);
 	/* Deinitialize all interfaces */
 	for (i = 0; i < interfaces.count; i++) {
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/hs20/client/oma_dm_client.c b/src/lynq/packages/thirdpart/lynq-wg870/hs20/client/oma_dm_client.c
index bcd68b8..1a72a79 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/hs20/client/oma_dm_client.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/hs20/client/oma_dm_client.c
@@ -1109,12 +1109,6 @@
 			os_free(locuri);
 			xml_node_get_text_free(ctx->xml, value);
 			resp_needed = 1;
-#if 0 /* TODO: MUST support */
-		} else if (os_strcasecmp(name, "Delete") == 0) {
-#endif
-#if 0 /* TODO: MUST support */
-		} else if (os_strcasecmp(name, "Sequence") == 0) {
-#endif
 		} else if (os_strcasecmp(name, "Final") == 0) {
 			final = 1;
 			break;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/libbcmdhd/driver_cmd_nl80211.c b/src/lynq/packages/thirdpart/lynq-wg870/libbcmdhd/driver_cmd_nl80211.c
index 2a275b9..68ee5b5 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/libbcmdhd/driver_cmd_nl80211.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/libbcmdhd/driver_cmd_nl80211.c
@@ -43,20 +43,9 @@
 #include "android_drv.h"
 #endif
 
-#ifdef BCM_GENL
-#include <netlink/genl/genl.h>
-#include <netlink/genl/family.h>
-#include <netlink/genl/ctrl.h>
-#include <linux/rtnetlink.h>
-#endif /* BCM_GENL */
 
 #ifdef ANDROID_P2P
 /* If any feature requires enabling of BCM_GENL code, put it here */
-#ifdef BCM_SDO
-#ifndef BCM_GENL
-#define BCM_GENL
-#endif /* BCM_GENL */
-#endif /* BCM_SDO */
 #endif /* ANDROID_P2P */
 
 #ifndef IFF_LOWER_UP
@@ -77,14 +66,7 @@
 #define WPA_PS_DISABLED		1
 
 #define MAX_WPSP2PIE_CMD_SIZE		1024
-#ifdef BCM_MAP_SDCMDS_2_SDOCMDS
-#define SD_REQ_ASCII_HEADER_LEN 11			//space after P2P_SD_REQ  is included
-#define MAC_ADDR_ASCII_LEN 18				//space after Mac address is included
-#endif
 
-#ifdef BRCM_DRV_ROAM
-#define MAX_NUM_SUITES	10
-#endif /* BRCM_DRV_ROAM */
 
 typedef struct android_wifi_priv_cmd {
 	char *buf;
@@ -147,74 +129,7 @@
 					struct i802_bss *bss, int,  char *,
 					size_t len, int vendor_id);
 
-#if defined(BCM_GENL) && defined(BCM_GENL_UNICAST)
-/* Only required, if you need to support GENL UNICAST*/
-static int wpa_driver_set_supplicant_pid(void *priv);
-#endif /* BCM_GENL && BCM_GENL_UNICAST */
 
-#ifdef BCM_GENL
-struct family_data {
-        const char *group;
-        int id;
-};
-
-extern int nl_get_multicast_id(void *priv,
-                               const char *family, const char *group);
-/* attributes (variables): the index in this enum is used as a reference for the type,
- *             userspace application has to indicate the corresponding type
- *             the policy is used for security considerations
- */
-enum {
-        BCM_EVENT_UNSPEC,
-        BCM_EVENT_SVC_FOUND,
-        BCM_EVENT_DEV_FOUND,
-        BCM_EVENT_DEV_LOST,
-	BCM_EVENT_DEV_BT_WIFI_HO_REQ,
-        BCM_EVENT_MAX
-};
-
-enum {
-        BCM_GENL_ATTR_UNSPEC,
-        BCM_GENL_ATTR_STRING,
-        BCM_GENL_ATTR_MSG,
-        __BCM_GENL_ATTR_MAX,
-};
-
-#define BCM_GENL_ATTR_MAX (__BCM_GENL_ATTR_MAX - 1)
-
-/* commands: enumeration of all commands (functions),
- * used by userspace application to identify command to be ececuted
- */
-enum {
-        BCM_GENL_CMD_UNSPEC,
-        BCM_GENL_CMD_MSG,
-        __BCM_GENL_CMD_MAX,
-};
-#define BCM_GENL_CMD_MAX (__BCM_GENL_CMD_MAX - 1)
-
-typedef struct bcm_event_hdr {
-	u16 type;
-	u16 len;
-} bcm_hdr_t;
-
-typedef struct bcm_dev_info {
-        u16 band;
-        u16 freq;
-        s16 rssi;
-        u16 ie_len;
-        u8 bssid[ETH_ALEN];
-} bcm_dev_info_t;
-
-static int wpa_driver_handle_attr_data(struct wpa_driver_nl80211_data *drv,
-					char *data, unsigned int len);
-int wpa_driver_register_genl(void *priv);
-int wpa_driver_unregister_genl(void *priv);
-static int family_handler(struct nl_msg *msg, void *arg);
-static int no_seq_check(struct nl_msg *msg, void *arg);
-#define GENLMSG_DATA(glh) ((char *)(NLMSG_DATA(glh) + GENL_HDRLEN))
-#define GENLMSG_PAYLOAD(glh) ((char *)(NLMSG_PAYLOAD(glh, 0) - GENL_HDRLEN))
-#define NLA_DATA(na) (void *) ((char *)(na) + NLA_HDRLEN)
-#endif /* BCM_GENL */
 
 static int drv_errors = 0;
 
@@ -307,43 +222,6 @@
 	return ret;
 }
 
-#if defined(BCM_GENL) && defined(BCM_GENL_UNICAST)
-static int wpa_driver_set_supplicant_pid(void *priv)
-{
-	struct i802_bss *bss = priv;
-	struct wpa_driver_nl80211_data *drv = bss->drv;
-	struct wpa_supplicant *wpa_s;
-	struct ifreq ifr;
-	android_wifi_priv_cmd priv_cmd;
-	int ret = 0, i = 0, bp;
-	char buf[30];
-	int len = 0;
-
-	memset(buf, 0, sizeof(buf));
-	sprintf(buf, "SUPP_PID %d", getpid());
-	len = strlen(buf);
-
-	memset(&ifr, 0, sizeof(ifr));
-	memset(&priv_cmd, 0, sizeof(priv_cmd));
-	os_memcpy(ifr.ifr_name, bss->ifname, IFNAMSIZ);
-
-	priv_cmd.buf = buf;
-	priv_cmd.used_len = len;
-	priv_cmd.total_len = len;
-	ifr.ifr_data = &priv_cmd;
-
-	ret = ioctl(drv->global->ioctl_sock, SIOCDEVPRIVATE + 1, &ifr);
-
-	if (ret < 0) {
-        wpa_printf(MSG_ERROR, "ioctl[SIOCSIWPRIV] SUPP_PID: %d", ret);
-        wpa_driver_send_hang_msg(drv);
-    } else {
-        drv_errors = 0;
-    }
-
-    return ret;
-}
-#endif /* BCM_GENL && BCM_GENL_UNICAST */
 static int wpa_driver_set_backgroundscan_params(void *priv)
 {
 	struct i802_bss *bss = priv;
@@ -424,173 +302,7 @@
 	return ret;
 }
 
-#ifdef BRCM_DRV_ROAM
-static int wpa_driver_set_roampref(void *priv)
-{
-	struct i802_bss *bss = priv;
-	struct wpa_driver_nl80211_data *drv = bss->drv;
-	struct wpa_supplicant *wpa_s;
-	struct ifreq ifr;
-	android_wifi_priv_cmd priv_cmd;
-	struct wpa_ssid *ssid;
-	int ret = 0;
-	char buf[MAX_DRV_CMD_SIZE];
-	int num_akm_suites = 0;
-	int num_ucipher_suites = 0;
-	u32 akm_suites[MAX_NUM_SUITES];
-	u32 ucipher_suites[MAX_NUM_SUITES];
-	int i, bp = 0;
 
-	if (drv == NULL) {
-		wpa_printf(MSG_ERROR, "%s: drv is NULL. Exiting", __func__);
-		return -1;
-	}
-	if (drv->ctx == NULL) {
-		wpa_printf(MSG_ERROR, "%s: drv->ctx is NULL. Exiting", __func__);
-		return -1;
-	}
-	wpa_s = (struct wpa_supplicant *)(drv->ctx);
-	if (wpa_s->conf == NULL) {
-		wpa_printf(MSG_ERROR, "%s: wpa_s->conf is NULL. Exiting", __func__);
-		return -1;
-	}
-	ssid = wpa_s->conf->ssid;
-
-	/* If the key_mgmt is set for open network only, then num_akm_suites=0 is passed
-	 * to the driver which in turn resets the previously configured join preferences.
-	 * If the key_mgmt is not set in *.conf file, then it gets set to default
-	 * (WPA_KEY_MGMT_PSK and WPA_KEY_MGMT_IEEE8021X).
-	 */
-#if defined(CONFIG_IEEE80211R) && defined(BRCM_VE)
-	if (ssid->key_mgmt & WPA_KEY_MGMT_FT_IEEE8021X)
-		akm_suites[num_akm_suites++] = WLAN_AKM_SUITE_FT_8021X;
-	if (ssid->key_mgmt & WPA_KEY_MGMT_FT_PSK)
-		akm_suites[num_akm_suites++] = WLAN_AKM_SUITE_FT_PSK;
-#endif /* CONFIG_IEEE80211 && BRCM_VE */
-	if (ssid->key_mgmt & WPA_KEY_MGMT_IEEE8021X)
-		akm_suites[num_akm_suites++] = WLAN_AKM_SUITE_8021X;
-	if (ssid->key_mgmt & WPA_KEY_MGMT_PSK)
-		akm_suites[num_akm_suites++] = WLAN_AKM_SUITE_PSK;
-
-	/* If the pairwise cipher is not set in *.conf file, then it gets set to
-	 * default (WPA_CIPHER_CCMP and WPA_CIPHER_TKIP).
-	 */
-	if (ssid->pairwise_cipher & WPA_CIPHER_CCMP)
-		ucipher_suites[num_ucipher_suites++] = WLAN_CIPHER_SUITE_CCMP;
-	if (ssid->pairwise_cipher & WPA_CIPHER_GCMP)
-		ucipher_suites[num_ucipher_suites++] = WLAN_CIPHER_SUITE_GCMP;
-	if (ssid->pairwise_cipher & WPA_CIPHER_TKIP)
-		ucipher_suites[num_ucipher_suites++] = WLAN_CIPHER_SUITE_TKIP;
-	if (ssid->pairwise_cipher & WPA_CIPHER_WEP104)
-		ucipher_suites[num_ucipher_suites++] = WLAN_CIPHER_SUITE_WEP104;
-	if (ssid->pairwise_cipher & WPA_CIPHER_WEP40)
-		ucipher_suites[num_ucipher_suites++] = WLAN_CIPHER_SUITE_WEP40;
-
-	if (num_ucipher_suites * num_akm_suites > 16) {
-		wpa_printf(MSG_ERROR, "%s: Exceeds max supported wpa configs ", __func__);
-		return -1;
-	}
-
-	os_memset(buf, 0, sizeof(buf));
-	bp += os_snprintf(&buf[bp], sizeof(buf), "%s ", "SET_ROAMPREF");
-	bp += os_snprintf(&buf[bp], sizeof(buf), "%02x ", num_akm_suites);
-	for (i = 0; i < num_akm_suites; i++)
-		bp += os_snprintf(&buf[bp], sizeof(buf), "%08x", akm_suites[i]);
-
-	bp += os_snprintf(&buf[bp], sizeof(buf), "%02x ", num_ucipher_suites);
-	for (i = 0; i < num_ucipher_suites; i++)
-		bp += os_snprintf(&buf[bp], sizeof(buf), "%08x", ucipher_suites[i]);
-
-	/* Increment the pointer to copy the null character to ioctl buffer */
-	bp++;
-
-	memset(&ifr, 0, sizeof(ifr));
-	memset(&priv_cmd, 0, sizeof(priv_cmd));
-	os_memcpy(ifr.ifr_name, bss->ifname, IFNAMSIZ);
-	priv_cmd.buf = buf;
-	priv_cmd.used_len = bp;
-	priv_cmd.total_len = bp;
-	ifr.ifr_data = (char *)&priv_cmd;
-
-	ret = ioctl(drv->global->ioctl_sock, SIOCDEVPRIVATE + 1, &ifr);
-	if (ret < 0) {
-		wpa_printf(MSG_ERROR, "ioctl[SIOCSIWPRIV] SET_ROAMPREF: %d", ret);
-		wpa_driver_send_hang_msg(drv);
-	} else {
-		drv_errors = 0;
-	}
-	return ret;
-}
-#endif /* BRCM_DRV_ROAM */
-
-#ifdef BCM_MAP_SDCMDS_2_SDOCMDS
-int wpa_driver_sdo_req(char *buf)
-{
-	unsigned char pos[50] = {0};
-	char temp[1000] = {0};
-	int len = 0;
-	if (os_strstr(buf, "upnp")) {
-		/* So the request after change in ctrl_iface.c must be in below string format for QR pair
-		 * P2P_SD_REQ xx:xx:xx:xx:xx:xx upnp 10 urn:schemas-upnp-org:service:ContentDirectory:1
-		 * And our format to driver should be P2P SD_REQ upnp 0x10urn:schemas-upnporg:service:Con
-		 * tentDirectory:1
-		 */
-		os_snprintf(temp, sizeof(temp), "%s%s", "upnp 0x10",
-				(buf + SD_REQ_ASCII_HEADER_LEN + MAC_ADDR_ASCII_LEN + os_strlen("upnp 10 ")));
-		/*"P2P_SD_REQ " is already in buf, so start copy to 11th position*/
-		os_snprintf(buf + 11, sizeof(temp), "%s", temp);
-	} else if (os_strstr(buf, "bonjour")) {
-		/* Code to be added Later*/
-	} else {
-		/* So the request after change in ctrl_iface.c must be in below ASCII format for QR pair
-		  * P2P_SD_REQ 00:00:00:00:00:00 320002011075726e3a736368656d61732d75706e702d6f72673a736
-		  * 572766963653a436f6e74656e744469726563746f72793a31
-		  * Lets calculate the buf len starting from the actual qr pair, so 29 bytes includes
-		  * P2P_SD_REQ and len, transactionid and proto */
-		len = os_strlen(buf + 29);
-		/*length should contains proto and transaction ID*/
-		if ((len & 1) || (len < 8))
-			return -1;
-		len /= 2;
-		/* we may get request with or without version so verifying for 4 byte only*/
-		if (hexstr2bin(buf + 29, pos, 4) < 0) {
-			wpa_printf(MSG_DEBUG, "error in len proto parsing");
-			return -1;
-		}
-		/* pos[3] is Transaction ID */
-		wpa_printf(MSG_DEBUG, "len %d proto %d transaction_id %d\n", pos[0], pos[2], pos[3]);
-		/* check is required to verify data exists or not */
-		if(pos[0] > 3) {
-			/* substracting 3 to exclude length and proto, Passing transaction ID and
-			 * version with request
-			 */
-			len -= 3;
-			/* we need to move 39 bytes to get start pointer of data buffer of P2P_SD_REQ
-			 * we reached upto this pointer after excluding initial 10 bytes which are length,
-			 * proto and transaction ID
-			 */
-			//transaction_id to be included
-			if (hexstr2bin((buf + (SD_REQ_ASCII_HEADER_LEN + MAC_ADDR_ASCII_LEN + 6)), pos, len) < 0) {
-				wpa_printf(MSG_DEBUG, "error in string parsing\n");
-				return -1;
-			}
-			wpa_printf(MSG_DEBUG, "pos:%s\n", pos);
-			os_snprintf(temp, sizeof(temp), "%s %x %s", "upnp", pos[3],  "0x10");
-		} else {
-			/*upnp*/
-			if(pos[2] == 2) {
-				wpa_printf(MSG_DEBUG, "upnp\n");
-				os_snprintf(temp, sizeof(temp), "%s %x", "upnp", pos[3]);
-			}
-		}
-		/*"P2P_SD_REQ " is already in buf, so start copy to 11th position*/
-		os_snprintf(buf + 11, sizeof(temp), "%s", temp);
-		wpa_printf(MSG_DEBUG, "Control interface command '%s'", buf);
-	}
-	return 0;
-}
-
-#endif /* BCM_MAP_SDCMDS_2_SDOCMDS */
 
 static int wpa_get_best_channels(void *drv_ctx, char *buf)
 {
@@ -703,22 +415,6 @@
 		}
 		return ret;
 	}
-#ifdef BCM_SDO
-		else if (os_strncasecmp(cmd, "P2P_SD_REQ", 10) == 0) {
-#ifdef BCM_MAP_SDCMDS_2_SDOCMDS
-			wpa_driver_sdo_req(cmd);
-#endif /* BCM_MAP_SDCMDS_2_SDOCMDS */
-		} else if ((os_strncasecmp(cmd, "P2P_SD_FIND", 11) == 0) ||
-			(os_strncasecmp(cmd, "P2P_SD_LISTEN", 13) == 0)) {
-			u8 channel = 0;
-			char tmp[250] = {0};
-			channel = wpas_get_listen_channel(drv->ctx);
-			os_snprintf(tmp, sizeof(tmp), "%s%s%d", cmd, " chan=", channel);
-			os_snprintf(cmd, sizeof(tmp), "%s", tmp);
-			wpa_printf(MSG_DEBUG, "cmd:%s\n", cmd);
-            wpas_set_probe_resp_ies(drv->ctx);
-		}
-#endif /* BCM_SDO */
 
 		if (os_strcasecmp(cmd, "BGSCAN-START") == 0) {
 			ret = wpa_driver_set_backgroundscan_params(priv);
@@ -728,20 +424,7 @@
 			os_memcpy(buf, "PNOFORCE 1", 11);
 		} else if (os_strcasecmp(cmd, "BGSCAN-STOP") == 0) {
 			os_memcpy(buf, "PNOFORCE 0", 11);
-#ifdef BRCM_DRV_ROAM
-		} else if (os_strcasecmp(cmd, "SET_ROAMPREF") == 0) {
-			ret = wpa_driver_set_roampref(priv);
-			return ret;
-#endif /* BRCM_DRV_ROAM */
 		}
-#if defined(BCM_GENL) && defined(BCM_GENL_UNICAST)
-		else if (os_strcasecmp(cmd, "SET_SUPP_ID") == 0) {
-			if((ret = wpa_driver_set_supplicant_pid(bss)) < 0) {
-				wpa_printf(MSG_ERROR, "libbcmdhd: GENL will not be enabled");
-				return ret;
-			}
-		}
-#endif /* BCM_GENL && BCM_GENL_UNICAST */
 		else {
 			os_memcpy(buf, cmd, strlen(cmd) + 1);
 		}
@@ -764,13 +447,6 @@
 		if (os_strncasecmp(cmd, "COUNTRY", 7) == 0) {
 			wpa_supplicant_event(drv->ctx, EVENT_CHANNEL_LIST_CHANGED,
 			     NULL);
-#if !defined(HOSTAPD) && defined(BCM_SDO)
-		} else if ((os_strncasecmp(cmd, "P2P_SD_FIND", 11) == 0) ||
-			(os_strncasecmp(cmd, "P2P_SD_LISTEN", 13) == 0)) {
-			 wpas_enable_dd_offload(drv->ctx, 1);
-		} else if ((os_strncasecmp(cmd, "P2P_SD_STOP", 11) == 0)){
-			 wpas_enable_dd_offload(drv->ctx, 0);
-#endif /* !HOSTAPD && BCM_SDO */
 		} else if (os_strcasecmp(cmd, "GET_BEST_CHANNELS") == 0) {
 			wpa_get_best_channels(drv->ctx, buf);
 		} else if (os_strncasecmp(cmd, "SETBAND", 7) == 0) {
@@ -878,14 +554,6 @@
 
 	wpa_printf(MSG_INFO, "libbcmdhd: priv_lib_init");
 
-#ifdef BCM_GENL
-	if((ret = wpa_driver_register_genl(global)) < 0) {
-		/* GENL init failed. Driver probably doesn't have the GENL support
-		 * But don't fail the supplicant/hostapd initialization.
-		 */
-		wpa_printf(MSG_ERROR, "libbcmdhd: GENL will not be enabled");
-	}
-#endif /* BCM_GENL */
 
     return 0;
 }
@@ -894,478 +562,6 @@
 {
 	wpa_printf(MSG_INFO, "libbcmdhd: priv_lib_deinit");
 
-#ifdef BCM_GENL
-	wpa_driver_unregister_genl(global);
-#endif /* BCM_GENL */
 
     return 0;
 }
-
-#ifdef BCM_GENL /* GENERIC NETLINK RECEIVE PATH */
-static int no_seq_check(struct nl_msg *msg, void *arg)
-{
-	return NL_OK;
-}
-
-static void wpa_driver_recv_genl(int sock, void *eloop_ctx, void *handle)
-{
-	struct nl80211_global *global = eloop_ctx;
-
-        wpa_printf(MSG_ERROR, "BCM-GENL event available");
-
-	if(global->event_sock)
-			nl_recvmsgs(global->event_sock, nl_socket_get_cb(global->event_sock));
-	else
-			wpa_printf(MSG_ERROR, "BCM-GENL event on wrong driver interface");
-}
-
-static int wpa_driver_handle_svc_found(struct wpa_driver_nl80211_data *drv, char *data, u32 len)
-{
-	u16	frag_no = 0;
-	u16 more_frag = 0;
-	sdo_hdr_t *hdr;
-	char *proto = NULL;
-	char *data_ptr = data + sizeof(sdo_hdr_t);
-	u8 first_frag = 0;
-	sd_tlv_t *tlv_hdr;
-	u8 *tlv_end = NULL;
-	union wpa_event_data event;
-	s32 tot_len = len - sizeof(sdo_hdr_t);
-	int tlv_num = 0;
-
-	if (!data || tot_len <= 0) {
-		wpa_printf(MSG_ERROR, "BCM-GENL [SERVICE-FOUND] Invalid length");
-		return -1;
-	}
-
-	tot_len = len - sizeof(sdo_hdr_t);
-	memset(&event, 0, sizeof(union wpa_event_data));
-	hdr = (sdo_hdr_t *)data;
-	tlv_hdr = (sd_tlv_t *) (data + sizeof(sdo_hdr_t));
-
-	if (!hdr || !tlv_hdr) {
-		wpa_printf(MSG_ERROR, "BCM-GENL [SERVICE-FOUND] Invalid header");
-		return -1;
-	}
-#if BCM_SDIO
-	event.p2p_sd_resp.sa =  hdr->addr;
-	event.p2p_sd_resp.update_indic =  hdr->update_ind;
-	event.p2p_sd_resp.tlvs = (const u8 *)tlv_hdr;
-#ifdef BCM_MAP_SDCMDS_2_SDOCMDS
-	/* Response should contains 5 bytes and we need not to handle the case of NULL
-	 * response so check if lenth is 5
-	 */
-	if (tot_len != 5) {
-		/*We are adding two in tlv_hdr to add transaction id and proto*/
-		wpa_printf(MSG_DEBUG, "hdr->update_ind = %d tlv_num = %d", hdr->update_ind, tlv_num);
-		event.p2p_sd_resp.tlvs_len = tlv_hdr->length + 2;
-	}
-#else
-	/* This is temperory code for Testing purpose. Will be removed. */
-	tlv_end = (u8 *)tlv_hdr + tot_len;
-	while (((u8 *)tlv_hdr < tlv_end) && (tlv_num++ < hdr->count)) {
-		wpa_printf(MSG_DEBUG, "BCM-GENL [SERVICE-FOUND] "MACSTR" tlv:%d %s",
-				MAC2STR(hdr->addr), tlv_num, tlv_hdr->data);
-		if (tlv_hdr->protocol == SVC_RPOTYPE_UPNP) {
-			/* Upnp version is in binary format */
-			u16 version = tlv_hdr->data[0];
-			wpa_msg(drv->ctx, MSG_INFO, P2P_EVENT_SERV_DISC_RESP MACSTR" %u 0x%x%s",
-				MAC2STR(hdr->addr), hdr->freq, version,(char *)(tlv_hdr->data + 1));
-		} else {
-			wpa_msg(drv->ctx, MSG_INFO, P2P_EVENT_SERV_DISC_RESP MACSTR" %u %s",
-				MAC2STR(hdr->addr), hdr->freq, (char *)tlv_hdr->data);
-		}
-		tlv_hdr = (sd_tlv_t *)(tlv_hdr->data + tlv_hdr->length);
-	}
-#endif /* BCM_MAP_SDCMDS_2_SDOCMDS */
-	wpa_supplicant_event(drv->ctx, EVENT_P2P_SD_RESPONSE, &event);
-#endif /* BCM_SDO */
-
-	return 0;
-}
-
-static int wpa_driver_handle_attr_data(struct wpa_driver_nl80211_data *drv,
-					char *data, unsigned int len)
-{
-	bcm_hdr_t *hdr;
-	u8 *addr = NULL;
-
-	if(len <= sizeof(bcm_hdr_t))
-		return -EINVAL;
-
-
-	hdr = (bcm_hdr_t *)data;
-
-	wpa_printf(MSG_DEBUG, "BCM-GENL event_type:%x event_len: %x", hdr->type, hdr->len);
-
-	wpa_hexdump(MSG_DEBUG, "Event_data dump:", (const u8 *)data, len);
-
-	switch (hdr->type) {
-#ifndef HOSTAPD
-#ifdef BCM_SDO
-		case BCM_EVENT_SVC_FOUND:
-			{
-				wpa_printf(MSG_DEBUG, "BCM-GENL [SERVICE-FOUND]");
-				if (wpa_driver_handle_svc_found(drv,
-							((char *)data + sizeof(bcm_hdr_t)), hdr->len) < 0)
-					return -1;
-				break;
-			}
-		case BCM_EVENT_DEV_FOUND:
-			{
-				struct wpa_scan_results scan_res;
-				struct wpa_scan_res *bss;
-				u16 tot_len = 0;
-				u8 *ptr = NULL;
-				bcm_dev_info_t *info = (bcm_dev_info_t *)((u8 *)data +
-							sizeof(bcm_hdr_t));
-
-				wpa_printf(MSG_DEBUG, "BCM-GENL [DEV-FOUND] band:%x Freq %d"
-					" rssi:%d ie_len:%x Mac:"MACSTR"\n",
-					info->band, info->freq, info->rssi,
-					 info->ie_len, MAC2STR(info->bssid));
-
-				if (info->ie_len > 2000) {
-					wpa_printf(MSG_ERROR, "Invalid IE_LEN");
-					return -EINVAL;
-				}
-
-				tot_len = sizeof(struct wpa_scan_res) + info->ie_len;
-				ptr = malloc(tot_len);
-				if(!ptr) {
-					wpa_printf(MSG_ERROR, "Malloc failed");
-					return -ENOMEM;
-				}
-				memset(ptr, 0, tot_len);
-
-				bss = (struct wpa_scan_res *)ptr;
-				memcpy(bss->bssid, info->bssid, ETH_ALEN);
-				bss->freq = info->freq;
-				bss->level = info->rssi;
-				bss->ie_len = info->ie_len;
-
-				/* Copy the IE's immeditately after the wpas_scan_res memory */
-				memcpy(ptr+sizeof(struct wpa_scan_res),
-					data+sizeof(bcm_hdr_t)+sizeof(bcm_dev_info_t),
-					info->ie_len);
-
-				scan_res.res = &bss;
-				scan_res.num = 1;
-
-				wpas_p2p_scan_res_handler(drv->ctx, &scan_res);
-
-				if(ptr)
-					free(ptr);
-				break;
-			}
-
-		case BCM_EVENT_DEV_LOST:
-			{
-				if(hdr->len != 6) {
-					wpa_printf(MSG_ERROR, "DEV_LOST: invalid data"
-						" (hdr_len != ETH_ALEN)");
-					return -EINVAL;
-
-				}
-
-				wpa_printf(MSG_DEBUG, "BCM-GENL [DEV-LOST] "MACSTR,
-					MAC2STR((u8 *)data + sizeof(bcm_hdr_t)));
-				wpas_expire_p2p_peer(drv->ctx, ((u8 *)data + sizeof(bcm_hdr_t)));
-				break;
-			}
-#endif /* BCM_SDO */
-#endif /* HOSTAPD */
-
-#ifdef CONFIG_BRCM_BT_WIFI_HO
-                case BCM_EVENT_DEV_BT_WIFI_HO_REQ:
-                        {
-                                union wpa_event_data event;
-                                setup_netinfo_t *ho_cmd = (setup_netinfo_t *)((u8 *)data +
-                                                                sizeof(bcm_hdr_t));
-                                wpa_printf(MSG_DEBUG, "BT WIFI HANDOVER REQ RECEIVED FROM WPA_SUP: %d\n", ho_cmd->opmode);
-                                if (ho_cmd->opmode == HO_MODE_GO) {
-                                        wpa_printf(MSG_DEBUG, "Start GO SSID length is %d"
-							"and passphrs len is %d",
-							ho_cmd->ssid_len, ho_cmd->passphrase_len);
-                                        wpas_p2p_group_add_ho(drv->ctx, ho_cmd->channel, ho_cmd->ssid_len,
-							(char *)ho_cmd->ssid, ho_cmd->passphrase_len,
-							(char *)ho_cmd->passphrase,     (char *)ho_cmd->macaddr);
-                                } else if (ho_cmd->opmode == HO_MODE_STA) {
-                                        wpa_printf(MSG_DEBUG, "Start STA to connect to GO");
-                                        wpa_supplicant_ho_connect(drv->ctx, ho_cmd->channel,
-							ho_cmd->ssid_len, (char *)ho_cmd->ssid,
-							ho_cmd->passphrase_len, (char *)ho_cmd->passphrase);
-                                } else if (ho_cmd->opmode == HO_MODE_GC) {
-                                        wpa_printf(MSG_DEBUG, "Start GC to connect to GO");
-                                        p2p_gc_connect(drv->ctx, ho_cmd->channel,
-                                                        ho_cmd->ssid_len, (char *)ho_cmd->ssid,
-                                                        ho_cmd->passphrase_len, (char *)ho_cmd->passphrase,
-                                                        ho_cmd->macaddr);
-                                } else if (ho_cmd->opmode == HO_MODE_STOP_GO) {
-                                        wpa_printf(MSG_DEBUG, "STOP GO");
-                                        wpas_p2p_group_remove_ho(drv->ctx);
-                                } else {
-                                        wpa_printf(MSG_DEBUG, "Unknown Handover Msg: %d\n", ho_cmd->opmode);
-                                }
-                                break;
-                        }
-#endif /* CONFIG_BRCM_BT_WIFI_HO */
-
-		default:
-			wpa_printf(MSG_ERROR, "UNKNOWN Event Msg Type:%d len:%d", hdr->type, hdr->len);
-			break;
-	}
-
-	return 0;
-}
-
-#ifdef CONFIG_BRCM_NAN
-
-void add_nan_p2p_device(char *p2p_ie_data, int len, void *ctx)
-{
-	unsigned char macadrr[ETH_ALEN];
-	unsigned char p2p_data_hex[P2P_IE_LEN_MAX];
-	struct wpa_supplicant *wpa_s = ctx;
-	hwaddr_aton(p2p_ie_data,(u8* )macadrr);
-	p2p_ie_data += 17+8; /* MAc address +p2p_ie= */
-	len = len - (17+8);
-	if (hexstr2bin(p2p_ie_data, p2p_data_hex, len/2) != 0)
-		return;
-	len = strlen(p2p_ie_data)/2;
-	p2p_add_device(wpa_s->global->p2p, macadrr, 0, 0, 0, (const u8 *)p2p_data_hex, len, 0);
-}
-
-#endif	/* CONFIG_BRCM_NAN */
-
-static int wpa_driver_handle_genl_event(struct nl_msg *msg, void *arg)
-{
-	struct nlmsghdr *nlh = nlmsg_hdr(msg);
-	struct genlmsghdr *gnlh = nlmsg_data(nlmsg_hdr(msg));
-	struct nlattr *attrs[BCM_GENL_ATTR_MAX + 1];
-	struct wpa_driver_nl80211_data *drv = NULL;
-	struct nl80211_global *global = (struct nl80211_global *)arg;
-#ifdef CONFIG_BRCM_NAN
-	char p2p_ie_data[2000];
-	int len = 0;
-#endif	/* CONFIG_BRCM_NAN */
-	wpa_printf(MSG_DEBUG, "%s: Enter", __func__);
-
-	if (nla_parse(attrs, BCM_GENL_ATTR_MAX,
-		genlmsg_attrdata(gnlh, 0), genlmsg_attrlen(gnlh, 0), NULL) < 0) {
-		wpa_printf(MSG_ERROR, "GENL msg parse failed");
-		return -1;
-	}
-
-	drv = dl_list_last(&global->interfaces, struct wpa_driver_nl80211_data, list);
-	if (drv == NULL)
-		return -1;
-
-	if(attrs[BCM_GENL_ATTR_STRING]) {
-		wpa_printf(MSG_ERROR, "BCM-GENL ATTR_STRING FOUND. Dumping the string");
-#ifdef CONFIG_BRCM_NAN
-		if (strncmp((char *)nla_data(attrs[BCM_GENL_ATTR_STRING]),
-			"CTRL-EVENT-NAN-P2P-RX", 21) == 0) {
-			len = nla_len(attrs[BCM_GENL_ATTR_STRING]);
-			memcpy(p2p_ie_data, (char *)nla_data(attrs[BCM_GENL_ATTR_STRING]), len);
-			add_nan_p2p_device(p2p_ie_data+31, len - 31, drv->ctx);
-				/* 31 = CTRL-EVENT-NAN-P2P-RX MAC_ADDR= */
-		}
-		wpa_msg(drv->ctx, MSG_INFO, "%s", (char *)nla_data(attrs[BCM_GENL_ATTR_STRING]));
-#endif	/* CONFIG_BRCM_NAN */
-	} else if(attrs[BCM_GENL_ATTR_MSG]) {
-		wpa_printf(MSG_ERROR, "BCM-GENL ATTR_MSG FOUND. Calling the handler");
-		wpa_driver_handle_attr_data(drv, (char *)nla_data(attrs[BCM_GENL_ATTR_MSG]),
-		nla_len(attrs[BCM_GENL_ATTR_MSG]));
-	} else
-		wpa_printf(MSG_ERROR, "BCM-GENL NOT Present");
-
-	return NL_SKIP;
-
-}
-
-static int driver_genl_ctrl_resolve(struct nl_sock *handle,
-                                     const char *name)
-{
-    /*
-    * Android ICS has very minimal genl_ctrl_resolve() implementation, so
-    * need to work around that.
-    */
-    struct nl_cache *cache = NULL;
-    struct genl_family *nl80211 = NULL;
-    int id = -1;
-
-    if (genl_ctrl_alloc_cache(handle, &cache) < 0) {
-		wpa_printf(MSG_ERROR, "nl80211: Failed to allocate generic "
-			"netlink cache");
-		goto fail;
-    }
-
-    nl80211 = genl_ctrl_search_by_name(cache, name);
-    if (nl80211 == NULL)
-		goto fail;
-
-    id = genl_family_get_id(nl80211);
-
-	wpa_printf(MSG_ERROR, "Family id:%d", id);
-
-fail:
-        if (nl80211)
-                genl_family_put(nl80211);
-        if (cache)
-                nl_cache_free(cache);
-
-        return id;
-}
-
-/* XXX Not yet tested */
-int driver_send_msg(void *priv, int len, const void *data)
-{
-        struct i802_bss *bss = priv;
-	struct wpa_driver_nl80211_data *drv = bss->drv;
-	struct nl_msg *msg;
-
-	msg = nlmsg_alloc();
-	genlmsg_put(msg, NL_AUTO_PID, NL_AUTO_SEQ, drv->event_family, 0, NLM_F_REQUEST,
-	BCM_GENL_CMD_MSG, 1);
-
-	nla_put(msg, BCM_GENL_ATTR_MSG, (size_t)len, data);
-
-	// Send message over netlink socket
-	nl_send_auto_complete(drv->event_sock, msg);
-
-	nlmsg_free(msg);
-
-	return 0;
-}
-static int wpa_driver_register_genl_multicast(void *priv)
-{
-	struct nl80211_global *global = priv;
-	int mcast_id = 0;
-
-	mcast_id = nl_get_multicast_id(priv,
-                               "bcm-genl", "bcm-genl-mcast");
-
-	if (mcast_id >= 0) {
-                if(nl_socket_add_membership(global->event_sock, mcast_id) < 0) {
-			wpa_printf(MSG_ERROR, "%s: MULTICAST ID"
-				" add membership failed\n", __func__);
-			return -1;
-		}
-
-	}
-
-	return mcast_id;
-
-}
-
-int wpa_driver_register_genl(void *priv)
-{
-	struct nl80211_global *global = priv;
-	int ret = 0;
-	static int family;
-	struct sockaddr_nl src_addr;
-
-	wpa_printf(MSG_DEBUG, "%s: Enter  (PID: %d)", __func__, getpid());
-
-	if(global->event_sock && global->event_family) {
-		wpa_printf(MSG_ERROR, "GENL Already registered/Initialized");
-		return 0;
-	}
-
-	global->event_sock = nl_socket_alloc();
-	if(!global->event_sock) {
-		wpa_printf(MSG_ERROR, "nl_socket_alloc failed");
-		return -1;
-	}
-
-	if(genl_connect(global->event_sock) < 0) {
-		wpa_printf(MSG_ERROR, "genl_connect failed");
-		ret = -1;
-		goto fail;
-	}
-
-	global->event_family = genl_ctrl_resolve(global->event_sock, "bcm-genl");
-	if(global->event_family < 0) {
-		wpa_printf(MSG_ERROR, "genl_ctrl_resolve failed ret:%d", global->event_family);
-		ret = -1;
-		goto fail;
-	}
-
-	nl_cb_set(nl_socket_get_cb(global->event_sock),
-		 NL_CB_SEQ_CHECK, NL_CB_CUSTOM, no_seq_check, global);
-	nl_cb_set(nl_socket_get_cb(global->event_sock),
-		 NL_CB_VALID, NL_CB_CUSTOM, wpa_driver_handle_genl_event, global);
-
-	if (wpa_driver_register_genl_multicast(global) < 0) {
-		wpa_printf(MSG_ERROR, "genl_multicast register failed");
-		ret = -1;
-		goto fail;
-	}
-
-	eloop_register_read_sock(nl_socket_get_fd(global->event_sock),
-                                 wpa_driver_recv_genl, global, NULL);
-
-	wpa_printf(MSG_INFO, "libbcmdhd: GENL Interface enabled");
-
-	return 0;
-
-fail:
-	wpa_printf(MSG_ERROR, "%s: Failed. GENL register failed", __func__);
-
-	if(global->event_sock)
-		nl_socket_free(global->event_sock);
-	global->event_sock = 0;
-	global->event_family = 0;
-	return ret;
-
-}
-
-int wpa_driver_unregister_genl(void *priv)
-{
-	struct nl80211_global *global = priv;
-
-	if(!global || !global->event_sock || !global->event_family) {
-		wpa_printf(MSG_ERROR, " No socket initialized on this interface");
-		return -1;
-	}
-
-	eloop_unregister_read_sock(nl_socket_get_fd(global->event_sock));
-
-	nl_socket_free(global->event_sock);
-	global->event_sock = NULL;
-
-	wpa_printf(MSG_INFO, "libbcmdhd: GENL Interface disabled");
-
-	return 0;
-}
-
-static int family_handler(struct nl_msg *msg, void *arg)
-{
-     struct family_data *res = arg;
-     struct nlattr *tb[CTRL_ATTR_MAX + 1];
-     struct genlmsghdr *gnlh = nlmsg_data(nlmsg_hdr(msg));
-     struct nlattr *mcgrp;
-     int i;
-
-     nla_parse(tb, CTRL_ATTR_MAX, genlmsg_attrdata(gnlh, 0),
-           genlmsg_attrlen(gnlh, 0), NULL);
-     if (!tb[CTRL_ATTR_MCAST_GROUPS])
-         return NL_SKIP;
-
-     nla_for_each_nested(mcgrp, tb[CTRL_ATTR_MCAST_GROUPS], i) {
-         struct nlattr *tb2[CTRL_ATTR_MCAST_GRP_MAX + 1];
-         nla_parse(tb2, CTRL_ATTR_MCAST_GRP_MAX, nla_data(mcgrp),
-               nla_len(mcgrp), NULL);
-         if (!tb2[CTRL_ATTR_MCAST_GRP_NAME] ||
-             !tb2[CTRL_ATTR_MCAST_GRP_ID] ||
-             os_strncmp(nla_data(tb2[CTRL_ATTR_MCAST_GRP_NAME]),
-                    res->group,
-                    nla_len(tb2[CTRL_ATTR_MCAST_GRP_NAME])) != 0)
-             continue;
-         res->id = nla_get_u32(tb2[CTRL_ATTR_MCAST_GRP_ID]);
-         break;
-     };
-
-     return NL_SKIP;
-}
-#endif  /* BCM_GENL */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ap_config.c b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ap_config.c
index 0d52a0d..04535a1 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ap_config.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ap_config.c
@@ -1494,13 +1494,7 @@
 			bss->wpa_group = WPA_CIPHER_NONE;
 			bss->wpa_pairwise = WPA_CIPHER_NONE;
 			bss->rsn_pairwise = WPA_CIPHER_NONE;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifndef WAPI_AP
 			bss->wpa_key_mgmt = WPA_KEY_MGMT_NONE;
-#endif
-#else /* CONFIG_DRIVER_NL80211_IFX */
-			bss->wpa_key_mgmt = WPA_KEY_MGMT_NONE;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		}
 	}
 }
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ap_config.h b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ap_config.h
index 4d68c52..52c70a1 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ap_config.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ap_config.h
@@ -719,11 +719,9 @@
 	int ftm_responder;
 	int ftm_initiator;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_RSN_CNTRS
 	u8 replay_cntrs;
 #endif /* CONFIG_BRCM_RSN_CNTRS */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_FILS
 	u8 fils_cache_id[FILS_CACHE_ID_LEN];
 	int fils_cache_id_set;
@@ -943,15 +941,7 @@
 	unsigned int track_sta_max_num;
 	unsigned int track_sta_max_age;
 
-	char country[3]; /* first two octets: country code as described in
-			  * ISO/IEC 3166-1. Third octet:
-			  * ' ' (ascii 32): all environments
-			  * 'O': Outdoor environemnt only
-			  * 'I': Indoor environment only
-			  * 'X': Used with noncountry entity ("XXX")
-			  * 0x00..0x31: identifying IEEE 802.11 standard
-			  *	Annex E table (0x04 = global table)
-			  */
+	char country[3];
 
 	int ieee80211d;
 
@@ -1056,11 +1046,9 @@
 	unsigned int airtime_update_interval;
 #define AIRTIME_MODE_MAX (__AIRTIME_MODE_MAX - 1)
 #endif /* CONFIG_AIRTIME_POLICY */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_SUPP_ACS
         u8 autochannel_enabled;
 #endif /* BRCM_SUPP_ACS */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 };
 
 
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ap_drv_ops.c b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ap_drv_ops.c
index cd36833..a1bf445 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ap_drv_ops.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ap_drv_ops.c
@@ -202,7 +202,6 @@
 	add_buf(&proberesp, hapd->conf->vendor_elements);
 	add_buf(&assocresp, hapd->conf->assocresp_elements);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_VENDOR_IE
 	if(hapd->vendor_ies) {
 		size_t add = wpabuf_len(hapd->vendor_ies);
@@ -214,7 +213,6 @@
 			wpabuf_put_buf(assocresp, hapd->vendor_ies);
 	}
 #endif /* CONFIG_BRCM_VENDOR_IE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	*beacon_ret = beacon;
 	*proberesp_ret = proberesp;
 	*assocresp_ret = assocresp;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/beacon.c b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/beacon.c
index 53d66f0..e773615 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/beacon.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/beacon.c
@@ -1359,7 +1359,6 @@
 #endif /* NEED_AP_MLME */
 
 	os_memset(params, 0, sizeof(*params));
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_SAE
 	if (hapd->conf->ssid.wpa_passphrase) {
 		params->sae_passphrase_len = os_strlen(hapd->conf->ssid.wpa_passphrase);
@@ -1369,7 +1368,6 @@
 		}
 	}
 #endif /* CONFIG_BRCM_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	params->head = (u8 *) head;
 	params->head_len = head_len;
 	params->tail = tail;
@@ -1430,7 +1428,6 @@
 	else
 		params->ht_opmode = hapd->iface->ht_op_mode;
 #endif /* NEED_AP_MLME */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifndef CONFIG_BRCM_AUTOMOTIVE
 	params->interworking = hapd->conf->interworking;
 	if (hapd->conf->interworking &&
@@ -1438,13 +1435,6 @@
 		params->hessid = hapd->conf->hessid;
 	params->access_network_type = hapd->conf->access_network_type;
 #endif /* CONFIG_BRCM_AUTOMOTIVE */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-	params->interworking = hapd->conf->interworking;
-	if (hapd->conf->interworking &&
-	    !is_zero_ether_addr(hapd->conf->hessid))
-		params->hessid = hapd->conf->hessid;
-	params->access_network_type = hapd->conf->access_network_type;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	params->ap_max_inactivity = hapd->conf->ap_max_inactivity;
 #ifdef CONFIG_P2P
 	params->p2p_go_ctwindow = hapd->iconf->p2p_go_ctwindow;
@@ -1470,14 +1460,16 @@
 		}
 	}
 
-#ifndef CONFIG_DRIVER_NL80211_IFX
+	/* Support for 4-way handshake offload to internal supplicant
+	 * for WPA/WPA2-PSK
+	 */
 	if ((hapd->iface->drv_flags2 &
 	     WPA_DRIVER_FLAGS2_4WAY_HANDSHAKE_AP_PSK) &&
 	    (params->key_mgmt_suites &
 	     (WPA_KEY_MGMT_PSK | WPA_KEY_MGMT_PSK_SHA256))) {
 		if (hapd->conf->ssid.wpa_passphrase)
 			params->passphrase = hapd->conf->ssid.wpa_passphrase;
-		if (hapd->conf->ssid.wpa_psk->psk)
+		if (hapd->conf->ssid.wpa_psk->psk[0] != '\0')
 			params->psk = hapd->conf->ssid.wpa_psk->psk;
 	}
 
@@ -1491,7 +1483,6 @@
 			params->passphrase = hapd->conf->ssid.wpa_passphrase;
 	}
 #endif /* CONFIG_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	return 0;
 }
@@ -1507,6 +1498,39 @@
 	params->proberesp = NULL;
 }
 
+#if defined(CONFIG_SAE)
+#define SAE_PWE_CMD_SIZE 32
+void ifx_private_set_sae_pwe(struct hostapd_data *hapd, int sae_pwe)
+{
+	int res;
+
+	char cmd[SAE_PWE_CMD_SIZE];
+	char reply[SAE_PWE_CMD_SIZE];
+	char *p = cmd;
+
+	if (hapd == NULL) {
+		wpa_printf(MSG_ERROR, "Failed to set SAE PWE hapd is null");
+		return;
+	}
+
+	if ((sae_pwe < 0) || (sae_pwe > 2)) {
+		wpa_printf(MSG_ERROR, "Failed to set SAE PWE, unexpected sae pwe %d", sae_pwe);
+		return;
+	}
+
+	memset(cmd, 0, sizeof(cmd));
+	memset(reply, 0, sizeof(reply));
+
+	res = os_snprintf(p, SAE_PWE_CMD_SIZE, "SAE_PWE %d", sae_pwe);
+	p += res;
+	*p = '\0';
+
+	if (!hapd->driver->driver_cmd ||
+			hapd->driver->driver_cmd(hapd->drv_priv, cmd, reply, sizeof(reply))) {
+		wpa_printf(MSG_ERROR, "Failed to set SAE PWE");
+	}
+}
+#endif /* CONFIG_SAE && CONFIG_DRIVER_NL80211_IFX */
 
 int ieee802_11_set_beacon(struct hostapd_data *hapd)
 {
@@ -1553,6 +1577,8 @@
 	hapd->reenable_beacon = 0;
 #ifdef CONFIG_SAE
 	params.sae_pwe = hapd->conf->sae_pwe;
+	if (params.key_mgmt_suites & WPA_KEY_MGMT_SAE)
+		ifx_private_set_sae_pwe(hapd, params.sae_pwe);
 #endif /* CONFIG_SAE */
 
 	if (cmode &&
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/drv_callbacks.c b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/drv_callbacks.c
index 3cbe072..5ead4e4 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/drv_callbacks.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/drv_callbacks.c
@@ -42,11 +42,6 @@
 #include "dpp_hostapd.h"
 #include "fils_hlp.h"
 #include "neighbor_db.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-#include "ap/hostapd.h"
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 
 #ifdef CONFIG_FILS
@@ -200,31 +195,6 @@
 		ielen = elems.osen_len + 2;
 		wpa_printf(MSG_DEBUG, "STA included OSEN IE in (Re)AssocReq");
 #endif /* CONFIG_HS20 */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-        } else if (elems.wapiap_ie) {
-                ie = elems.wapiap_ie - 2;
-                ielen = elems.wapiap_ie_len + 2;
-                wpa_printf(MSG_INFO, "%s : STA included WAPI IE in (Re)AssocReq"
-                        "calling funciton in HAL wapiie len is %zu\n", __FUNCTION__, ielen);
-                sta = ap_get_sta(hapd, addr);
-                if (!sta) {
-                        wpa_printf(MSG_ERROR, "hostapd_notif_assoc: No sta info\n");
-                        sta = ap_sta_add(hapd, addr);
-                        if (!sta) {
-                                wpa_printf(MSG_ERROR, "hostapd_notif_assoc: Failed to add sta info for addr " MACSTR"\n", MAC2STR(addr));
-                                return -1;
-                        }
-                        else
-                                wpa_printf(MSG_INFO, "hostapd_notif_assoc: Added sta info for addr " MACSTR"\n", MAC2STR(addr));
-                }
-                res = brcm_wapiap_startassoc(ie, ielen, addr, hapd->ifname);
-                if (res != 0) {
-                        wpa_printf(MSG_ERROR, "%s:brcm_wapiap_startassoc failed with error %d\n", __FUNCTION__, res);
-                        return res;
-                }
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	} else {
 		ie = NULL;
 		ielen = 0;
@@ -916,7 +886,7 @@
 
 	channel = hostapd_hw_get_channel(hapd, freq);
 	if (!channel) {
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(BRCM_SUPP)
+#if defined(BRCM_SUPP)
 		if (hapd->iface->conf->hw_mode == HOSTAPD_MODE_IEEE80211ANY) {
 			struct hostapd_hw_modes *newmode = NULL;
 
@@ -1039,15 +1009,6 @@
 		hostapd_enable_iface(hapd->iface);
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_DEBUG
-        else  {
-                /* Inform CSA event even if it is not triggered from the host */
-                wpa_msg(hapd->msg_ctx, MSG_INFO, AP_CSA_FINISHED "freq=%d",
-                        freq);
-        }
-#endif /* BRCM_DEBUG */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	for (i = 0; i < hapd->iface->num_bss; i++)
 		hostapd_neighbor_set_own_report(hapd->iface->bss[i]);
 
@@ -1066,12 +1027,8 @@
 
 		if (check_sa_query) {
 			wpa_printf(MSG_DEBUG,
-#ifdef CONFIG_DRIVER_NL80211_IFX
 				   "OCV: Check post-CSA SA Query initiation in"
 				   " 15 seconds");
-#else
-				   "OCV: Check post-CSA SA Query initiation in 15 seconds");
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 			eloop_register_timeout(15, 0,
 					       hostapd_ocv_check_csa_sa_query,
 					       hapd, NULL);
@@ -1915,14 +1872,12 @@
 #endif /* CONFIG_NO_STDOUT_DEBUG */
 
 	switch (event) {
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_SAE
 	case EVENT_SAE_KEY:
 		wpa_auth_pmksa_add_sae(hapd->wpa_auth, data->sae_key_info.peer_mac,
 			data->sae_key_info.psk, data->sae_key_info.pmkid);
 		break;
 #endif /* CONFIG_BRCM_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	case EVENT_MICHAEL_MIC_FAILURE:
 		michael_mic_failure(hapd, data->michael_mic_failure.src, 1);
 		break;
@@ -1996,11 +1951,6 @@
 	case EVENT_ASSOC:
 		if (!data)
 			return;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-                os_memcpy(hapd->ifname, hapd->conf->iface, os_strlen(hapd->conf->iface));
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		hostapd_notif_assoc(hapd, data->assoc_info.addr,
 				    data->assoc_info.req_ies,
 				    data->assoc_info.req_ies_len,
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/hostapd.c b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/hostapd.c
index 96c2001..5eed686 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/hostapd.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/hostapd.c
@@ -67,11 +67,6 @@
 static void hostapd_interface_setup_failure_handler(void *eloop_ctx,
 						    void *timeout_ctx);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-void brcm_wapiap_inithostapd(struct hostapd_data *hapd, char *ifname);
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 int hostapd_for_each_interface(struct hapd_interfaces *interfaces,
 			       int (*cb)(struct hostapd_iface *iface,
@@ -436,7 +431,6 @@
 		       hapd->tmp_eap_user.password_len);
 #endif /* CONFIG_SQLITE */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_VENDOR_IE
 	for (i = 0; i < MAX_VENDOR_IES; i++ ) {
 		wpabuf_free(hapd->vendor_ie[i]);
@@ -445,7 +439,6 @@
 	wpabuf_free(hapd->vendor_ies);
 	hapd->vendor_ies = NULL;
 #endif /* CONFIG_BRCM_VENDOR_IE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_MESH
 	wpabuf_free(hapd->mesh_pending_auth);
 	hapd->mesh_pending_auth = NULL;
@@ -1128,15 +1121,6 @@
 	wpa_printf(MSG_DEBUG, "%s(hapd=%p (%s), first=%d)",
 		   __func__, hapd, conf->iface, first);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-        if (conf->wpa_key_mgmt == WPA_KEY_MGMT_WAPI_PSK) {
-                /* initialize the hostapd structure for wapilib_softap for setting ucast/mcastkey*/
-                wpa_printf(MSG_INFO, "%s: calling brcm_wapiap_inithostapd\n", __FUNCTION__);
-                brcm_wapiap_inithostapd(hapd, conf->iface);
-        }
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef EAP_SERVER_TNC
 	if (conf->tnc && tncs_global_init() < 0) {
 		wpa_printf(MSG_ERROR, "Failed to initialize TNCS");
@@ -1691,7 +1675,6 @@
 }
 
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifndef CONFIG_ACS
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 void bcm_private_acs(struct hostapd_iface *iface)
@@ -1737,7 +1720,6 @@
 }
 #endif
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 static int setup_interface2(struct hostapd_iface *iface)
 {
 	iface->wait_channel_update = 0;
@@ -1746,14 +1728,12 @@
 		/* Not all drivers support this yet, so continue without hw
 		 * feature data. */
 	} else {
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifndef CONFIG_ACS
 #ifdef CONFIG_BRCM_AUTOMOTIVE
                 if(!iface->conf->channel)
                         bcm_private_acs(iface);
 #endif
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		int ret;
 
 		ret = configured_fixed_chan_to_freq(iface);
@@ -3233,9 +3213,10 @@
 void hostapd_new_assoc_sta(struct hostapd_data *hapd, struct sta_info *sta,
 			   int reassoc)
 {
-#ifndef CONFIG_DRIVER_NL80211_IFX
+	/* Support for 4-way handshake offload to internal supplicant
+	 * for WPA/WPA2-PSK
+	 */
 	int key_mgmt = wpa_auth_sta_key_mgmt(sta->wpa_sm);
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	if (hapd->tkip_countermeasures) {
 		hostapd_drv_sta_deauth(hapd, sta->addr,
@@ -3270,15 +3251,14 @@
 	/* Start IEEE 802.1X authentication process for new stations */
 	ieee802_1x_new_station(hapd, sta);
 	if (reassoc) {
-#ifndef CONFIG_DRIVER_NL80211_IFX
+		/* Support for 4-way handshake offload to internal supplicant
+		 * for WPA/WPA2-PSK
+		 */
 		if ((hapd->iface->drv_flags2 &
 		     WPA_DRIVER_FLAGS2_4WAY_HANDSHAKE_AP_PSK) &&
 		    wpa_key_mgmt_wpa_psk(key_mgmt))
 			wpa_auth_sta_associated(hapd->wpa_auth, sta->wpa_sm);
 		else if (sta->auth_alg != WLAN_AUTH_FT &&
-#else /* CONFIG_DRIVER_NL80211_IFX */
-		if (sta->auth_alg != WLAN_AUTH_FT &&
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		    sta->auth_alg != WLAN_AUTH_FILS_SK &&
 		    sta->auth_alg != WLAN_AUTH_FILS_SK_PFS &&
 		    sta->auth_alg != WLAN_AUTH_FILS_PK &&
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/hostapd.h b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/hostapd.h
index 20fb3bd..109b9af 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/hostapd.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/hostapd.h
@@ -161,11 +161,6 @@
 
 	u8 own_addr[ETH_ALEN];
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-        char ifname[100];
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	int num_sta; /* number of entries in sta_list */
 	struct sta_info *sta_list; /* STA info list head */
 #define STA_HASH_SIZE 256
@@ -430,13 +425,11 @@
 #endif /* CONFIG_CTRL_IFACE_UDP */
 };
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_VENDOR_IE
 #define MAX_VENDOR_IES 4
 struct wpabuf *vendor_ie[MAX_VENDOR_IES];
 struct wpabuf *vendor_ies;
 #endif /* CONFIG_BRCM_VENDOR_IE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 struct hostapd_sta_info {
 	struct dl_list list;
@@ -448,7 +441,6 @@
 #endif /* CONFIG_TAXONOMY */
 };
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_MERGES
 enum hostapd_iface_state {
 	HAPD_IFACE_UNINITIALIZED,
@@ -460,7 +452,6 @@
 	HAPD_IFACE_ENABLED
 };
 #endif /* CONFIG_BRCM_MERGES */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 /**
  * struct hostapd_iface - hostapd per-interface data structure
  */
@@ -471,21 +462,9 @@
 	struct hostapd_config *conf;
 	char phy[16]; /* Name of the PHY (radio) */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_MERGES
 	enum hostapd_iface_state state;
 #endif /* CONFIG_BRCM_MERGES */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-	enum hostapd_iface_state {
-		HAPD_IFACE_UNINITIALIZED,
-		HAPD_IFACE_DISABLED,
-		HAPD_IFACE_COUNTRY_UPDATE,
-		HAPD_IFACE_ACS,
-		HAPD_IFACE_HT_SCAN,
-		HAPD_IFACE_DFS,
-		HAPD_IFACE_ENABLED
-	} state;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_MESH
 	struct mesh_conf *mconf;
@@ -699,13 +678,6 @@
 hostapd_get_eap_user(struct hostapd_data *hapd, const u8 *identity,
 		     size_t identity_len, int phase2);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-void brcm_wapiap_handshakepkt_from_sta(u8 *sta_mac, void *buf, int len, char *ifname);
-int brcm_wapiap_startassoc(const u8 *ie, int ielen, const u8 *sta_mac, char *ifname);
-void handle_wapi(int sock, void *eloop_ctx, void *sock_ctx);
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 struct hostapd_data * hostapd_get_iface(struct hapd_interfaces *interfaces,
 					const char *ifname);
 void hostapd_event_sta_opmode_changed(struct hostapd_data *hapd, const u8 *addr,
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/hw_features.c b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/hw_features.c
index 9e05ba4..bfaded2 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/hw_features.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/hw_features.c
@@ -1038,7 +1038,6 @@
 			iface->current_mode = mode;
 			break;
 		}
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_SUPP
 		if (iface->conf->hw_mode == HOSTAPD_MODE_IEEE80211ANY) {
 			if (((iface->conf->channel > 14) && (mode->mode == HOSTAPD_MODE_IEEE80211A)) ||
@@ -1048,7 +1047,6 @@
 			}
 		}
 #endif /* BRCM_SUPP */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	}
 
 	if (iface->current_mode == NULL) {
@@ -1154,7 +1152,6 @@
 }
 
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_SUPP
 int hostapd_hw_get_channel_by_hw_features(struct hostapd_data *hapd, int freq,
 						struct hostapd_hw_modes **newmode)
@@ -1179,4 +1176,3 @@
 	return channel;
 }
 #endif /* BRCM_SUPP */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/hw_features.h b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/hw_features.h
index ecc246e..a250875 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/hw_features.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/hw_features.h
@@ -20,12 +20,10 @@
 const char * hostapd_hw_mode_txt(int mode);
 int hostapd_hw_get_freq(struct hostapd_data *hapd, int chan);
 int hostapd_hw_get_channel(struct hostapd_data *hapd, int freq);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_SUPP
 int hostapd_hw_get_channel_by_hw_features(struct hostapd_data *hapd, int freq,
                         struct hostapd_hw_modes **newmode);
 #endif /* #ifdef BRCM_SUPP */
-#endif /* CONFIG_DRIVER_NL80211_IFX && BRCM_SUPP */
 int hostapd_check_ht_capab(struct hostapd_iface *iface);
 int hostapd_check_edmg_capab(struct hostapd_iface *iface);
 int hostapd_prepare_rates(struct hostapd_iface *iface,
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ieee802_11.c b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ieee802_11.c
index d2a99ef..57c6903 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ieee802_11.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ieee802_11.c
@@ -70,12 +70,10 @@
 			int rssi, int from_queue);
 
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_WPA3_SAE_AUTH_EARLY_SET
 static void sae_sme_send_external_auth_status(struct hostapd_data *hapd,
                                               struct sta_info *sta, u16 status);
 #endif /* CONFIG_WPA3_SAE_AUTH_EARLY_SET */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 u8 * hostapd_eid_multi_ap(struct hostapd_data *hapd, u8 *eid)
 {
 	u8 multi_ap_val = 0;
@@ -640,12 +638,10 @@
 	if (data == NULL)
 		return WLAN_STATUS_UNSPECIFIED_FAILURE;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_WPA3_SAE_AUTH_EARLY_SET
 	wpa_printf(MSG_DEBUG, "\nCalling sae_sme_send_external_auth_status\n");
 	sae_sme_send_external_auth_status(hapd, sta, WLAN_STATUS_SUCCESS);
 #endif /* CONFIG_WPA3_SAE_AUTH_EARLY_SET */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	reply_res = send_auth_reply(hapd, sta, sta->addr, bssid,
 				    WLAN_AUTH_SAE, 2,
 				    WLAN_STATUS_SUCCESS, wpabuf_head(data),
@@ -924,13 +920,9 @@
 	wpa_auth_set_pmk_life_time(hapd->wpa_auth,hapd->conf->dot11RSNAConfigPMKLifetime);
 	wpa_auth_pmksa_add_sae(hapd->wpa_auth, sta->addr,
 			       sta->sae->pmk, sta->sae->pmkid);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifndef CONFIG_WPA3_SAE_AUTH_EARLY_SET
 	sae_sme_send_external_auth_status(hapd, sta, WLAN_STATUS_SUCCESS);
 #endif /* CONFIG_WPA3_SAE_AUTH_EARLY_SET */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-	sae_sme_send_external_auth_status(hapd, sta, WLAN_STATUS_SUCCESS);
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -3608,7 +3600,6 @@
 					   tx_chanwidth, tx_seg1_idx);
 		if (wpa_auth_uses_ocv(sta->wpa_sm) == 2 &&
 		    res == OCI_NOT_FOUND) {
-			/* Work around misbehaving STAs */
 			wpa_printf(MSG_INFO,
 				   "FILS: Disable OCV with a STA that does not send OCI");
 			wpa_auth_set_ocv(sta->wpa_sm, 0);
@@ -4608,11 +4599,9 @@
 		return;
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CY_AP_RX_MGMT_DISCONNECT
         sta->disassoc_reason = le_to_host16(mgmt->u.disassoc.reason_code);
 #endif /* CONFIG_CY_AP_RX_MGMT_DISCONNECT */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	ap_sta_set_authorized(hapd, sta, 0);
 	sta->last_seq_ctrl = WLAN_INVALID_MGMT_SEQ;
 	sta->flags &= ~(WLAN_STA_ASSOC | WLAN_STA_ASSOC_REQ_OK);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ieee802_11_shared.c b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ieee802_11_shared.c
index 0f4a797..5110270 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ieee802_11_shared.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ieee802_11_shared.c
@@ -18,11 +18,9 @@
 #include "ap_drv_ops.h"
 #include "wpa_auth.h"
 #include "ieee802_11.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 #include "p2p/p2p_i.h"
 #endif /* CONFIG_BRCM_AUTOMOTIVE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 
 u8 * hostapd_eid_assoc_comeback_time(struct hostapd_data *hapd,
@@ -554,7 +552,6 @@
 u8 * hostapd_eid_interworking(struct hostapd_data *hapd, u8 *eid)
 {
 	u8 *pos = eid;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(CONFIG_BRCM_AUTOMOTIVE) && defined(CONFIG_P2P)
 	struct p2p_data *p2p = hapd->p2p;
 #endif /* CONFIG_BRCM_AUTOMOTIVE && CONFIG_P2P */
@@ -624,40 +621,6 @@
 			*len = pos - len - 1;
 		}
 #endif /* CONFIG_BRCM_AUTOMOTIVE && CONFIG_P2P */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-#ifdef CONFIG_INTERWORKING
-	u8 *len;
-
-	if (!hapd->conf->interworking)
-		return eid;
-
-	*pos++ = WLAN_EID_INTERWORKING;
-	len = pos++;
-
-	*pos = hapd->conf->access_network_type;
-	if (hapd->conf->internet)
-		*pos |= INTERWORKING_ANO_INTERNET;
-	if (hapd->conf->asra)
-		*pos |= INTERWORKING_ANO_ASRA;
-	if (hapd->conf->esr)
-		*pos |= INTERWORKING_ANO_ESR;
-	if (hapd->conf->uesa)
-		*pos |= INTERWORKING_ANO_UESA;
-	pos++;
-
-	if (hapd->conf->venue_info_set) {
-		*pos++ = hapd->conf->venue_group;
-		*pos++ = hapd->conf->venue_type;
-	}
-
-	if (!is_zero_ether_addr(hapd->conf->hessid)) {
-		os_memcpy(pos, hapd->conf->hessid, ETH_ALEN);
-		pos += ETH_ALEN;
-	}
-
-	*len = pos - len - 1;
-#endif /* CONFIG_INTERWORKING */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	return pos;
 }
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ieee802_11_vht.c b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ieee802_11_vht.c
index c925bf1..8a70eb4 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ieee802_11_vht.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ieee802_11_vht.c
@@ -97,10 +97,6 @@
 
 	oper->vht_op_info_chwidth = hapd->iconf->vht_oper_chwidth;
 	if (hapd->iconf->vht_oper_chwidth == 2) {
-		/*
-		 * Convert 160 MHz channel width to new style as interop
-		 * workaround.
-		 */
 		oper->vht_op_info_chwidth = 1;
 		oper->vht_op_info_chan_center_freq_seg1_idx =
 			oper->vht_op_info_chan_center_freq_seg0_idx;
@@ -110,10 +106,6 @@
 		else
 			oper->vht_op_info_chan_center_freq_seg0_idx += 8;
 	} else if (hapd->iconf->vht_oper_chwidth == 3) {
-		/*
-		 * Convert 80+80 MHz channel width to new style as interop
-		 * workaround.
-		 */
 		oper->vht_op_info_chwidth = 1;
 	}
 
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ieee802_1x.c b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ieee802_1x.c
index b942691..1bc19b3 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ieee802_1x.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/ieee802_1x.c
@@ -39,6 +39,11 @@
 #include "ieee802_1x.h"
 #include "wpa_auth_kay.h"
 
+#if !defined(HOSTAPD)
+#include <wpa_supplicant_i.h>
+#include <config_ssid.h>
+#include <config.h>
+#endif /* !HOSTAPD && CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_HS20
 static void ieee802_1x_wnm_notif_send(void *eloop_ctx, void *timeout_ctx);
@@ -108,7 +113,12 @@
 				   struct sta_info *sta, int authorized)
 {
 	int res;
-
+#if !defined(HOSTAPD)
+	int i;
+	struct wpa_supplicant *wpa_s, *wpa_last;
+	struct wpa_global *global;
+	struct wpa_ssid *ssid;
+#endif /* !HOSTAPD && CONFIG_DRIVER_NL80211_IFX */
 	if (sta->flags & WLAN_STA_PREAUTH)
 		return;
 
@@ -133,6 +143,29 @@
 	if (authorized) {
 		os_get_reltime(&sta->connected_time);
 		accounting_sta_start(hapd, sta);
+#if !defined(HOSTAPD)
+		for(i=0;i < hapd->iface->num_bss;i++)
+			wpa_s = (struct wpa_supplicant *)hapd->iface->bss[i]->msg_ctx;
+
+		if (!wpa_s->global->rsdb_flag) {
+			global = wpa_s->global;
+
+			for (wpa_last = global->ifaces; wpa_last; wpa_last = wpa_last->next) {
+				if(os_strcmp(hapd->conf->iface, wpa_last->ifname) == 0 ||
+					os_strcmp(wpa_last->ifname, "wlan0") == 0 ||
+					os_strcmp(wpa_last->ifname, "p2p-dev-wlan0") ==	0)
+					continue;
+				else {
+					ssid = wpa_config_get_network(wpa_last->conf, 0);
+					if (ssid == NULL)
+						return;
+					if (ssid->disabled == 2)
+						return;
+					wpa_supplicant_disable_network(wpa_last, ssid);
+				}
+			}
+		}	
+#endif /* !HOSTAPD && CONFIG_DRIVER_NL80211_IFX */
 	}
 }
 
@@ -189,10 +222,6 @@
 
 	key->key_index = idx | (broadcast ? 0 : BIT(7));
 	if (hapd->conf->eapol_key_index_workaround) {
-		/* According to some information, WinXP Supplicant seems to
-		 * interpret bit7 as an indication whether the key is to be
-		 * activated, so make it possible to enable workaround that
-		 * sets this bit for all keys. */
 		key->key_index |= BIT(7);
 	}
 
@@ -2348,12 +2377,8 @@
 }
 
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 /* Wapi related merges from 137 branch */
 void ieee802_1x_set_port_authorized(void *ctx, void *sta_ctx,
-#else /* CONFIG_DRIVER_NL80211_IFX */
-static void ieee802_1x_set_port_authorized(void *ctx, void *sta_ctx,
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 					   int authorized)
 {
 	struct hostapd_data *hapd = ctx;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/pmksa_cache_auth.c b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/pmksa_cache_auth.c
index fe5f817..8222aa4 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/pmksa_cache_auth.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/pmksa_cache_auth.c
@@ -28,7 +28,8 @@
 	struct rsn_pmksa_cache_entry *pmksa;
 	int pmksa_count;
 
-	void (*free_cb)(struct rsn_pmksa_cache_entry *entry, void *ctx);
+	void (*free_cb)(struct rsn_pmksa_cache_entry *entry, void *ctx,
+			enum pmksa_free_reason reason);
 	void *ctx;
 };
 
@@ -49,13 +50,14 @@
 
 
 void pmksa_cache_free_entry(struct rsn_pmksa_cache *pmksa,
-			    struct rsn_pmksa_cache_entry *entry)
+			    struct rsn_pmksa_cache_entry *entry,
+			    enum pmksa_free_reason reason)
 {
 	struct rsn_pmksa_cache_entry *pos, *prev;
 	unsigned int hash;
 
 	pmksa->pmksa_count--;
-	pmksa->free_cb(entry, pmksa->ctx);
+	pmksa->free_cb(entry, pmksa->ctx, reason);
 
 	/* unlink from hash list */
 	hash = PMKID_HASH(entry->pmkid);
@@ -101,7 +103,7 @@
 	while (pmksa->pmksa) {
 		wpa_printf(MSG_DEBUG, "RSN: Flush PMKSA cache entry for "
 			   MACSTR, MAC2STR(pmksa->pmksa->spa));
-		pmksa_cache_free_entry(pmksa, pmksa->pmksa);
+		pmksa_cache_free_entry(pmksa, pmksa->pmksa, PMKSA_FREE);
 	}
 }
 
@@ -113,9 +115,10 @@
 
 	os_get_reltime(&now);
 	while (pmksa->pmksa && pmksa->pmksa->expiration <= now.sec) {
+		struct rsn_pmksa_cache_entry *entry = pmksa->pmksa;
 		wpa_printf(MSG_DEBUG, "RSN: expired PMKSA cache entry for "
 			   MACSTR, MAC2STR(pmksa->pmksa->spa));
-		pmksa_cache_free_entry(pmksa, pmksa->pmksa);
+		pmksa_cache_free_entry(pmksa, entry, PMKSA_EXPIRE);
 	}
 
 	pmksa_cache_set_expiration(pmksa);
@@ -374,14 +377,14 @@
 	 */
 	pos = pmksa_cache_auth_get(pmksa, entry->spa, NULL);
 	if (pos)
-		pmksa_cache_free_entry(pmksa, pos);
+		pmksa_cache_free_entry(pmksa, pos, PMKSA_REPLACE);
 
 	if (pmksa->pmksa_count >= pmksa_cache_max_entries && pmksa->pmksa) {
 		/* Remove the oldest entry to make room for the new entry */
 		wpa_printf(MSG_DEBUG, "RSN: removed the oldest PMKSA cache "
 			   "entry (for " MACSTR ") to make room for new one",
 			   MAC2STR(pmksa->pmksa->spa));
-		pmksa_cache_free_entry(pmksa, pmksa->pmksa);
+		pmksa_cache_free_entry(pmksa, pmksa->pmksa, PMKSA_FREE);
 	}
 
 	pmksa_cache_link_entry(pmksa, entry);
@@ -538,7 +541,8 @@
  */
 struct rsn_pmksa_cache *
 pmksa_cache_auth_init(void (*free_cb)(struct rsn_pmksa_cache_entry *entry,
-				      void *ctx), void *ctx)
+				      void *ctx, enum pmksa_free_reason reason),
+		      void *ctx)
 {
 	struct rsn_pmksa_cache *pmksa;
 
@@ -612,7 +616,7 @@
 			found++;
 			prev = entry;
 			entry = entry->next;
-			pmksa_cache_free_entry(pmksa, prev);
+			pmksa_cache_free_entry(pmksa, prev, PMKSA_FREE);
 			continue;
 		}
 		entry = entry->next;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/pmksa_cache_auth.h b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/pmksa_cache_auth.h
index 2ef2174..ed532dd 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/pmksa_cache_auth.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/pmksa_cache_auth.h
@@ -37,9 +37,16 @@
 struct rsn_pmksa_cache;
 struct radius_das_attrs;
 
+enum pmksa_free_reason {
+	PMKSA_FREE,
+	PMKSA_REPLACE,
+	PMKSA_EXPIRE,
+};
+
 struct rsn_pmksa_cache *
 pmksa_cache_auth_init(void (*free_cb)(struct rsn_pmksa_cache_entry *entry,
-				      void *ctx), void *ctx);
+				      void *ctx, enum pmksa_free_reason reason),
+		      void *ctx);
 void pmksa_cache_auth_deinit(struct rsn_pmksa_cache *pmksa);
 struct rsn_pmksa_cache_entry *
 pmksa_cache_auth_get(struct rsn_pmksa_cache *pmksa,
@@ -68,7 +75,8 @@
 			       struct rsn_pmksa_cache_entry *entry,
 			       struct eapol_state_machine *eapol);
 void pmksa_cache_free_entry(struct rsn_pmksa_cache *pmksa,
-			    struct rsn_pmksa_cache_entry *entry);
+			    struct rsn_pmksa_cache_entry *entry,
+			    enum pmksa_free_reason reason);
 int pmksa_cache_auth_radius_das_disconnect(struct rsn_pmksa_cache *pmksa,
 					   struct radius_das_attrs *attr);
 int pmksa_cache_auth_list(struct rsn_pmksa_cache *pmksa, char *buf, size_t len);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/sta_info.c b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/sta_info.c
index f5bdb1d..64fa276 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/sta_info.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/sta_info.c
@@ -39,7 +39,11 @@
 #include "sta_info.h"
 #include "vlan.h"
 #include "wps_hostapd.h"
-
+#if !defined(HOSTAPD)
+#include <wpa_supplicant_i.h>
+#include <config_ssid.h>
+#include <config.h>
+#endif /* !HOSTAPD && CONFIG_DRIVER_NL80211_IFX */
 static void ap_sta_remove_in_other_bss(struct hostapd_data *hapd,
 				       struct sta_info *sta);
 static void ap_handle_session_timer(void *eloop_ctx, void *timeout_ctx);
@@ -159,7 +163,12 @@
 void ap_free_sta(struct hostapd_data *hapd, struct sta_info *sta)
 {
 	int set_beacon = 0;
-
+#if !defined(HOSTAPD)
+	int i;
+	struct wpa_supplicant *wpa_s,*wpa_last;
+	struct wpa_global *global;
+	struct wpa_ssid *ssid;
+#endif /* !HOSTAPD && CONFIG_DRIVER_NL80211_IFX */
 	accounting_sta_stop(hapd, sta);
 
 	/* just in case */
@@ -187,6 +196,31 @@
 			~BIT((sta->aid - 1) % 32);
 
 	hapd->num_sta--;
+#if !defined(HOSTAPD)
+	if (hapd->num_sta == 0) {
+		for (i=0;i < hapd->iface->num_bss;i++)
+			wpa_s = (struct wpa_supplicant *)hapd->iface->bss[i]->msg_ctx;
+
+		if (!wpa_s->global->rsdb_flag) {
+			global = wpa_s->global;
+
+			for (wpa_last = global->ifaces; wpa_last; wpa_last = wpa_last->next) {
+				if(os_strcmp(hapd->conf->iface, wpa_last->ifname) == 0 ||
+					os_strcmp(wpa_last->ifname, "wlan0") == 0 ||
+					os_strcmp(wpa_last->ifname, "p2p-dev-wlan0") == 0)
+					continue;
+				else {
+					ssid = wpa_config_get_network(wpa_last->conf, 0);
+					if (ssid == NULL)
+						return;
+					if (ssid->disabled == 2)
+						return;
+					wpa_supplicant_enable_network(wpa_last, ssid);
+				}
+			}
+		}
+	}
+#endif /* !HOSTAPD && CONFIG_DRIVER_NL80211_IFX */
 	if (sta->nonerp_set) {
 		sta->nonerp_set = 0;
 		hapd->iface->num_sta_non_erp--;
@@ -750,13 +784,6 @@
 		wpa_printf(MSG_DEBUG, "%s: Could not remove station " MACSTR
 			   " from kernel driver",
 			   hapd->conf->iface, MAC2STR(sta->addr));
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-		wpa_printf(MSG_INFO,"Removing WAPI STA(" MACSTR ") from wapilib_softap",
-                                MAC2STR(sta->addr));
-		wapiap_lib_disassoc(sta->addr, hapd->ifname);
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		return -1;
 	}
 	sta->added_unassoc = 0;
@@ -1190,8 +1217,7 @@
 	ieee802_11_send_sa_query_req(hapd, sta->addr, trans_id);
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#if defined (CONFIG_BRCM_AUTOMOTIVE) && defined (CONFIG_BRCM_BANDSTEER)
+#if defined(CONFIG_BRCM_AUTOMOTIVE) && defined(CONFIG_BRCM_BANDSTEER)
 static void wpa_brcm_trigger_bandsteer(struct hostapd_data *hapd,
 						u8 *mac_addr)
 {
@@ -1212,7 +1238,6 @@
 	}
 }
 #endif /* CONFIG_BRCM_AUTOMOTIVE && CONFIG_BRCM_BANDSTEER */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 void ap_sta_start_sa_query(struct hostapd_data *hapd, struct sta_info *sta)
 {
@@ -1282,7 +1307,7 @@
 		dev_addr = p2p_group_get_dev_addr(hapd->p2p_group, sta->addr);
 
 	if (dev_addr)
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_BRCM_AUTOMOTIVE)
+#if defined(CONFIG_BRCM_AUTOMOTIVE)
 		os_snprintf(buf, sizeof(buf), MACSTR " p2p_dev_addr=" MACSTR " peer=P2P",
 			    MAC2STR(sta->addr), MAC2STR(dev_addr));
 #else
@@ -1291,7 +1316,7 @@
 #endif /* CONFIG_DRIVER_NL80211_IFX && CONFIG_BRCM_AUTOMOTIVE */
 	else
 #endif /* CONFIG_P2P */
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_BRCM_AUTOMOTIVE)
+#if defined(CONFIG_BRCM_AUTOMOTIVE)
 	{
 		os_snprintf(buf, sizeof(buf), MACSTR " peer=LEGACY", MAC2STR(sta->addr));
 #ifdef CONFIG_BRCM_BANDSTEER
@@ -1339,7 +1364,7 @@
 					  AP_STA_CONNECTED "%s%s%s",
 					  buf, ip_addr, keyid_buf);
 	} else {
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_CY_AP_RX_MGMT_DISCONNECT)
+#if defined(CONFIG_CY_AP_RX_MGMT_DISCONNECT)
                 wpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_DISCONNECTED "%s reason=%d",
                         buf, sta->disassoc_reason);
 #else
@@ -1348,7 +1373,7 @@
 
 		if (hapd->msg_ctx_parent &&
 		    hapd->msg_ctx_parent != hapd->msg_ctx)
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_CY_AP_RX_MGMT_DISCONNECT)
+#if defined(CONFIG_CY_AP_RX_MGMT_DISCONNECT)
                         wpa_msg_no_global(hapd->msg_ctx_parent, MSG_INFO,
                                 AP_STA_DISCONNECTED "%s reason=%d", buf, sta->disassoc_reason);
 #else
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/sta_info.h b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/sta_info.h
index 98380e7..ef48561 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/sta_info.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/sta_info.h
@@ -304,11 +304,6 @@
 /* Number of seconds to keep STA entry after it has been deauthenticated. */
 #define AP_MAX_INACTIVITY_AFTER_DEAUTH (1 * 5)
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-int wapiap_lib_disassoc(const unsigned char *sta_mac, char *ifname);
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 int ap_for_each_sta(struct hostapd_data *hapd,
 		    int (*cb)(struct hostapd_data *hapd, struct sta_info *sta,
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wapiap_interface.c b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wapiap_interface.c
index 05966fc..ac4ab13 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wapiap_interface.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wapiap_interface.c
@@ -108,4 +108,3 @@
 	wpa_printf(MSG_INFO, "%s : unsetting hostapd\n", __FUNCTION__);
 	hostapd = NULL;
 }
-
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wmm.c b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wmm.c
index 9ebb01e..2414c5a 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wmm.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wmm.c
@@ -373,16 +373,6 @@
 		wmm_addts_req(hapd, mgmt, (struct wmm_tspec_element *)
 			      (elems.wmm_tspec - 2), len);
 		return;
-#if 0
-	/* TODO: needed for client implementation */
-	case WMM_ACTION_CODE_ADDTS_RESP:
-		wmm_setup_request(hapd, mgmt, len);
-		return;
-	/* TODO: handle station teardown requests */
-	case WMM_ACTION_CODE_DELTS:
-		wmm_teardown(hapd, mgmt, len);
-		return;
-#endif
 	}
 
 	hostapd_logger(hapd, mgmt->sa, HOSTAPD_MODULE_IEEE80211,
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth.c b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth.c
index 432cc24..1b084b4 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth.c
@@ -370,10 +370,19 @@
 
 
 static void wpa_auth_pmksa_free_cb(struct rsn_pmksa_cache_entry *entry,
-				   void *ctx)
+				   void *ctx, enum pmksa_free_reason reason)
 {
 	struct wpa_authenticator *wpa_auth = ctx;
-	wpa_sta_disconnect(wpa_auth, entry->spa, WLAN_REASON_PREV_AUTH_NOT_VALID);
+
+	if (reason == PMKSA_EXPIRE) {
+		/*
+		 * Once when the PMK cache entry for a STA expires in the SoftAP,
+		 * send a deauth to the STA from the SoftAP to make the STA reconnect
+		 * to the network and derive a new PMK.
+		 */
+		wpa_sta_disconnect(wpa_auth, entry->spa, WLAN_REASON_PREV_AUTH_NOT_VALID);
+	}
+
 	wpa_auth_for_each_sta(wpa_auth, wpa_auth_pmksa_clear_cb, entry);
 }
 
@@ -680,7 +689,9 @@
 	}
 #endif /* CONFIG_FILS */
 
-#ifndef CONFIG_DRIVER_NL80211_IFX
+	/* Support for 4-way handshake offload to internal supplicant
+	 * for WPA/WPA2-PSK
+	 */
 	if (wpa_auth->conf.psk_4way_hs_offload) {
 		wpa_auth_logger(wpa_auth, sm->addr, LOGGER_DEBUG,
 				"4-way handshake offloading for WPA/WPA2-PSK");
@@ -696,7 +707,6 @@
 				   WPA_EAPOL_keyDone, 1);
 		return 0;
 	}
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	if (sm->started) {
 		os_memset(&sm->key_replay, 0, sizeof(sm->key_replay));
@@ -1156,13 +1166,6 @@
 		    sm->wpa_ptk_state == WPA_PTK_PTKINITNEGOTIATING &&
 		    os_memcmp(sm->SNonce, key->key_nonce, WPA_NONCE_LEN) != 0)
 		{
-			/*
-			 * Some supplicant implementations (e.g., Windows XP
-			 * WZC) update SNonce for each EAPOL-Key 2/4. This
-			 * breaks the workaround on accepting any of the
-			 * pending requests, so allow the SNonce to be updated
-			 * even if we have already sent out EAPOL-Key 3/4.
-			 */
 			wpa_auth_vlogger(wpa_auth, sm->addr, LOGGER_DEBUG,
 					 "Process SNonce update from STA based on retransmitted EAPOL-Key 1/4");
 			sm->update_snonce = 1;
@@ -1378,13 +1381,6 @@
 						key->replay_counter);
 
 		if (msg == PAIRWISE_2) {
-			/*
-			 * Maintain a copy of the pending EAPOL-Key frames in
-			 * case the EAPOL-Key frame was retransmitted. This is
-			 * needed to allow EAPOL-Key msg 2/4 reply to another
-			 * pending msg 1/4 to update the SNonce to work around
-			 * unexpected supplicant behavior.
-			 */
 			os_memcpy(sm->prev_key_replay, sm->key_replay,
 				  sizeof(sm->key_replay));
 		} else {
@@ -2117,14 +2113,6 @@
 	forced_memzero(msk, sizeof(msk));
 
 	sm->req_replay_counter_used = 0;
-	/* IEEE 802.11i does not set keyRun to false, but not doing this
-	 * will break reauthentication since EAPOL state machines may not be
-	 * get into AUTHENTICATING state that clears keyRun before WPA state
-	 * machine enters AUTHENTICATION2 state and goes immediately to INITPMK
-	 * state and takes PMK from the previously used AAA Key. This will
-	 * eventually fail in 4-Way Handshake because Supplicant uses PMK
-	 * derived from the new AAA Key. Setting keyRun = false here seems to
-	 * be good workaround for this issue. */
 	wpa_auth_set_eapol(sm->wpa_auth, sm->addr, WPA_EAPOL_keyRun, false);
 }
 
@@ -3073,7 +3061,6 @@
 		res = ocv_verify_tx_params(kde.oci, kde.oci_len, &ci,
 					   tx_chanwidth, tx_seg1_idx);
 		if (wpa_auth_uses_ocv(sm) == 2 && res == OCI_NOT_FOUND) {
-			/* Work around misbehaving STAs */
 			wpa_auth_vlogger(wpa_auth, sm->addr, LOGGER_INFO,
 					 "Disable OCV with a STA that does not send OCI");
 			wpa_auth_set_ocv(sm, 0);
@@ -3435,14 +3422,6 @@
 		gtk_len = 0;
 		_rsc = NULL;
 		if (sm->rx_eapol_key_secure) {
-			/*
-			 * It looks like Windows 7 supplicant tries to use
-			 * Secure bit in msg 2/4 after having reported Michael
-			 * MIC failure and it then rejects the 4-way handshake
-			 * if msg 3/4 does not set Secure bit. Work around this
-			 * by setting the Secure bit here even in the case of
-			 * WPA if the supplicant used it first.
-			 */
 			wpa_auth_logger(sm->wpa_auth, sm->addr, LOGGER_DEBUG,
 					"STA used Secure bit in WPA msg 2/4 - set Secure for 3/4 as workaround");
 			secure = 1;
@@ -4835,7 +4814,7 @@
 	if (pmksa) {
 		wpa_printf(MSG_DEBUG, "WPA: Remove PMKSA cache entry for "
 			   MACSTR " based on request", MAC2STR(sta_addr));
-		pmksa_cache_free_entry(wpa_auth->pmksa, pmksa);
+		pmksa_cache_free_entry(wpa_auth->pmksa, pmksa, PMKSA_FREE);
 	}
 }
 
@@ -5400,14 +5379,6 @@
 		gtk_len = 0;
 		_rsc = NULL;
 		if (sm->rx_eapol_key_secure) {
-			/*
-			 * It looks like Windows 7 supplicant tries to use
-			 * Secure bit in msg 2/4 after having reported Michael
-			 * MIC failure and it then rejects the 4-way handshake
-			 * if msg 3/4 does not set Secure bit. Work around this
-			 * by setting the Secure bit here even in the case of
-			 * WPA if the supplicant used it first.
-			 */
 			wpa_auth_logger(sm->wpa_auth, sm->addr, LOGGER_DEBUG,
 					"STA used Secure bit in WPA msg 2/4 - set Secure for 3/4 as workaround");
 			secure = 1;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth.h b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth.h
index f2e0788..48970a8 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth.h
@@ -179,11 +179,9 @@
 	int wpa_gmk_rekey;
 	int wpa_ptk_rekey;
 	int wpa_deny_ptk0_rekey;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_MERGES
 	int peerkey;
 #endif /* CONFIG_BRCM_MERGES */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	u32 wpa_group_update_count;
 	u32 wpa_pairwise_update_count;
 	int wpa_disable_eapol_key_retries;
@@ -256,11 +254,9 @@
 	u8 ip_addr_start[4];
 	u8 ip_addr_end[4];
 #endif /* CONFIG_P2P */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_RSN_CNTRS
 	u8 replay_cntrs;
 #endif /* CONFIG_BRCM_RSN_CNTRS */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_FILS
 	unsigned int fils_cache_id_set:1;
 	u8 fils_cache_id[FILS_CACHE_ID_LEN];
@@ -272,12 +268,13 @@
 #ifdef CONFIG_DPP2
 	int dpp_pfs;
 #endif /* CONFIG_DPP2 */
-#ifndef CONFIG_DRIVER_NL80211_IFX
+	/* Support for 4-way handshake offload to internal supplicant
+	 * for WPA/WPA2-PSK
+	 */
 	int psk_4way_hs_offload;
 #ifdef CONFIG_SAE
 	int sae_offload;
 #endif /* CONFIG_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 };
 
 typedef enum {
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth_ft.c b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth_ft.c
index 5aa363e..ab00db6 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth_ft.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth_ft.c
@@ -107,9 +107,6 @@
 		if (enc_len < AES_BLOCK_SIZE + 2)
 			goto err;
 
-		/* Try to work around Ethernet devices that add extra
-		 * two octet padding even if the frame is longer than
-		 * the minimum Ethernet frame. */
 		enc_len -= 2;
 		if (aes_siv_decrypt(key, key_len, enc, enc_len, 3, ad, ad_len,
 				    *plain) < 0)
@@ -3522,7 +3519,6 @@
 		res = ocv_verify_tx_params(parse.oci, parse.oci_len, &ci,
 					   tx_chanwidth, tx_seg1_idx);
 		if (wpa_auth_uses_ocv(sm) == 2 && res == OCI_NOT_FOUND) {
-			/* Work around misbehaving STAs */
 			wpa_printf(MSG_INFO,
 				   "Disable OCV with a STA that does not send OCI");
 			wpa_auth_set_ocv(sm, 0);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth_glue.c b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth_glue.c
index a2278df..bb67087 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth_glue.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth_glue.c
@@ -187,11 +187,9 @@
 	os_memcpy(wconf->ip_addr_start, conf->ip_addr_start, 4);
 	os_memcpy(wconf->ip_addr_end, conf->ip_addr_end, 4);
 #endif /* CONFIG_P2P */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_RSN_CNTRS
 	wconf->replay_cntrs = conf->replay_cntrs;
 #endif /* CONFIG_BRCM_RSN_CNTRS */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_FILS
 	wconf->fils_cache_id_set = conf->fils_cache_id_set;
 	os_memcpy(wconf->fils_cache_id, conf->fils_cache_id,
@@ -1485,7 +1483,9 @@
 	else
 		_conf.extended_key_id = 0;
 
-#ifndef CONFIG_DRIVER_NL80211_IFX
+	/* Support for 4-way handshake offload to internal supplicant
+	 * for WPA/WPA2-PSK
+	 */
 	if (!hapd->conf->p2p &&
 	    (hapd->iface->drv_flags2 & WPA_DRIVER_FLAGS2_4WAY_HANDSHAKE_AP_PSK))
 		_conf.psk_4way_hs_offload = 1;
@@ -1494,7 +1494,6 @@
 	if (hapd->iface->drv_flags2 & WPA_DRIVER_FLAGS2_SAE_OFFLOAD_AP)
 		_conf.sae_offload = 1;
 #endif /* CONFIG_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	hapd->wpa_auth = wpa_init(hapd->own_addr, &_conf, &cb, hapd);
 	if (hapd->wpa_auth == NULL) {
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth_ie.c b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth_ie.c
index ca5a2d3..0b57158 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth_ie.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wpa_auth_ie.c
@@ -280,15 +280,13 @@
 	capab = 0;
 	if (conf->rsn_preauth)
 		capab |= WPA_CAPABILITY_PREAUTH;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_MERGES
         if (conf->peerkey)
                 capab |= WPA_CAPABILITY_PEERKEY_ENABLED;
 #endif /* CONFIG_BRCM_MERGES */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (conf->wmm_enabled) {
 		/* 4 PTKSA replay counters when using WMM */
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_BRCM_RSN_CNTRS)
+#if defined(CONFIG_BRCM_RSN_CNTRS)
                 if (conf->replay_cntrs) {
                         capab |= (conf->replay_cntrs << 2);
                 } else {
@@ -392,6 +390,9 @@
 {
 	u8 *pos = buf;
 
+	/* Refer commit 7ce7b05cda: WPA3 R3 client fails to associate AP
+	* * configured in Mixed mode (WPA2+WPA3) security
+	* */
 	if ((conf->wpa_key_mgmt & WPA_KEY_MGMT_SAE) != WPA_KEY_MGMT_SAE &&
 		(conf->sae_pwe != 1 || conf->sae_pwe != 2) && !conf->sae_pk)
 		return 0; /* no supported extended RSN capabilities */
@@ -609,9 +610,6 @@
 
 		if (wpa_key_mgmt_ft(data.key_mgmt) && !mdie &&
 		    !wpa_key_mgmt_only_ft(data.key_mgmt)) {
-			/* Workaround for some HP and Epson printers that seem
-			 * to incorrectly copy the FT-PSK + WPA-PSK AKMs from AP
-			 * advertised RSNE to Association Request frame. */
 			wpa_printf(MSG_DEBUG,
 				   "RSN: FT set in RSNE AKM but MDE is missing from "
 				   MACSTR
@@ -825,11 +823,6 @@
 #ifdef CONFIG_OCV
 	if (wpa_auth->conf.ocv && (data.capabilities & WPA_CAPABILITY_OCVC) &&
 	    !(data.capabilities & WPA_CAPABILITY_MFPC)) {
-		/* Some legacy MFP incapable STAs wrongly copy OCVC bit from
-		 * AP RSN capabilities. To improve interoperability with such
-		 * legacy STAs allow connection without enabling OCV when the
-		 * workaround mode (ocv=2) is enabled.
-		 */
 		if (wpa_auth->conf.ocv == 2) {
 			wpa_printf(MSG_DEBUG,
 				   "Allow connecting MFP incapable and OCV capable STA without enabling OCV");
@@ -921,7 +914,6 @@
 #endif /* CONFIG_IEEE80211R_AP && CONFIG_FILS */
 
 	sm->pmksa = NULL;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_SAE
 	if (data.num_pmkid == 0) {
 		if (wpa_key_mgmt_sae(sm->wpa_key_mgmt)) {
@@ -934,7 +926,6 @@
 	}
 	else {
 #endif /* CONFIG_BRCM_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	for (i = 0; i < data.num_pmkid; i++) {
 		wpa_hexdump(MSG_DEBUG, "RSN IE: STA PMKID",
 			    &data.pmkid[i * PMKID_LEN], PMKID_LEN);
@@ -945,11 +936,9 @@
 			break;
 		}
 	}
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_SAE
 	}
 #endif /* CONFIG_BRCM_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	for (i = 0; sm->pmksa == NULL && wpa_auth->conf.okc &&
 		     i < data.num_pmkid; i++) {
 		struct wpa_auth_okc_iter_data idata;
@@ -982,13 +971,12 @@
 	}
 
 #ifdef CONFIG_SAE
-#ifndef CONFIG_DRIVER_NL80211_IFX
+	/* Support for 4-way handshake offload to internal supplicant
+	 * for WPA/WPA2-PSK
+	 */
 	if (!wpa_auth->conf.psk_4way_hs_offload &&
 	    !wpa_auth->conf.sae_offload &&
 	    sm->wpa_key_mgmt == WPA_KEY_MGMT_SAE && data.num_pmkid &&
-#else /* CONFIG_DRIVER_NL80211_IFX */
-	if (sm->wpa_key_mgmt == WPA_KEY_MGMT_SAE && data.num_pmkid &&
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	    !sm->pmksa) {
 		wpa_auth_vlogger(wpa_auth, sm->addr, LOGGER_DEBUG,
 				 "No PMKSA cache entry found for SAE");
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wps_hostapd.c b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wps_hostapd.c
index dc8aa8f..a4fd208 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wps_hostapd.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/ap/wps_hostapd.c
@@ -1624,11 +1624,6 @@
 	sta = ap_get_sta(hapd, mac_addr);
 #ifndef CONFIG_WPS_STRICT
 	if (!sta) {
-		/*
-		 * Workaround - Intel wsccmd uses bogus NewWLANEventMAC:
-		 * Pick STA that is in an ongoing WPS registration without
-		 * checking the MAC address.
-		 */
 		wpa_printf(MSG_DEBUG, "WPS UPnP: No matching STA found based "
 			   "on NewWLANEventMAC; try wildcard match");
 		for (sta = hapd->sta_list; sta; sta = sta->next) {
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/common/brcm_vendor.h b/src/lynq/packages/thirdpart/lynq-wg870/src/common/brcm_vendor.h
index 63a7566..a7cde17 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/common/brcm_vendor.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/common/brcm_vendor.h
@@ -50,7 +50,6 @@
 	BRCM_VENDOR_EVENT_OVERTEMP	= 43
 };
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_SAE
 enum wifi_sae_key_attr {
         BRCM_SAE_KEY_ATTR_PEER_MAC,
@@ -58,7 +57,6 @@
         BRCM_SAE_KEY_ATTR_PMKID
 };
 #endif /* CONFIG_BRCM_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 enum brcm_nl80211_vendor_bcnrecv_attr_type {
 	BRCM_BCNRECV_ATTR_STATUS = 1,
@@ -67,4 +65,3 @@
 	BRCM_BCNRECV_ATTR_MAX
 };
 #endif /* BRCM_VENDOR_H */
-
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/common/defs.h b/src/lynq/packages/thirdpart/lynq-wg870/src/common/defs.h
index 351f599..bbe3120 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/common/defs.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/common/defs.h
@@ -161,17 +161,10 @@
 	return wpa_key_mgmt_wpa(akm) || (akm & WPA_KEY_MGMT_WPA_NONE);
 }
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(BRCM_CCX)
-static inline int wpa_key_mgmt_cckm(int akm)
-{
-	return !!(akm & (WPA_KEY_MGMT_CCKM));
-}
-#else
 static inline int wpa_key_mgmt_cckm(int akm)
 {
 	return akm == WPA_KEY_MGMT_CCKM;
 }
-#endif /* CONFIG_DRIVER_NL80211_IFX && BRCM_CCX */
 
 
 #define WPA_PROTO_WPA BIT(0)
@@ -206,11 +199,6 @@
 	WPA_ALG_BIP_GMAC_128,
 	WPA_ALG_BIP_GMAC_256,
 	WPA_ALG_BIP_CMAC_256
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        , WAPI_ALG_SMS4
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 };
 
 static inline int wpa_alg_bip(enum wpa_alg alg)
@@ -336,11 +324,6 @@
 	 * fully configured.
 	 */
 	WPA_COMPLETED
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI /* to be detailed out */
-        , WAPI_SPECIFIC
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 };
 
 #define MLME_SETPROTECTION_PROTECT_TYPE_NONE 0
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/common/dpp.c b/src/lynq/packages/thirdpart/lynq-wg870/src/common/dpp.c
index 0683072..130e62f 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/common/dpp.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/common/dpp.c
@@ -38,9 +38,8 @@
 enum dpp_test_behavior dpp_test = DPP_TEST_DISABLED;
 #endif /* CONFIG_TESTING_OPTIONS */
 
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
-	(defined(LIBRESSL_VERSION_NUMBER) && \
-	 LIBRESSL_VERSION_NUMBER < 0x20700000L)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && \
+	LIBRESSL_VERSION_NUMBER < 0x20700000L)
 /* Compatibility wrappers for older versions. */
 
 #ifdef CONFIG_DPP2
@@ -1042,7 +1041,6 @@
 		pos += 6;
 		end = os_strchr(pos, ' ');
 		conf->ssid_len = end ? (size_t) (end - pos) : os_strlen(pos);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_DPP_FIX
 		/* Remove check for ssid in hex as we are supplying
 		 * string format in dpp_auth_init */
@@ -1053,18 +1051,11 @@
 		    hexstr2bin(pos, conf->ssid, conf->ssid_len) < 0)
 
 #endif /* CONFIG_DPP_FIX */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-		conf->ssid_len /= 2;
-		if (conf->ssid_len > sizeof(conf->ssid) ||
-		    hexstr2bin(pos, conf->ssid, conf->ssid_len) < 0)
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 			goto fail;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_DPP_FIX
 		}
 		os_memcpy(conf->ssid, pos, conf->ssid_len);
 #endif /* CONFIG_DPP_FIX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	} else {
 #ifdef CONFIG_TESTING_OPTIONS
 		/* use a default SSID for legacy testing reasons */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/common/dpp_backup.c b/src/lynq/packages/thirdpart/lynq-wg870/src/common/dpp_backup.c
index 3b81f09..c964811 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/common/dpp_backup.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/common/dpp_backup.c
@@ -19,9 +19,8 @@
 
 #ifdef CONFIG_DPP2
 
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
-	(defined(LIBRESSL_VERSION_NUMBER) && \
-	 LIBRESSL_VERSION_NUMBER < 0x20700000L)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && \
+	LIBRESSL_VERSION_NUMBER < 0x20700000L)
 /* Compatibility wrappers for older versions. */
 
 static EC_KEY * EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey)
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/common/dpp_crypto.c b/src/lynq/packages/thirdpart/lynq-wg870/src/common/dpp_crypto.c
index 2d0fb39..f3434a9 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/common/dpp_crypto.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/common/dpp_crypto.c
@@ -26,9 +26,8 @@
 #include "dpp_i.h"
 
 
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
-	(defined(LIBRESSL_VERSION_NUMBER) && \
-	 LIBRESSL_VERSION_NUMBER < 0x20700000L)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && \
+	LIBRESSL_VERSION_NUMBER < 0x20700000L)
 /* Compatibility wrappers for older versions. */
 
 static int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s)
@@ -49,7 +48,6 @@
 }
 
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifndef ABOVE_8_1
 static EC_KEY * EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey)
 {
@@ -58,14 +56,6 @@
 	return pkey->pkey.ec;
 }
 #endif /* ABOVE_8_1 */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-static EC_KEY * EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey)
-{
-	if (pkey->type != EVP_PKEY_EC)
-		return NULL;
-	return pkey->pkey.ec;
-}
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #endif
 
@@ -932,14 +922,6 @@
 		u8 buf[200];
 		int level = *secret_len > 200 ? MSG_ERROR : MSG_DEBUG;
 
-		/* It looks like OpenSSL can return unexpectedly large buffer
-		 * need for shared secret from EVP_PKEY_derive(NULL) in some
-		 * cases. For example, group 19 has shown cases where secret_len
-		 * is set to 72 even though the actual length ends up being
-		 * updated to 32 when EVP_PKEY_derive() is called with a buffer
-		 * for the value. Work around this by trying to fetch the value
-		 * and continue if it is within supported range even when the
-		 * initial buffer need is claimed to be larger. */
 		wpa_printf(level,
 			   "DPP: Unexpected secret_len=%d from EVP_PKEY_derive()",
 			   (int) *secret_len);
@@ -1015,9 +997,8 @@
 	const unsigned char *pk;
 	int ppklen;
 	X509_ALGOR *pa;
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
-	(defined(LIBRESSL_VERSION_NUMBER) && \
-	 LIBRESSL_VERSION_NUMBER < 0x20800000L)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && \
+	LIBRESSL_VERSION_NUMBER < 0x20800000L)
 	ASN1_OBJECT *pa_oid;
 #else
 	const ASN1_OBJECT *pa_oid;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/common/dpp_pkex.c b/src/lynq/packages/thirdpart/lynq-wg870/src/common/dpp_pkex.c
index 135ae65..e42f7fb 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/common/dpp_pkex.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/common/dpp_pkex.c
@@ -27,12 +27,10 @@
 size_t dpp_pkex_ephemeral_key_override_len = 0;
 #endif /* CONFIG_TESTING_OPTIONS */
 
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
-	(defined(LIBRESSL_VERSION_NUMBER) && \
-	 LIBRESSL_VERSION_NUMBER < 0x20700000L)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && \
+	LIBRESSL_VERSION_NUMBER < 0x20700000L)
 /* Compatibility wrappers for older versions. */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifndef ABOVE_8_1
 static EC_KEY * EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey)
 {
@@ -41,14 +39,6 @@
 	return pkey->pkey.ec;
 }
 #endif /* ABOVE_8_1 */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-static EC_KEY * EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey)
-{
-	if (pkey->type != EVP_PKEY_EC)
-		return NULL;
-	return pkey->pkey.ec;
-}
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #endif
 
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/common/dragonfly.c b/src/lynq/packages/thirdpart/lynq-wg870/src/common/dragonfly.c
index 547be66..1e84271 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/common/dragonfly.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/common/dragonfly.c
@@ -213,3 +213,37 @@
 		   "dragonfly: Unable to get randomness for own scalar");
 	return -1;
 }
+
+
+/* res = sqrt(val) */
+int dragonfly_sqrt(struct crypto_ec *ec, const struct crypto_bignum *val,
+		   struct crypto_bignum *res)
+{
+	const struct crypto_bignum *prime;
+	struct crypto_bignum *tmp, *one;
+	int ret = 0;
+	u8 prime_bin[DRAGONFLY_MAX_ECC_PRIME_LEN];
+	size_t prime_len;
+
+	/* For prime p such that p = 3 mod 4, sqrt(w) = w^((p+1)/4) mod p */
+
+	prime = crypto_ec_get_prime(ec);
+	prime_len = crypto_ec_prime_len(ec);
+	tmp = crypto_bignum_init();
+	one = crypto_bignum_init_uint(1);
+
+	if (crypto_bignum_to_bin(prime, prime_bin, sizeof(prime_bin),
+				 prime_len) < 0 ||
+	    (prime_bin[prime_len - 1] & 0x03) != 3 ||
+	    !tmp || !one ||
+	    /* tmp = (p+1)/4 */
+	    crypto_bignum_add(prime, one, tmp) < 0 ||
+	    crypto_bignum_rshift(tmp, 2, tmp) < 0 ||
+	    /* res = sqrt(val) */
+	    crypto_bignum_exptmod(val, tmp, prime, res) < 0)
+		ret = -1;
+
+	crypto_bignum_deinit(tmp, 0);
+	crypto_bignum_deinit(one, 0);
+	return ret;
+}
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/common/dragonfly.h b/src/lynq/packages/thirdpart/lynq-wg870/src/common/dragonfly.h
index ec3dd59..84d67f5 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/common/dragonfly.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/common/dragonfly.h
@@ -27,5 +27,7 @@
 			      struct crypto_bignum *_rand,
 			      struct crypto_bignum *_mask,
 			      struct crypto_bignum *scalar);
+int dragonfly_sqrt(struct crypto_ec *ec, const struct crypto_bignum *val,
+		   struct crypto_bignum *res);
 
 #endif /* DRAGONFLY_H */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/common/ieee802_11_common.c b/src/lynq/packages/thirdpart/lynq-wg870/src/common/ieee802_11_common.c
index 44e83f1..f76994d 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/common/ieee802_11_common.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/common/ieee802_11_common.c
@@ -574,14 +574,6 @@
 						       show_errors))
 				unknown++;
 			break;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-                case WLAN_EID_WAPI:
-                        elems->wapiap_ie = pos;
-                        elems->wapiap_ie_len = elen;
-                        break;
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		default:
 			unknown++;
 			if (!show_errors)
@@ -696,12 +688,10 @@
 			return NULL;
 		return hdr->addr1;
 	case WLAN_FC_TYPE_MGMT:
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_10
 		if (len < 24)
 			return NULL;
 #endif /* ABOVE_10 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		return hdr->addr3;
 	default:
 		return NULL;
@@ -1539,11 +1529,9 @@
 static int is_11b(u8 rate)
 {
 	return rate == 0x02 || rate == 0x04 || rate == 0x0b || rate == 0x16
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_ANDROID12
 	        || rate == 0x82 || rate == 0x84 || rate == 0x8b || rate == 0x96
 #endif /* CONFIG_ANDROID12 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		;
 }
 
@@ -1922,10 +1910,6 @@
 	{ HOSTAPD_MODE_IEEE80211AD, 182, 17, 20, 1, BW6480, P2P_SUPP },
 	{ HOSTAPD_MODE_IEEE80211AD, 183, 25, 27, 1, BW8640, P2P_SUPP },
 
-	/* Keep the operating class 130 as the last entry as a workaround for
-	 * the OneHundredAndThirty Delimiter value used in the Supported
-	 * Operating Classes element to indicate the end of the Operating
-	 * Classes field. */
 	{ HOSTAPD_MODE_IEEE80211A, 130, 36, 161, 4, BW80P80, P2P_SUPP },
 	{ -1, 0, 0, 0, 0, BW20, NO_P2P_SUPP }
 };
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/common/ieee802_11_common.h b/src/lynq/packages/thirdpart/lynq-wg870/src/common/ieee802_11_common.h
index 7283b87..0ae0fa4 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/common/ieee802_11_common.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/common/ieee802_11_common.h
@@ -171,16 +171,6 @@
 
 	struct mb_ies_info mb_ies;
 	struct frag_ies_info frag_ies;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	const u8 *wapi_ie;
-	u8 wapi_ie_len;
-#endif /* WAPI */
-#ifdef WAPI_AP
-        const u8 *wapiap_ie;
-        u8 wapiap_ie_len;
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 };
 
 typedef enum { ParseOK = 0, ParseUnknown = 1, ParseFailed = -1 } ParseRes;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/common/ieee802_11_defs.h b/src/lynq/packages/thirdpart/lynq-wg870/src/common/ieee802_11_defs.h
index 6cde9ef..f3ae1b1 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/common/ieee802_11_defs.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/common/ieee802_11_defs.h
@@ -123,21 +123,17 @@
 #define WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA 17
 #define WLAN_STATUS_ASSOC_DENIED_RATES 18
 #define WLAN_STATUS_ASSOC_DENIED_NOSHORT 19
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_MERGES
 #define WLAN_STATUS_ASSOC_DENIED_NOPBCC 20
 #define WLAN_STATUS_ASSOC_DENIED_NOAGILITY 21
 #endif /* CONFIG_BRCM_MERGES */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #define WLAN_STATUS_SPEC_MGMT_REQUIRED 22
 #define WLAN_STATUS_PWR_CAPABILITY_NOT_VALID 23
 #define WLAN_STATUS_SUPPORTED_CHANNEL_NOT_VALID 24
 #define WLAN_STATUS_ASSOC_DENIED_NO_SHORT_SLOT_TIME 25
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_MERGES
 #define WLAN_STATUS_ASSOC_DENIED_NO_DSSS_OFDM 26
 #endif /* CONFIG_BRCM_MERGES */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #define WLAN_STATUS_ASSOC_DENIED_NO_HT 27
 #define WLAN_STATUS_R0KH_UNREACHABLE 28
 #define WLAN_STATUS_ASSOC_DENIED_NO_PCO 29
@@ -286,11 +282,9 @@
 /* Information Element IDs (IEEE Std 802.11-2016, 9.4.2.1, Table 9-77) */
 #define WLAN_EID_SSID 0
 #define WLAN_EID_SUPP_RATES 1
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_MERGES
 #define WLAN_EID_FH_PARAMS 2
 #endif /* CONFIG_BRCM_MERGES */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #define WLAN_EID_DS_PARAMS 3
 #define WLAN_EID_CF_PARAMS 4
 #define WLAN_EID_TIM 5
@@ -337,14 +331,10 @@
 #define WLAN_EID_RSNI 65
 #define WLAN_EID_MEASUREMENT_PILOT_TRANSMISSION 66
 #define WLAN_EID_BSS_AVAILABLE_ADM_CAPA 67
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_MERGES
 //#define WLAN_EID_BSS_AC_ACCESS_DELAY 68 /* note: also used by WAPI */
 #define WLAN_EID_WAPI 68
 #endif /* CONFIG_BRCM_MERGES */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-#define WLAN_EID_BSS_AC_ACCESS_DELAY 68 /* note: also used by WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #define WLAN_EID_TIME_ADVERTISEMENT 69
 #define WLAN_EID_RRM_ENABLED_CAPABILITIES 70
 #define WLAN_EID_MULTIPLE_BSSID 71
@@ -1344,11 +1334,9 @@
 #define OSEN_IE_VENDOR_TYPE 0x506f9a12
 #define MBO_IE_VENDOR_TYPE 0x506f9a16
 #define MBO_OUI_TYPE 22
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_AFBT
 #define AFBT_IE_VENDOR_TYPE 0x0040960b
 #endif /* BRCM_AFBT */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #define OWE_IE_VENDOR_TYPE 0x506f9a1c
 #define OWE_OUI_TYPE 28
 #define MULTI_AP_OUI_TYPE 0x1B
@@ -1744,7 +1732,6 @@
 	P2P_SD_BAD_REQUEST = 3
 };
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_MERGES
 /* cipher suite selectors */
 #define WLAN_CIPHER_SUITE_USE_GROUP	0x000FAC00
@@ -1762,11 +1749,7 @@
 #define WLAN_CIPHER_SUITE_BIP_GMAC_256	0x000FAC0C
 #define WLAN_CIPHER_SUITE_BIP_CMAC_256	0x000FAC0D
 
-#if defined(WAPI) && !defined(USE_STANDARD_SUITE_SMS4_VAL)
-#define WLAN_CIPHER_SUITE_SMS4		0x000FAC07
-#else
 #define WLAN_CIPHER_SUITE_SMS4		0x00147201
-#endif /* WAPI && !USE_STANDARD_SUITE_SMS4_VAL */
 #define WLAN_CIPHER_SUITE_CKIP		0x00409600
 #define WLAN_CIPHER_SUITE_CKIP_CMIC	0x00409601
 #define WLAN_CIPHER_SUITE_CMIC		0x00409602
@@ -1783,16 +1766,11 @@
 #define WLAN_AKM_SUITE_FT_PSK		0x000FAC04
 #define WLAN_AKM_SUITE_8021X_SHA256	0x000FAC05
 #define WLAN_AKM_SUITE_PSK_SHA256	0x000FAC06
-#ifdef WAPI
-#define WLAN_AKM_SUITE_WAPI_PSK		0x000FAC04
-#define WLAN_AKM_SUITE_WAPI_CERT	0x000FAC12
-#endif /* WAPI */
 #define WLAN_AKM_SUITE_8021X_SUITE_B	0x000FAC11
 #define WLAN_AKM_SUITE_8021X_SUITE_B_192	0x000FAC12
 #define WLAN_AKM_SUITE_CCKM		0x00409600
 #define WLAN_AKM_SUITE_OSEN		0x506f9a01
 #endif /* CONFIG_BRCM_MERGES */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 enum wifi_display_subelem {
 	WFD_SUBELEM_DEVICE_INFO = 0,
@@ -1838,7 +1816,6 @@
 
 #define VENDOR_HT_CAPAB_OUI_TYPE 0x33 /* 00-90-4c:0x33 */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_MERGES
 /* cipher suite selectors */
 #define WLAN_CIPHER_SUITE_USE_GROUP     0x000FAC00
@@ -1856,11 +1833,7 @@
 #define WLAN_CIPHER_SUITE_BIP_GMAC_256  0x000FAC0C
 #define WLAN_CIPHER_SUITE_BIP_CMAC_256  0x000FAC0D
 
-#if defined(WAPI) && !defined(USE_STANDARD_SUITE_SMS4_VAL)
-#define WLAN_CIPHER_SUITE_SMS4          0x000FAC07
-#else
 #define WLAN_CIPHER_SUITE_SMS4          0x00147201
-#endif /* WAPI && !USE_STANDARD_SUITE_SMS4_VAL */
 #define WLAN_CIPHER_SUITE_CKIP          0x00409600
 #define WLAN_CIPHER_SUITE_CKIP_CMIC     0x00409601
 #define WLAN_CIPHER_SUITE_CMIC          0x00409602
@@ -1877,16 +1850,11 @@
 #define WLAN_AKM_SUITE_FT_PSK           0x000FAC04
 #define WLAN_AKM_SUITE_8021X_SHA256     0x000FAC05
 #define WLAN_AKM_SUITE_PSK_SHA256       0x000FAC06
-#ifdef WAPI
-#define WLAN_AKM_SUITE_WAPI_PSK         0x000FAC04
-#define WLAN_AKM_SUITE_WAPI_CERT        0x000FAC12
-#endif /* WAPI */
 #define WLAN_AKM_SUITE_8021X_SUITE_B    0x000FAC11
 #define WLAN_AKM_SUITE_8021X_SUITE_B_192        0x000FAC12
 #define WLAN_AKM_SUITE_CCKM             0x00409600
 #define WLAN_AKM_SUITE_OSEN             0x506f9a01
 #endif /* CONFIG_BRCM_MERGES */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 /* IEEE 802.11v - WNM Action field values */
 enum wnm_action {
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/common/sae.c b/src/lynq/packages/thirdpart/lynq-wg870/src/common/sae.c
index 372905d..88cbe53 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/common/sae.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/common/sae.c
@@ -291,14 +291,16 @@
 	int pwd_seed_odd = 0;
 	u8 prime[SAE_MAX_ECC_PRIME_LEN];
 	size_t prime_len;
-	struct crypto_bignum *x = NULL, *qr = NULL, *qnr = NULL;
+	struct crypto_bignum *x = NULL, *y = NULL, *qr = NULL, *qnr = NULL;
 	u8 x_bin[SAE_MAX_ECC_PRIME_LEN];
 	u8 x_cand_bin[SAE_MAX_ECC_PRIME_LEN];
 	u8 qr_bin[SAE_MAX_ECC_PRIME_LEN];
 	u8 qnr_bin[SAE_MAX_ECC_PRIME_LEN];
+	u8 x_y[2 * SAE_MAX_ECC_PRIME_LEN];
 	int res = -1;
 	u8 found = 0; /* 0 (false) or 0xff (true) to be used as const_time_*
 		       * mask */
+	unsigned int is_eq;
 
 	os_memset(x_bin, 0, sizeof(x_bin));
 
@@ -407,25 +409,42 @@
 		goto fail;
 	}
 
-	if (!sae->tmp->pwe_ecc)
-		sae->tmp->pwe_ecc = crypto_ec_point_init(sae->tmp->ec);
-	if (!sae->tmp->pwe_ecc)
-		res = -1;
-	else
-		res = crypto_ec_point_solve_y_coord(sae->tmp->ec,
-						    sae->tmp->pwe_ecc, x,
-						    pwd_seed_odd);
-	if (res < 0) {
-		/*
-		 * This should not happen since we already checked that there
-		 * is a result.
-		 */
+	/* y = sqrt(x^3 + ax + b) mod p
+	 * if LSB(save) == LSB(y): PWE = (x, y)
+	 * else: PWE = (x, p - y)
+	 *
+	 * Calculate y and the two possible values for PWE and after that,
+	 * use constant time selection to copy the correct alternative.
+	 */
+	y = crypto_ec_point_compute_y_sqr(sae->tmp->ec, x);
+	if (!y ||
+	    dragonfly_sqrt(sae->tmp->ec, y, y) < 0 ||
+	    crypto_bignum_to_bin(y, x_y, SAE_MAX_ECC_PRIME_LEN,
+				 prime_len) < 0 ||
+	    crypto_bignum_sub(sae->tmp->prime, y, y) < 0 ||
+	    crypto_bignum_to_bin(y, x_y + SAE_MAX_ECC_PRIME_LEN,
+				 SAE_MAX_ECC_PRIME_LEN, prime_len) < 0) {
 		wpa_printf(MSG_DEBUG, "SAE: Could not solve y");
+		goto fail;
+	}
+
+	is_eq = const_time_eq(pwd_seed_odd, x_y[prime_len - 1] & 0x01);
+	const_time_select_bin(is_eq, x_y, x_y + SAE_MAX_ECC_PRIME_LEN,
+			      prime_len, x_y + prime_len);
+	os_memcpy(x_y, x_bin, prime_len);
+	wpa_hexdump_key(MSG_DEBUG, "SAE: PWE", x_y, 2 * prime_len);
+	crypto_ec_point_deinit(sae->tmp->pwe_ecc, 1);
+	sae->tmp->pwe_ecc = crypto_ec_point_from_bin(sae->tmp->ec, x_y);
+	if (!sae->tmp->pwe_ecc) {
+		wpa_printf(MSG_DEBUG, "SAE: Could not generate PWE");
+		res = -1;
 	}
 
 fail:
+	forced_memzero(x_y, sizeof(x_y));
 	crypto_bignum_deinit(qr, 0);
 	crypto_bignum_deinit(qnr, 0);
+	crypto_bignum_deinit(y, 1);
 	os_free(dummy_password);
 	bin_clear_free(tmp_password, password_len);
 	crypto_bignum_deinit(x, 1);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/common/version.h b/src/lynq/packages/thirdpart/lynq-wg870/src/common/version.h
index 7bdc96c..665dd23 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/common/version.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/common/version.h
@@ -9,27 +9,16 @@
 #define GIT_VERSION_STR_POSTFIX ""
 #endif /* GIT_VERSION_STR_POSTFIX */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #define BRCM_MAJOR_VER		"201"
-#define BRCM_MINOR_VER		"10"
+#define BRCM_MINOR_VER		"19"
 #define BRCM_VER_INFO		" BRCM_VER:" BRCM_MAJOR_VER "." BRCM_MINOR_VER
 
-#ifdef BRCM_DEBUG
-#define OPENSRC_GIT_HASH	"1759a8e3f36a40b20e7c7df06c6d1afc5d1c30c7"
-#define OPENSRC_SYNC_DATE	"(11/23/2020)"
-#define BRCM_STR_POSTFIX BRCM_VER_INFO" GITHASH:"OPENSRC_GIT_HASH " "OPENSRC_SYNC_DATE" \nCompiled in" \
-		SUP_SRC_BASE " on " __DATE__ " at " __TIME__ "\n"
-#else
 #define BRCM_STR_POSTFIX BRCM_VER_INFO
-#endif
 
-#if defined (ANDROID_P2P) || defined (BRCM_DEBUG)
+#if defined(ANDROID_P2P)
 #define VERSION_STR "2.10-devel" VERSION_STR_POSTFIX  BRCM_STR_POSTFIX
 #else
 #define VERSION_STR "2.10-devel" VERSION_STR_POSTFIX GIT_VERSION_STR_POSTFIX
 #endif
-#else
-#define VERSION_STR "2.10-devel" VERSION_STR_POSTFIX GIT_VERSION_STR_POSTFIX
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #endif /* VERSION_H */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/common/wpa_common.c b/src/lynq/packages/thirdpart/lynq-wg870/src/common/wpa_common.c
index e9e1221..b5143d1 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/common/wpa_common.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/common/wpa_common.c
@@ -21,11 +21,7 @@
 #include "wpa_common.h"
 
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(BRCM_CCX)
-unsigned int wpa_kck_len(int akmp, size_t pmk_len)
-#else
 static unsigned int wpa_kck_len(int akmp, size_t pmk_len)
-#endif /* CONFIG_DRIVER_NL80211_IFX && BRCM_CCX */
 {
 	switch (akmp) {
 	case WPA_KEY_MGMT_IEEE8021X_SUITE_B_192:
@@ -61,11 +57,7 @@
 #endif /* CONFIG_IEEE80211R */
 
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(BRCM_CCX)
-unsigned int wpa_kek_len(int akmp, size_t pmk_len)
-#else
 static unsigned int wpa_kek_len(int akmp, size_t pmk_len)
-#endif /* CONFIG_DRIVER_NL80211_IFX && BRCM_CCX */
 {
 	switch (akmp) {
 	case WPA_KEY_MGMT_FILS_SHA384:
@@ -1189,12 +1181,6 @@
 	if (RSN_SELECTOR_GET(s) == RSN_AUTH_KEY_MGMT_FT_SAE)
 		return WPA_KEY_MGMT_FT_SAE;
 #endif /* CONFIG_SAE */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-	if (RSN_SELECTOR_GET(s) == RSN_AUTH_KEY_MGMT_CCKM)
-		return WPA_KEY_MGMT_CCKM;
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (RSN_SELECTOR_GET(s) == RSN_AUTH_KEY_MGMT_802_1X_SUITE_B)
 		return WPA_KEY_MGMT_IEEE8021X_SUITE_B;
 	if (RSN_SELECTOR_GET(s) == RSN_AUTH_KEY_MGMT_802_1X_SUITE_B_192)
@@ -1236,7 +1222,6 @@
 		cipher == WPA_CIPHER_BIP_CMAC_256;
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if BRCM_AFBT
 int wpa_adaptive_fbt_update(u8 *rsn_ie, int rsn_ie_len)
 {
@@ -1327,7 +1312,6 @@
 	return 0;
 }
 #endif /* BRCM_AFBT */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 /**
  * wpa_parse_wpa_ie_rsn - Parse RSN IE
@@ -1525,12 +1509,6 @@
 		return WPA_KEY_MGMT_PSK;
 	if (RSN_SELECTOR_GET(s) == WPA_AUTH_KEY_MGMT_NONE)
 		return WPA_KEY_MGMT_WPA_NONE;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-	if (RSN_SELECTOR_GET(s) == WPA_AUTH_KEY_MGMT_CCKM)
-		return WPA_KEY_MGMT_CCKM;
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	return 0;
 }
 
@@ -2159,13 +2137,6 @@
 		return "WPA2-EAP-SHA256";
 	case WPA_KEY_MGMT_PSK_SHA256:
 		return "WPA2-PSK-SHA256";
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-	case WPA_KEY_MGMT_CCKM:
-		return proto == WPA_PROTO_RSN ?
-			"WPA2/CCKM/EAP" : "WPA/CCKM/EAP";
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	case WPA_KEY_MGMT_WPS:
 		return "WPS";
 	case WPA_KEY_MGMT_SAE:
@@ -2618,12 +2589,6 @@
 			val |= WPA_CIPHER_NONE;
 		else if (os_strcmp(start, "GTK_NOT_USED") == 0)
 			val |= WPA_CIPHER_GTK_NOT_USED;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-		else if (os_strcmp(start, "SMS4") == 0)
-			val |= WPA_CIPHER_SMS4;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		else if (os_strcmp(start, "AES-128-CMAC") == 0)
 			val |= WPA_CIPHER_AES_128_CMAC;
 		else if (os_strcmp(start, "BIP-GMAC-128") == 0)
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/common/wpa_common.h b/src/lynq/packages/thirdpart/lynq-wg870/src/common/wpa_common.h
index 3f3d1bd..07f8d67 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/common/wpa_common.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/common/wpa_common.h
@@ -85,9 +85,6 @@
 #define RSN_CIPHER_SUITE_NONE RSN_SELECTOR(0x00, 0x0f, 0xac, 0)
 #define RSN_CIPHER_SUITE_WEP40 RSN_SELECTOR(0x00, 0x0f, 0xac, 1)
 #define RSN_CIPHER_SUITE_TKIP RSN_SELECTOR(0x00, 0x0f, 0xac, 2)
-#if 0
-#define RSN_CIPHER_SUITE_WRAP RSN_SELECTOR(0x00, 0x0f, 0xac, 3)
-#endif
 #define RSN_CIPHER_SUITE_CCMP RSN_SELECTOR(0x00, 0x0f, 0xac, 4)
 #define RSN_CIPHER_SUITE_WEP104 RSN_SELECTOR(0x00, 0x0f, 0xac, 5)
 #define RSN_CIPHER_SUITE_AES_128_CMAC RSN_SELECTOR(0x00, 0x0f, 0xac, 6)
@@ -109,19 +106,14 @@
  * GroupKey and PeerKey require encryption, otherwise, encryption is optional.
  */
 #define RSN_KEY_DATA_GROUPKEY RSN_SELECTOR(0x00, 0x0f, 0xac, 1)
-#if 0
-#define RSN_KEY_DATA_STAKEY RSN_SELECTOR(0x00, 0x0f, 0xac, 2)
-#endif
 #define RSN_KEY_DATA_MAC_ADDR RSN_SELECTOR(0x00, 0x0f, 0xac, 3)
 #define RSN_KEY_DATA_PMKID RSN_SELECTOR(0x00, 0x0f, 0xac, 4)
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_PEERKEY
 #define RSN_KEY_DATA_SMK RSN_SELECTOR(0x00, 0x0f, 0xac, 5)
 #define RSN_KEY_DATA_NONCE RSN_SELECTOR(0x00, 0x0f, 0xac, 6)
 #define RSN_KEY_DATA_LIFETIME RSN_SELECTOR(0x00, 0x0f, 0xac, 7)
 #define RSN_KEY_DATA_ERROR RSN_SELECTOR(0x00, 0x0f, 0xac, 8)
 #endif /* CONFIG_PEERKEY */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #define RSN_KEY_DATA_IGTK RSN_SELECTOR(0x00, 0x0f, 0xac, 9)
 #define RSN_KEY_DATA_KEYID RSN_SELECTOR(0x00, 0x0f, 0xac, 10)
 #define RSN_KEY_DATA_MULTIBAND_GTK RSN_SELECTOR(0x00, 0x0f, 0xac, 11)
@@ -177,13 +169,6 @@
 #define FT_R0KH_ID_MAX_LEN 48
 #define FT_R1KH_ID_LEN 6
 #define WPA_PMK_NAME_LEN 16
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-/* CCX CCKM */
-#define CCKM_KRK_LEN 16 /* CCKM KRK length */
-#define CCKM_BTK_LEN 32 /* CCKM BTK length */
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 
 /* IEEE 802.11, 8.5.2 EAPOL-Key frames */
@@ -221,7 +206,6 @@
 	/* big endian 2-octet Key Data Length field */
 	/* followed by Key Data Length bytes of Key Data */
 } STRUCT_PACKED;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_MERGES
 struct wpa_eapol_key_192 {
 	u8 type;
@@ -238,7 +222,6 @@
 	/* followed by key_data_length bytes of key_data */
 } STRUCT_PACKED;
 #endif /* CONFIG_BRCM_MERGES */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #define WPA_EAPOL_KEY_MIC_MAX_LEN 32
 #define WPA_KCK_MAX_LEN 32
@@ -333,7 +316,6 @@
 } STRUCT_PACKED;
 
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_PEERKEY
 enum {
 	STK_MUI_4WAY_STA_AP = 1,
@@ -349,7 +331,6 @@
 	STK_ERR_NO_STSL = 4
 };
 #endif /* CONFIG_PEERKEY */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 struct rsn_error_kde {
 	be16 mui;
 	be16 error_type;
@@ -636,15 +617,9 @@
 int wpa_write_ciphers(char *start, char *end, int ciphers, const char *delim);
 int wpa_select_ap_group_cipher(int wpa, int wpa_pairwise, int rsn_pairwise);
 unsigned int wpa_mic_len(int akmp, size_t pmk_len);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-unsigned int wpa_kck_len(int akmp, size_t pmk_len);
-unsigned int wpa_kek_len(int akmp, size_t pmk_len);
-#endif /* BRCM_CCX */
 #ifdef BRCM_AFBT
 int wpa_adaptive_fbt_update(u8 *rsn_ie, int rsn_ie_len);
 #endif /* BRCM_AFBT */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 int wpa_use_akm_defined(int akmp);
 int wpa_use_cmac(int akmp);
 int wpa_use_aes_key_wrap(int akmp);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/common/wpa_ctrl.c b/src/lynq/packages/thirdpart/lynq-wg870/src/common/wpa_ctrl.c
index b56b87a..7b7052c 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/common/wpa_ctrl.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/common/wpa_ctrl.c
@@ -25,14 +25,10 @@
 #include <dirent.h>
 #include <sys/stat.h>
 #include <cutils/sockets.h>
-#ifdef CONFIG_DRIVER_NL80211_IFX
 /* Generic android code available in all versions */
 #include <grp.h>
 #include <pwd.h>
 #include <sys/types.h>
-#else /* CONFIG_DRIVER_NL80211_IFX */
-#include "private/android_filesystem_config.h"
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* ANDROID */
 
 #ifdef CONFIG_CTRL_IFACE_UDP_IPV6
@@ -107,14 +103,12 @@
 	size_t res;
 	int tries = 0;
 	int flags;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ANDROID
 	struct group *grp_wifi;
 	gid_t gid_wifi;
 	struct passwd *pwd_system;
 	uid_t uid_system;
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	if (ctrl_path == NULL)
 		return NULL;
@@ -182,7 +176,6 @@
 
 #ifdef ANDROID
 	/* Set group even if we do not have privileges to change owner */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 	/* Generic android code available in all versions */
 	chmod(ctrl->local.sun_path, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
 	grp_wifi = getgrnam("wifi");
@@ -197,10 +190,6 @@
 	}
 	chown(ctrl->local.sun_path, -1, gid_wifi);
 	chown(ctrl->local.sun_path, uid_system, gid_wifi);
-#else /* CONFIG_DRIVER_NL80211_IFX */
-	lchown(ctrl->local.sun_path, -1, AID_WIFI);
-	lchown(ctrl->local.sun_path, AID_SYSTEM, AID_WIFI);
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	if (os_strncmp(ctrl_path, "@android:", 9) == 0) {
 		if (socket_local_client_connect(
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/common/wpa_ctrl.h b/src/lynq/packages/thirdpart/lynq-wg870/src/common/wpa_ctrl.h
index e56c508..acc2d6c 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/common/wpa_ctrl.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/common/wpa_ctrl.h
@@ -356,13 +356,6 @@
 
 /* BSS Transition Management Response frame received */
 #define BSS_TM_RESP "BSS-TM-RESP "
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_DEBUG
-#define TDLS_EVENT_PEER_FOUND "TDLS-PEER-FOUND "
-#define TDLS_PEER_CONNECTED "TDLS-PEER-CONNECTED "
-#define TDLS_PEER_DISCONNECTED "TDLS-PEER-DISCONNECTED "
-#endif /* BRCM_DEBUG */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 /* Collocated Interference Request frame received;
  * parameters: <dialog token> <automatic report enabled> <report timeout> */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/crypto_module_tests.c b/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/crypto_module_tests.c
index fafb688..1aa0e22 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/crypto_module_tests.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/crypto_module_tests.c
@@ -1304,19 +1304,6 @@
 		},
 		20
 	},
-#if 0 /* This takes quite long to derive.. */
-	{
-		"password",
-		"salt",
-		16777216,
-		{
-			0xee, 0xfe, 0x3d, 0x61, 0xcd, 0x4d, 0xa4, 0xe4,
-			0xe9, 0x94, 0x5b, 0x3d, 0x6b, 0xa2, 0x15, 0x8c,
-			0x26, 0x34, 0xe9, 0x84
-		},
-		20
-	},
-#endif
 	{
 		"passwordPASSWORDpassword",
 		"saltSALTsaltSALTsaltSALTsaltSALTsalt",
@@ -1329,18 +1316,6 @@
 		},
 		25
 	},
-#if 0 /* \0 not currently supported in passphrase parameters.. */
-	{
-		"pass\0word",
-		"sa\0lt",
-		4096,
-		{
-			0x56, 0xfa, 0x6a, 0xa7, 0x55, 0x48, 0x09, 0x9d,
-			0xcc, 0x37, 0xd7, 0xf0, 0x34, 0x25, 0xe0, 0xc3
-		},
-		16
-	},
-#endif
 };
 
 #define NUM_RFC6070_TESTS ARRAY_SIZE(rfc6070_tests)
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/crypto_openssl.c b/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/crypto_openssl.c
index eb3c4ca..ce75002 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/crypto_openssl.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/crypto_openssl.c
@@ -36,9 +36,8 @@
 #include "aes_wrap.h"
 #include "crypto.h"
 
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
-	(defined(LIBRESSL_VERSION_NUMBER) && \
-	 LIBRESSL_VERSION_NUMBER < 0x20700000L)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && \
+	LIBRESSL_VERSION_NUMBER < 0x20700000L)
 /* Compatibility wrappers for older versions. */
 
 static HMAC_CTX * HMAC_CTX_new(void)
@@ -81,7 +80,6 @@
 }
 
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifndef ABOVE_8_1
 static EC_KEY * EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey)
 {
@@ -90,22 +88,13 @@
 	return pkey->pkey.ec;
 }
 #endif /* ABOVE_8_1 */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-static EC_KEY * EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey)
-{
-	if (pkey->type != EVP_PKEY_EC)
-		return NULL;
-	return pkey->pkey.ec;
-}
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #endif /* OpenSSL version < 1.1.0 */
 
 static BIGNUM * get_group5_prime(void)
 {
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \
-	!(defined(LIBRESSL_VERSION_NUMBER) && \
-	  LIBRESSL_VERSION_NUMBER < 0x20700000L)
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !(defined(LIBRESSL_VERSION_NUMBER) && \
+	LIBRESSL_VERSION_NUMBER < 0x20700000L)
 	return BN_get_rfc3526_prime_1536(NULL);
 #elif !defined(OPENSSL_IS_BORINGSSL)
 	return get_rfc3526_prime_1536(NULL);
@@ -766,9 +755,8 @@
 
 void * dh5_init(struct wpabuf **priv, struct wpabuf **publ)
 {
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
-	(defined(LIBRESSL_VERSION_NUMBER) && \
-	 LIBRESSL_VERSION_NUMBER < 0x20700000L)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && \
+	LIBRESSL_VERSION_NUMBER < 0x20700000L)
 	DH *dh;
 	struct wpabuf *pubkey = NULL, *privkey = NULL;
 	size_t publen, privlen;
@@ -876,9 +864,8 @@
 
 void * dh5_init_fixed(const struct wpabuf *priv, const struct wpabuf *publ)
 {
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
-	(defined(LIBRESSL_VERSION_NUMBER) && \
-	 LIBRESSL_VERSION_NUMBER < 0x20700000L)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && \
+	LIBRESSL_VERSION_NUMBER < 0x20700000L)
 	DH *dh;
 
 	dh = DH_new();
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/crypto_wolfssl.c b/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/crypto_wolfssl.c
index 2e4bf89..8ddea57 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/crypto_wolfssl.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/crypto_wolfssl.c
@@ -465,8 +465,7 @@
 #endif /* CONFIG_NO_RC4 */
 
 
-#if defined(EAP_IKEV2) || defined(EAP_IKEV2_DYNAMIC) \
-		       || defined(EAP_SERVER_IKEV2)
+#if defined(EAP_IKEV2) || defined(EAP_IKEV2_DYNAMIC) || defined(EAP_SERVER_IKEV2)
 union wolfssl_cipher {
 	Aes aes;
 	Des3 des3;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/random.c b/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/random.c
index 165234e..0b15432 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/random.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/random.c
@@ -165,7 +165,7 @@
 	wpa_printf(MSG_MSGDUMP, "Get randomness: len=%u entropy=%u",
 		   (unsigned int) len, entropy);
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_USE_OPENSSL_RNG)
+#if defined(CONFIG_USE_OPENSSL_RNG)
 	/* Start with assumed strong randomness from OpenSSL */
 	ret = crypto_get_random(buf, len);
 	wpa_hexdump_key(MSG_EXCESSIVE, "random from crypto_get_random",
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/tls.h b/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/tls.h
index 09fb73b..5c490a8 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/tls.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/tls.h
@@ -561,15 +561,6 @@
 int __must_check tls_get_cipher(void *tls_ctx, struct tls_connection *conn,
 				char *buf, size_t buflen);
 
-/**
- * tls_connection_enable_workaround - Enable TLS workaround options
- * @tls_ctx: TLS context data from tls_init()
- * @conn: Connection context data from tls_connection_init()
- * Returns: 0 on success, -1 on failure
- *
- * This function is used to enable connection-specific workaround options for
- * buffer SSL/TLS implementations.
- */
 int __must_check tls_connection_enable_workaround(void *tls_ctx,
 						  struct tls_connection *conn);
 
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/tls_openssl.c b/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/tls_openssl.c
index 90f5819..e74f38e 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/tls_openssl.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/tls_openssl.c
@@ -38,15 +38,13 @@
 #include "tls.h"
 #include "tls_openssl.h"
 
-#if !defined(CONFIG_FIPS) &&                             \
-    (defined(EAP_FAST) || defined(EAP_FAST_DYNAMIC) ||   \
-     defined(EAP_SERVER_FAST))
+#if !defined(CONFIG_FIPS) && (defined(EAP_FAST) || defined(EAP_FAST_DYNAMIC) || \
+	defined(EAP_SERVER_FAST))
 #define OPENSSL_NEED_EAP_FAST_PRF
 #endif
 
-#if defined(EAP_FAST) || defined(EAP_FAST_DYNAMIC) || \
-	defined(EAP_SERVER_FAST) || defined(EAP_TEAP) || \
-	defined(EAP_SERVER_TEAP)
+#if defined(EAP_FAST) || defined(EAP_FAST_DYNAMIC) || defined(EAP_SERVER_FAST) || \
+	defined(EAP_TEAP) || defined(EAP_SERVER_TEAP)
 #define EAP_FAST_OR_TEAP
 #endif
 
@@ -65,10 +63,8 @@
 #endif /* OPENSSL_NO_TLSEXT */
 #endif /* SSL_set_tlsext_status_type */
 
-#if (OPENSSL_VERSION_NUMBER < 0x10100000L || \
-     (defined(LIBRESSL_VERSION_NUMBER) && \
-      LIBRESSL_VERSION_NUMBER < 0x20700000L)) && \
-    !defined(BORINGSSL_API_VERSION)
+#if (OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && \
+	LIBRESSL_VERSION_NUMBER < 0x20700000L)) && !defined(BORINGSSL_API_VERSION)
 /*
  * SSL_get_client_random() and SSL_get_server_random() were added in OpenSSL
  * 1.1.0 and newer BoringSSL revisions. Provide compatibility wrappers for
@@ -111,9 +107,8 @@
 
 #endif
 
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
-	(defined(LIBRESSL_VERSION_NUMBER) && \
-	 LIBRESSL_VERSION_NUMBER < 0x20700000L)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && \
+	LIBRESSL_VERSION_NUMBER < 0x20700000L)
 #ifdef CONFIG_SUITEB
 static int RSA_bits(const RSA *r)
 {
@@ -988,9 +983,8 @@
 		}
 #endif /* OPENSSL_FIPS */
 #endif /* CONFIG_FIPS */
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
-	(defined(LIBRESSL_VERSION_NUMBER) && \
-	 LIBRESSL_VERSION_NUMBER < 0x20700000L)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && \
+	LIBRESSL_VERSION_NUMBER < 0x20700000L)
 		SSL_load_error_strings();
 		SSL_library_init();
 #ifndef OPENSSL_NO_SHA256
@@ -1124,9 +1118,8 @@
 
 	tls_openssl_ref_count--;
 	if (tls_openssl_ref_count == 0) {
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
-	(defined(LIBRESSL_VERSION_NUMBER) && \
-	 LIBRESSL_VERSION_NUMBER < 0x20700000L)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && \
+	LIBRESSL_VERSION_NUMBER < 0x20700000L)
 #ifndef OPENSSL_NO_ENGINE
 		ENGINE_cleanup();
 #endif /* OPENSSL_NO_ENGINE */
@@ -3014,8 +3007,7 @@
 		}
 	}
 #endif /* >= 1.1.0 */
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \
-	!defined(LIBRESSL_VERSION_NUMBER) && \
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) && \
 	!defined(OPENSSL_IS_BORINGSSL)
 	if ((flags & (TLS_CONN_ENABLE_TLSv1_0 | TLS_CONN_ENABLE_TLSv1_1)) &&
 	    SSL_get_security_level(ssl) >= 2) {
@@ -3161,8 +3153,7 @@
 #endif
 		static const char *cs = TEAP_DH_ANON_CS;
 
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \
-	!defined(LIBRESSL_VERSION_NUMBER) && \
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) && \
 	!defined(OPENSSL_IS_BORINGSSL)
 		/*
 		 * Need to drop to security level 0 to allow anonymous
@@ -3280,7 +3271,6 @@
 			return -1;
 		}
 		X509_free(x509);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(OPENSSL_IS_BORINGSSL)
 		wpa_printf(MSG_DEBUG,
 			   "OpenSSL: Found PEM encoded certificate from blob");
@@ -3290,19 +3280,6 @@
 			SSL_add0_chain_cert(conn->ssl, x509);
 		}
 #endif /* OPENSSL_IS_BORINGSSL */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-#if 0
-		/* To fix compilation issue, disable below part of code
-		 * when CONFIG_DRIVER_NL80211_IFX disabled */
-		wpa_printf(MSG_DEBUG,
-			   "OpenSSL: Found PEM encoded certificate from blob");
-		while ((x509 = PEM_read_bio_X509(bio, NULL, NULL, NULL))) {
-			wpa_printf(MSG_DEBUG,
-				   "OpenSSL: Added an additional certificate into the chain");
-			SSL_add0_chain_cert(conn->ssl, x509);
-		}
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		BIO_free(bio);
 		return 0;
 #endif
@@ -3325,7 +3302,6 @@
 			X509_free(x509);
 		}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(OPENSSL_IS_BORINGSSL)
 		/* Read additional certificates into the chain. */
 		while (bio) {
@@ -3339,23 +3315,6 @@
 			}
 		}
 #endif
-#else /* CONFIG_DRIVER_NL80211_IFX */
-#if 0
-		/* To fix compilation issue, disable below part of code
-		 * when CONFIG_DRIVER_NL80211_IFX disabled */
-		/* Read additional certificates into the chain. */
-		while (bio) {
-			x509 = PEM_read_bio_X509(bio, NULL, NULL, NULL);
-			if (x509) {
-				/* Takes ownership of x509 */
-				SSL_add0_chain_cert(conn->ssl, x509);
-			} else {
-				BIO_free(bio);
-				bio = NULL;
-			}
-		}
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		return ret;
 	}
 #endif /* ANDROID */
@@ -3368,8 +3327,8 @@
 		return 0;
 	}
 
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \
-	!defined(LIBRESSL_VERSION_NUMBER) && !defined(OPENSSL_IS_BORINGSSL)
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) && \
+	!defined(OPENSSL_IS_BORINGSSL)
 	if (SSL_use_certificate_chain_file(conn->ssl, client_cert) == 1) {
 		ERR_clear_error();
 		wpa_printf(MSG_DEBUG, "OpenSSL: SSL_use_certificate_chain_file"
@@ -4111,9 +4070,8 @@
 #ifdef OPENSSL_NEED_EAP_FAST_PRF
 static int openssl_get_keyblock_size(SSL *ssl)
 {
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
-	(defined(LIBRESSL_VERSION_NUMBER) && \
-	 LIBRESSL_VERSION_NUMBER < 0x20700000L)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && \
+	LIBRESSL_VERSION_NUMBER < 0x20700000L)
 	const EVP_CIPHER *c;
 	const EVP_MD *h;
 	int md_size;
@@ -5240,8 +5198,7 @@
 	if (!params->openssl_ecdh_curves) {
 #ifndef OPENSSL_IS_BORINGSSL
 #ifndef OPENSSL_NO_EC
-#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) && \
-	(OPENSSL_VERSION_NUMBER < 0x10100000L)
+#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) && (OPENSSL_VERSION_NUMBER < 0x10100000L)
 		if (SSL_set_ecdh_auto(conn->ssl, 1) != 1) {
 			wpa_printf(MSG_INFO,
 				   "OpenSSL: Failed to set ECDH curves to auto");
@@ -5464,8 +5421,7 @@
 	if (!params->openssl_ecdh_curves) {
 #ifndef OPENSSL_IS_BORINGSSL
 #ifndef OPENSSL_NO_EC
-#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) && \
-	(OPENSSL_VERSION_NUMBER < 0x10100000L)
+#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) && (OPENSSL_VERSION_NUMBER < 0x10100000L)
 		if (SSL_CTX_set_ecdh_auto(ssl_ctx, 1) != 1) {
 			wpa_printf(MSG_INFO,
 				   "OpenSSL: Failed to set ECDH curves to auto");
@@ -5528,7 +5484,8 @@
  * commented out unless explicitly needed for EAP-FAST in order to be able to
  * build this file with unmodified openssl. */
 
-#if (defined(OPENSSL_IS_BORINGSSL) || OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
+#if (defined(OPENSSL_IS_BORINGSSL) || OPENSSL_VERSION_NUMBER >= 0x10100000L) && \
+	!defined(LIBRESSL_VERSION_NUMBER)
 static int tls_sess_sec_cb(SSL *s, void *secret, int *secret_len,
 			   STACK_OF(SSL_CIPHER) *peer_ciphers,
 			   const SSL_CIPHER **cipher, void *arg)
@@ -5541,9 +5498,8 @@
 	struct tls_connection *conn = arg;
 	int ret;
 
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
-	(defined(LIBRESSL_VERSION_NUMBER) && \
-	 LIBRESSL_VERSION_NUMBER < 0x20700000L)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && \
+	LIBRESSL_VERSION_NUMBER < 0x20700000L)
 	if (conn == NULL || conn->session_ticket_cb == NULL)
 		return 0;
 
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/tls_wolfssl.c b/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/tls_wolfssl.c
index b8a7665..8090957 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/tls_wolfssl.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/crypto/tls_wolfssl.c
@@ -26,9 +26,8 @@
 #include <wolfssl/wolfcrypt/aes.h>
 #endif
 
-#if !defined(CONFIG_FIPS) &&                             \
-    (defined(EAP_FAST) || defined(EAP_FAST_DYNAMIC) ||   \
-     defined(EAP_SERVER_FAST))
+#if !defined(CONFIG_FIPS) && (defined(EAP_FAST) || defined(EAP_FAST_DYNAMIC) || \
+	defined(EAP_SERVER_FAST))
 #define WOLFSSL_NEED_EAP_FAST_PRF
 #endif
 
@@ -277,16 +276,6 @@
 int tls_get_errors(void *tls_ctx)
 {
 #ifdef DEBUG_WOLFSSL
-#if 0
-	unsigned long err;
-
-	err = wolfSSL_ERR_peek_last_error_line(NULL, NULL);
-	if (err != 0) {
-		wpa_printf(MSG_INFO, "TLS - SSL error: %s",
-			   wolfSSL_ERR_error_string(err, NULL));
-		return 1;
-	}
-#endif
 #endif /* DEBUG_WOLFSSL */
 	return 0;
 }
@@ -1238,10 +1227,6 @@
 static void tls_set_conn_flags(WOLFSSL *ssl, unsigned int flags)
 {
 #ifdef HAVE_SESSION_TICKET
-#if 0
-	if (!(flags & TLS_CONN_DISABLE_SESSION_TICKET))
-		wolfSSL_UseSessionTicket(ssl);
-#endif
 #endif /* HAVE_SESSION_TICKET */
 
 	if (flags & TLS_CONN_DISABLE_TLSv1_0)
@@ -1324,7 +1309,7 @@
 	}
 #endif /* HAVE_CERTIFICATE_STATUS_REQUEST_V2 */
 #if !defined(HAVE_CERTIFICATE_STATUS_REQUEST) && \
-    !defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2)
+	!defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2)
 #ifdef HAVE_OCSP
 	if (params->flags & TLS_CONN_REQUEST_OCSP)
 		wolfSSL_CTX_EnableOCSP(ctx, 0);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver.h b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver.h
index 6759b5e..727c836 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver.h
@@ -79,11 +79,9 @@
 #define HOSTAPD_DFS_REGION_ETSI	2
 #define HOSTAPD_DFS_REGION_JP	3
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_SAE
 #define MAX_PASSPHRASE_LEN 63
 #endif /* CONFIG_BRCM_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 /**
  * enum reg_change_initiator - Regulatory change initiator
  */
@@ -318,11 +316,6 @@
 #define IEEE80211_CAP_DMG_PBSS	0x0002 /* Tx by: PCP */
 #define IEEE80211_CAP_DMG_AP	0x0003 /* Tx by: AP */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-#define SSID_MAX_WAPI_IE_LEN 100
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #define WPA_SCAN_QUAL_INVALID		BIT(0)
 #define WPA_SCAN_NOISE_INVALID		BIT(1)
 #define WPA_SCAN_LEVEL_INVALID		BIT(2)
@@ -381,12 +374,6 @@
 	u64 parent_tsf;
 	u8 tsf_bssid[ETH_ALEN];
 	size_t ie_len;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        u8 wapi_ie[SSID_MAX_WAPI_IE_LEN];
-        size_t wapi_ie_len;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	size_t beacon_ie_len;
 	/* Followed by ie_len + beacon_ie_len octets of IE data */
 };
@@ -1070,12 +1057,6 @@
 	 * STA mode: bits 0..3 UAPSD enabled for VO,VI,BK,BE
 	 */
 	int uapsd;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        const u8 *ap_wapi_ie;
-        size_t ap_wapi_ie_len;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	/**
 	 * fixed_bssid - Whether to force this BSSID in IBSS mode
@@ -1554,13 +1535,14 @@
 	 * 2 = both hunting-and-pecking loop and hash-to-element enabled
 	 */
 	int sae_pwe;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_SAE
         u8 sae_passphrase[MAX_PASSPHRASE_LEN];
         u8 sae_passphrase_len;
 #endif /* CONFIG_BRCM_SAE */
-#else /* CONFIG_DRIVER_NL80211_IFX */
 
+	/* Support for 4-way handshake offload to internal supplicant
+	 * for WPA/WPA2-PSK
+	 */
 	/**
 	 * passphrase - RSN passphrase for PSK
 	 *
@@ -1589,7 +1571,6 @@
 	 * for drivers that set WPA_DRIVER_FLAGS2_SAE_OFFLOAD_AP.
 	 */
 	const char *sae_password;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 };
 
 struct wpa_driver_mesh_bss_params {
@@ -1821,12 +1802,6 @@
 #define WPA_DRIVER_CAPA_KEY_MGMT_FT		0x00000020
 #define WPA_DRIVER_CAPA_KEY_MGMT_FT_PSK		0x00000040
 #define WPA_DRIVER_CAPA_KEY_MGMT_WAPI_PSK	0x00000080
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-#define WPA_DRIVER_CAPA_KEY_MGMT_WPA_CCKM       0x00000080
-#define WPA_DRIVER_CAPA_KEY_MGMT_WPA2_CCKM      0x00000100
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #define WPA_DRIVER_CAPA_KEY_MGMT_SUITE_B	0x00000100
 #define WPA_DRIVER_CAPA_KEY_MGMT_SUITE_B_192	0x00000200
 #define WPA_DRIVER_CAPA_KEY_MGMT_OWE		0x00000400
@@ -2024,12 +1999,13 @@
 #define WPA_DRIVER_FLAGS2_CONTROL_PORT_TX_STATUS 0x0000000000000002ULL
 /** Driver supports SAE authentication offload in station mode */
 #define WPA_DRIVER_FLAGS2_SAE_OFFLOAD		0x0000000000000004ULL
-#ifndef CONFIG_DRIVER_NL80211_IFX
+/* Support for 4-way handshake offload to internal supplicant
+ * for WPA/WPA2-PSK
+ */
 /** Driver supports 4-way handshake offload for WPA-Personal in AP mode */
 #define WPA_DRIVER_FLAGS2_4WAY_HANDSHAKE_AP_PSK	0x0000000000000008ULL
 /** Driver supports SAE authentication offload in AP mode */
 #define WPA_DRIVER_FLAGS2_SAE_OFFLOAD_AP	0x0000000000000010ULL
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	u64 flags2;
 
 #define FULL_AP_CLIENT_STATE_SUPP(drv_flags) \
@@ -2578,12 +2554,6 @@
 	 * string.
 	 */
 	int (*get_ssid)(void *priv, u8 *ssid);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        int (*set_wpa_ie)(void *priv, const u8 *wpa_ie, size_t wpa_ie_len);
-        int (*set_wapi)(void *priv, int enabled);
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	/**
 	 * set_key - Configure encryption key
@@ -3123,29 +3093,6 @@
 	int (*read_sta_data)(void *priv, struct hostap_sta_driver_data *data,
 			     const u8 *addr);
 
-	/**
-	 * tx_control_port - Send a frame over the 802.1X controlled port
-	 * @priv: Private driver interface data
-	 * @dest: Destination MAC address
-	 * @proto: Ethertype in host byte order
-	 * @buf: Frame payload starting from IEEE 802.1X header
-	 * @len: Frame payload length
-	 * @no_encrypt: Do not encrypt frame
-	 *
-	 * Returns 0 on success, else an error
-	 *
-	 * This is like a normal Ethernet send except that the driver is aware
-	 * (by other means than the Ethertype) that this frame is special,
-	 * and more importantly it gains an ordering between the transmission of
-	 * the frame and other driver management operations such as key
-	 * installations. This can be used to work around known limitations in
-	 * IEEE 802.11 protocols such as race conditions between rekeying 4-way
-	 * handshake message 4/4 and a PTK being overwritten.
-	 *
-	 * This function is only used for a given interface if the driver
-	 * instance reports WPA_DRIVER_FLAGS_CONTROL_PORT capability. Otherwise,
-	 * API users will fall back to sending the frame via a normal socket.
-	 */
 	int (*tx_control_port)(void *priv, const u8 *dest,
 			       u16 proto, const u8 *buf, size_t len,
 			       int no_encrypt);
@@ -3810,7 +3757,6 @@
 	 */
 	int (*set_authmode)(void *priv, int authmode);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(ANDROID) || defined(BCM_LINUX_BUILD)
 	/**
 	 * driver_cmd - Execute driver-specific command
@@ -3822,19 +3768,6 @@
 	 */
 	int (*driver_cmd)(void *priv, char *cmd, char *buf, size_t buf_len);
 #endif /* ANDROID || BCM_LINUX_BUILD */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-#ifdef ANDROID
-	/**
-	 * driver_cmd - Execute driver-specific command
-	 * @priv: Private driver interface data
-	 * @cmd: Command to execute
-	 * @buf: Return buffer
-	 * @buf_len: Buffer length
-	 * Returns: 0 on success, -1 on failure
-	 */
-	int (*driver_cmd)(void *priv, char *cmd, char *buf, size_t buf_len);
-#endif /* ANDROID */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	/**
 	 * vendor_cmd - Execute vendor specific command
@@ -5044,11 +4977,6 @@
 	 */
 	EVENT_AVOID_FREQUENCIES,
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        EVENT_AUTH_WAPI_ENABLE,
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	/**
 	 * EVENT_NEW_PEER_CANDIDATE - new (unknown) mesh peer notification
 	 */
@@ -5148,7 +5076,6 @@
 	 * is required to provide more details of the frame.
 	 */
 	EVENT_UNPROT_BEACON,
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_SAE
 	/**
 	  * EVENT_SAE_KEY - carries the pmk data after SAE auth is done
@@ -5156,7 +5083,6 @@
 	  */
 	EVENT_SAE_KEY,
 #endif /* CONFIG_BRCM_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 };
 
 
@@ -5226,7 +5152,6 @@
  * union wpa_event_data - Additional data for wpa_supplicant_event() calls
  */
 union wpa_event_data {
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_SAE
 /* struct for sae key info for in-driver sae auth */
         struct sae_key {
@@ -5236,7 +5161,6 @@
                 u8 pmkid[PMKID_LEN];
         } sae_key_info;
 #endif /* CONFIG_BRCM_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	/**
 	 * struct assoc_info - Data for EVENT_ASSOC and EVENT_ASSOCINFO events
 	 *
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_atheros.c b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_atheros.c
index 9b4166d..ebaca44 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_atheros.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_atheros.c
@@ -391,7 +391,6 @@
 	wpa_printf(MSG_DEBUG, "%s: enabled=%d", __func__, params->enabled);
 
 	if (!params->enabled) {
-		/* XXX restore state */
 		if (set80211param(priv, IEEE80211_PARAM_AUTHMODE,
 				  IEEE80211_AUTH_AUTO) < 0)
 			return -1;
@@ -1527,7 +1526,7 @@
 				return;
 			buf = os_malloc(iwe->u.data.length + 1);
 			if (buf == NULL)
-				return;		/* XXX */
+				return;
 			os_memcpy(buf, custom, iwe->u.data.length);
 			buf[iwe->u.data.length] = '\0';
 
@@ -1939,7 +1938,8 @@
 	wpa_hexdump_buf(MSG_DEBUG, "atheros: assocresp_ies",
 			params->assocresp_ies);
 
-#if defined(CONFIG_HS20) && (defined(IEEE80211_PARAM_OSEN) || defined(CONFIG_ATHEROS_OSEN))
+#if defined(CONFIG_HS20) && (defined(IEEE80211_PARAM_OSEN) || \
+	defined(CONFIG_ATHEROS_OSEN))
 	if (params->osen) {
 		struct wpa_bss_params bss_params;
 
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_bsd.c b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_bsd.c
index a29d2c8..4123941 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_bsd.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_bsd.c
@@ -272,7 +272,7 @@
 		wpa_printf(MSG_DEBUG, "%s: addr=" MACSTR, __func__,
 			   MAC2STR(addr));
 		os_memcpy(wk.idk_macaddr, addr, IEEE80211_ADDR_LEN);
-		wk.idk_keyix = (u_int8_t) IEEE80211_KEYIX_NONE;	/* XXX */
+		wk.idk_keyix = (u_int8_t) IEEE80211_KEYIX_NONE;
 	}
 
 	return set80211var(priv, IEEE80211_IOC_DELKEY, &wk, sizeof(wk));
@@ -503,7 +503,6 @@
 	wpa_printf(MSG_DEBUG, "%s: enabled=%d", __func__, params->enabled);
 
 	if (!params->enabled) {
-		/* XXX restore state */
 		return set80211param(priv, IEEE80211_IOC_AUTHMODE,
 				     IEEE80211_AUTH_AUTO);
 	}
@@ -856,7 +855,6 @@
 	memcpy(stats.is_u.macaddr, addr, IEEE80211_ADDR_LEN);
 	if (get80211var(priv, IEEE80211_IOC_STA_STATS, &stats, sizeof(stats))
 	    > 0) {
-		/* XXX? do packets counts include non-data frames? */
 		data->rx_packets = stats.is_stats.ns_rx_data;
 		data->rx_bytes = stats.is_stats.ns_rx_bytes;
 		data->tx_packets = stats.is_stats.ns_tx_data;
@@ -1141,7 +1139,6 @@
 		ret = -1;
 	if (wpa_driver_bsd_set_auth_alg(drv, params->auth_alg) < 0)
 		ret = -1;
-	/* XXX error handling is wrong but unclear what to do... */
 	if (wpa_driver_bsd_set_wpa_ie(drv, params->wpa_ie, params->wpa_ie_len) < 0)
 		return -1;
 
@@ -1214,11 +1211,6 @@
 	sr.sr_duration = IEEE80211_IOC_SCAN_FOREVER;
 	if (params->num_ssids > 0) {
 		sr.sr_nssid = params->num_ssids;
-#if 0
-		/* Boundary check is done by upper layer */
-		if (sr.sr_nssid > IEEE80211_IOC_SCAN_MAX_SSID)
-			sr.sr_nssid = IEEE80211_IOC_SCAN_MAX_SSID;
-#endif
 
 		/* NB: check scan cache first */
 		sr.sr_flags |= IEEE80211_IOC_SCAN_CHECK;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_common.c b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_common.c
index df537c7..e761f83 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_common.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_common.c
@@ -70,11 +70,9 @@
 	E2S(CH_SWITCH_STARTED);
 	E2S(WNM);
 	E2S(CONNECT_FAILED_REASON);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_SAE
 	E2S(SAE_KEY);
 #endif /* CONFIG_BRCM_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	E2S(DFS_RADAR_DETECTED);
 	E2S(DFS_CAC_FINISHED);
 	E2S(DFS_CAC_ABORTED);
@@ -82,11 +80,6 @@
 	E2S(SURVEY);
 	E2S(SCAN_STARTED);
 	E2S(AVOID_FREQUENCIES);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	E2S(AUTH_WAPI_ENABLE);
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	E2S(NEW_PEER_CANDIDATE);
 	E2S(ACS_CHANNEL_SELECTED);
 	E2S(DFS_CAC_STARTED);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_ndis.c b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_ndis.c
index b5fff48..082ad05 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_ndis.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_ndis.c
@@ -946,10 +946,6 @@
 	wep->KeyIndex = key_idx;
 	if (set_tx)
 		wep->KeyIndex |= 1 << 31;
-#if 0 /* Setting bit30 does not seem to work with some NDIS drivers */
-	if (pairwise)
-		wep->KeyIndex |= 1 << 30;
-#endif
 	wep->KeyLength = key_len;
 	os_memcpy(wep->KeyMaterial, key, key_len);
 
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211.c b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211.c
index 5b787d6..ed11723 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211.c
@@ -9,11 +9,6 @@
  * This software may be distributed under the terms of the BSD license.
  * See README for more details.
  */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_FEATURES_COPYRIGHT
-/* Copyright (c) 2012-2013, Broadcom Corporation */
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #include "includes.h"
 #include <sys/types.h>
@@ -32,11 +27,9 @@
 #include "eloop.h"
 #include "common/qca-vendor.h"
 #include "common/qca-vendor-attr.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ANDROID_P2P
 #include "common/brcm_vendor.h"
 #endif /* ANDROID_P2P */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #include "common/ieee802_11_defs.h"
 #include "common/ieee802_11_common.h"
 #include "common/wpa_common.h"
@@ -48,23 +41,9 @@
 #include "rfkill.h"
 #include "driver_nl80211.h"
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-#include "../../wpa_supplicant/wpa_supplicant_i.h"
-#endif /* WAPI */
-#ifdef WAPI_AP
-#include "ap/hostapd.h"
-#endif
-#ifdef WAPI
-#include "wapi_asue.h"
-#include "wapi.h"
-#define IW_ENCODE_ALG_SM4   0x20
-#define IW_ENCODE_SEQ_MAX_SIZE    8
-#endif /* WAPI */
 #if defined(ANDROID) || defined(BCM_LINUX_BUILD)
 #include "android_drv.h"
 #endif /* ANDROID || BCM_LINUX_BUILD */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifndef NETLINK_CAP_ACK
 #define NETLINK_CAP_ACK 10
@@ -98,11 +77,9 @@
 #undef nl_socket_set_nonblocking
 #define nl_socket_set_nonblocking(h) android_nl_socket_set_nonblocking(h)
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifndef ANDROID_P2P
 #define genl_ctrl_resolve android_genl_ctrl_resolve
 #endif /* ANDROID_P2P */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* ANDROID */
 
 
@@ -143,7 +120,6 @@
 #define ELOOP_SOCKET_INVALID	(intptr_t) 0x88888889ULL
 #endif
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ANDROID_P2P
 #ifdef ANDROID_P2P_STUB
 int wpa_driver_priv_lib_init(struct nl80211_global *global) {
@@ -157,7 +133,6 @@
 int wpa_driver_priv_lib_deinit(struct nl80211_global *global);
 #endif /* ANDROID_P2P_STUB */
 #endif /* ANDROID_P2P */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 static void nl80211_register_eloop_read(struct nl_sock **handle,
 					eloop_sock_handler handler,
 					void *eloop_data, int persist)
@@ -624,13 +599,9 @@
 }
 
 
-#if defined(CONFIG_DRIVER_NL80211_IFX)
 /* TODO: Need to guard this under BCM_GENL and
  * fix libbcmdhd android compilations issues */
 int nl_get_multicast_id(struct nl80211_global *global,
-#else
-static int nl_get_multicast_id(struct nl80211_global *global,
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 			       const char *family, const char *group)
 {
 	struct nl_msg *msg;
@@ -2187,11 +2158,6 @@
 	struct wpa_driver_nl80211_data *drv;
 	struct i802_bss *bss;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-        struct wpa_supplicant *wpa_s = (struct wpa_supplicant *)ctx;
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (global_priv == NULL)
 		return NULL;
 	drv = os_zalloc(sizeof(*drv));
@@ -2222,19 +2188,9 @@
 	bss->ctx = ctx;
 
 	os_strlcpy(bss->ifname, ifname, sizeof(bss->ifname));
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	os_strlcpy(drv->ifname, ifname, sizeof(bss->ifname));
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	drv->monitor_ifidx = -1;
 	drv->monitor_sock = -1;
 	drv->eapol_tx_sock = -1;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-        drv->wapi_tx_sock = -1;
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	drv->ap_scan_as_station = NL80211_IFTYPE_UNSPECIFIED;
 
 	if (nl80211_init_bss(bss))
@@ -2252,23 +2208,6 @@
 	if (drv->eapol_tx_sock < 0)
 		goto failed;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-        wpa_printf(MSG_INFO, "%s: Creating wapi_tx_sock\n", __FUNCTION__);
-        drv->wapi_tx_sock = socket(PF_PACKET, SOCK_DGRAM, 0);
-        if (drv->wapi_tx_sock < 0){
-                wpa_printf(MSG_ERROR, "%s: Creating wapi_tx_sock failed\n", __FUNCTION__);
-                goto failed;
-        }
-        if (hostapd) {
-                brcm_wapiap_initialize(ctx, drv->wapi_tx_sock, bss);
-        }
-        else {
-                wpa_s->wapi_tx_sock = drv->wapi_tx_sock;
-                wpa_s->wapi_bss = bss;
-        }
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (drv->data_tx_status) {
 		int enabled = 1;
 
@@ -2290,23 +2229,6 @@
 	}
 skip_wifi_status:
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-                drv->wapi_sock = socket(PF_PACKET, SOCK_DGRAM, htons(ETHER_TYPE_WAI));
-                if (drv->wapi_sock < 0) {
-                        wpa_printf(MSG_ERROR, "%s nl80211: socket(PF_PACKET,"
-				   "SOCK_DGRAM, ) failed: %s", __FUNCTION__,
-				   strerror(errno));
-                        goto failed;
-                }
-                if (eloop_register_read_sock(drv->wapi_sock, handle_wapi, drv, NULL))
-                {
-                        wpa_printf(MSG_ERROR, "%s nl80211: Could not register "
-				   "read socket for wapi", __FUNCTION__);
-                        goto failed;
-                }
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (drv->global) {
 		nl80211_check_global(drv->global);
 		dl_list_add(&drv->global->interfaces, &drv->list);
@@ -2726,7 +2648,6 @@
 					   false) < 0)
 			wpa_printf(MSG_DEBUG,
 				   "nl80211: Failed to subscribe to handle Authentication frames - SAE offload may not work");
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CY_AP_RX_MGMT_DISCONNECT
 		type = (WLAN_FC_TYPE_MGMT << 2) | (WLAN_FC_STYPE_DISASSOC << 4);
 		if (nl80211_register_frame(bss, bss->nl_mgmt, type, NULL, 0)
@@ -2734,7 +2655,6 @@
 			wpa_printf(MSG_DEBUG,
 				   "nl80211: Failed to subscribe to handle Disassociation frames");
 #endif /* CONFIG_CY_AP_RX_MGMT_DISCONNECT */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	}
 
 	nl80211_mgmt_handle_register_eloop(bss);
@@ -3007,17 +2927,6 @@
 	if (drv->eapol_tx_sock >= 0)
 		close(drv->eapol_tx_sock);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-        if (drv->wapi_tx_sock >= 0)
-                close(drv->wapi_tx_sock);
-
-        if (drv->wapi_sock >= 0) {
-                eloop_unregister_read_sock(drv->wapi_sock);
-                close(drv->wapi_sock);
-        }
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (bss->nl_preq)
 		wpa_driver_nl80211_probe_req_report(bss, 0);
 	if (bss->added_if_into_bridge) {
@@ -3139,23 +3048,14 @@
 		return RSN_CIPHER_SUITE_BIP_CMAC_256;
 	case WPA_ALG_SMS4:
 		return RSN_CIPHER_SUITE_SMS4;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	case WAPI_ALG_SMS4:
-		wpa_printf(MSG_DEBUG, "%s: WAPI_ALG_SMS4\n", __func__);
-		return RSN_CIPHER_SUITE_SMS4;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	case WPA_ALG_KRK:
 		return RSN_CIPHER_SUITE_KRK;
 	case WPA_ALG_NONE:
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(IEEE8021X_EAPOL) && defined(BRCM_VE)
 		wpa_printf(MSG_DEBUG, "nl80211: Selected encryption algorithm "
 				"WPA_ALG_PMK");
 		return WLAN_CIPHER_SUITE_PMK;
 #endif /* IEEE8021X_EAPOL && BRCM_VE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		wpa_printf(MSG_ERROR, "nl80211: Unexpected encryption algorithm %d",
 			   alg);
 		return 0;
@@ -3186,12 +3086,6 @@
 		return RSN_CIPHER_SUITE_WEP40;
 	case WPA_CIPHER_GTK_NOT_USED:
 		return RSN_CIPHER_SUITE_NO_GROUP_ADDRESSED;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-        case WPA_CIPHER_SMS4:
-                return RSN_CIPHER_SUITE_SMS4;
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	}
 
 	return 0;
@@ -3218,12 +3112,6 @@
 	if (num_suites < max_suites && ciphers & WPA_CIPHER_WEP40)
 		suites[num_suites++] = RSN_CIPHER_SUITE_WEP40;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-        if (num_suites < max_suites && ciphers & WPA_CIPHER_SMS4)
-                suites[num_suites++] = RSN_CIPHER_SUITE_SMS4;
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	return num_suites;
 }
 
@@ -3239,15 +3127,10 @@
 		suites[num_suites++] = (RSN_AUTH_KEY_MGMT_ ## b)
 	__AKM(IEEE8021X, UNSPEC_802_1X);
 	__AKM(PSK, PSK_OVER_802_1X);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_VE
 	__AKM(FT_IEEE8021X, FT_802_1X);
 	__AKM(FT_PSK, FT_PSK);
 #endif /* BRCM_VE */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-	__AKM(FT_IEEE8021X, FT_802_1X);
-	__AKM(FT_PSK, FT_PSK);
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	__AKM(IEEE8021X_SHA256, 802_1X_SHA256);
 	__AKM(PSK_SHA256, PSK_SHA256);
 	__AKM(SAE, SAE);
@@ -3264,12 +3147,6 @@
 	__AKM(DPP, DPP);
 	__AKM(FT_IEEE8021X_SHA384, FT_802_1X_SHA384);
 #undef __AKM
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-        if (num_suites < max_suites && (key_mgmt_suites & WPA_KEY_MGMT_WAPI_PSK))
-                suites[num_suites++] = WLAN_AKM_SUITE_WAPI_PSK;
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	return num_suites;
 }
@@ -3305,7 +3182,6 @@
 }
 #endif /* CONFIG_DRIVER_NL80211_QCA */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_DRIVER_NL80211_BRCM
 static int key_mgmt_set_key(struct wpa_driver_nl80211_data *drv,
 				  const u8 *key, size_t key_len)
@@ -3390,7 +3266,6 @@
 	return ret;
 }
 #endif /* BRCM_VE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static int nl80211_set_pmk(struct wpa_driver_nl80211_data *drv,
 			   const u8 *key, size_t key_len,
@@ -3466,18 +3341,6 @@
 		return -EINVAL;
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	if ( (alg == WAPI_ALG_SMS4) && (seq_len > IW_ENCODE_SEQ_MAX_SIZE * 2) ) {
-		wpa_printf(MSG_ERROR, "%s: Invalid seq_len for WAPI_ALG_SMS4 %lu",
-			   __FUNCTION__, (unsigned long) seq_len);
-		return -1;
-	} else if ( (alg != WAPI_ALG_SMS4) && (seq_len > IW_ENCODE_SEQ_MAX_SIZE) ) {
-		wpa_printf(MSG_ERROR, "%s: Invalid seq_len %lu",
-			   __FUNCTION__, (unsigned long) seq_len);
-		return -1;
-	}
-#endif /* WAPI */
 
 #ifdef CONFIG_DRIVER_NL80211_BRCM
 	if (key_flag == KEY_FLAG_PMK &&
@@ -3500,7 +3363,6 @@
 		}
 	}
 #endif /* BRCM_VE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_DRIVER_NL80211_QCA
 	if ((key_flag & KEY_FLAG_PMK) &&
 	    (drv->capa.flags & WPA_DRIVER_FLAGS_KEY_MGMT_OFFLOAD)) {
@@ -3558,11 +3420,7 @@
 			goto fail;
 		wpa_hexdump_key(MSG_DEBUG, "nl80211: KEY_DATA", key, key_len);
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI)
-		if ((seq && seq_len) && (alg != WAPI_ALG_SMS4)) {
-#else
 		if (seq && seq_len) {
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI */
 			if (nla_put(key_msg, NL80211_KEY_SEQ, seq_len, seq))
 				goto fail;
 			wpa_hexdump(MSG_DEBUG, "nl80211: KEY_SEQ",
@@ -3575,14 +3433,10 @@
 		if (nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, addr))
 			goto fail;
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI)
-		if (alg != WPA_ALG_WEP && key_idx && !set_tx && alg != WAPI_ALG_SMS4) {
-#else
 		if ((key_flag & KEY_FLAG_PAIRWISE_MASK) ==
 		    KEY_FLAG_PAIRWISE_RX ||
 		    (key_flag & KEY_FLAG_PAIRWISE_MASK) ==
 		    KEY_FLAG_PAIRWISE_RX_TX_MODIFY) {
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI */
 			if (nla_put_u8(key_msg, NL80211_KEY_MODE,
 				       key_flag == KEY_FLAG_PAIRWISE_RX ?
 				       NL80211_KEY_NO_TX : NL80211_KEY_SET_TX))
@@ -4076,11 +3930,6 @@
 		count++;
 		if ((ret == -EALREADY || ret == -EEXIST) && count == 1 &&
 		    params->bssid && !params->local_state_change) {
-			/*
-			 * mac80211 does not currently accept new
-			 * authentication if we are already authenticated. As a
-			 * workaround, force deauthentication and try again.
-			 */
 			wpa_printf(MSG_DEBUG, "nl80211: Retry authentication "
 				   "after forced deauthentication");
 			drv->ignore_deauth_event = 1;
@@ -4594,7 +4443,6 @@
 }
 
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_SAE
 static int nl80211_set_conn_sae_keys(struct wpa_driver_nl80211_data *drv,
 	const char *key, size_t key_len)
@@ -4640,7 +4488,6 @@
         return ret;
 }
 #endif /* CONFIG_BRCM_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_SAE
 static int nl80211_put_sae_pwe(struct nl_msg *msg, int pwe)
@@ -4692,7 +4539,6 @@
 		 !nl80211_get_wiphy_data_ap(bss))
 		return -ENOBUFS;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_SAE
 	if (params->key_mgmt_suites & WPA_KEY_MGMT_SAE) {
 		wpa_hexdump_key(MSG_DEBUG, "Set passpharse :",
@@ -4700,7 +4546,6 @@
 		nl80211_set_conn_sae_ap_keys(drv, params);
 	}
 #endif /* CONFIG_BRCM_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	wpa_hexdump(MSG_DEBUG, "nl80211: Beacon head",
 		    params->head, params->head_len);
 	wpa_hexdump(MSG_DEBUG, "nl80211: Beacon tail",
@@ -4771,18 +4616,8 @@
 	ver = 0;
 	if (params->wpa_version & WPA_PROTO_WPA)
 		ver |= NL80211_WPA_VERSION_1;
-#ifndef CONFIG_DRIVER_NL80211_IFX
-	if (params->wpa_version & WPA_PROTO_RSN) {
-		ver |= NL80211_WPA_VERSION_2;
-#ifdef CONFIG_SAE
-		if (params->key_mgmt_suites & WPA_KEY_MGMT_SAE)
-			ver |= NL80211_WPA_VERSION_3;
-#endif /* CONFIG_SAE */
-	}
-#else /* CONFIG_DRIVER_NL80211_IFX */
 	if (params->wpa_version & WPA_PROTO_RSN)
 		ver |= NL80211_WPA_VERSION_2;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (ver &&
 	    nla_put_u32(msg, NL80211_ATTR_WPA_VERSIONS, ver))
 		goto fail;
@@ -4800,11 +4635,6 @@
 			 suites))
 		goto fail;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-        if (!(params->key_mgmt_suites & WPA_KEY_MGMT_WAPI_PSK)) {
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (params->key_mgmt_suites & WPA_KEY_MGMT_IEEE8021X_NO_WPA &&
 	    (!params->pairwise_ciphers ||
 	     params->pairwise_ciphers & (WPA_CIPHER_WEP104 | WPA_CIPHER_WEP40)) &&
@@ -4832,21 +4662,10 @@
 	if (suite &&
 	    nla_put_u32(msg, NL80211_ATTR_CIPHER_SUITE_GROUP, suite))
 		goto fail;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-        }
-        else {
-                suites[0] = RSN_CIPHER_SUITE_SMS4;
-                num_suites = 1;
-                nla_put(msg, NL80211_ATTR_CIPHER_SUITES_PAIRWISE,
-                                num_suites * sizeof(u32), suites);
-                nla_put_u32(msg, NL80211_ATTR_CIPHER_SUITE_GROUP, RSN_CIPHER_SUITE_SMS4);
-        }
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
-#ifndef CONFIG_DRIVER_NL80211_IFX
-	/* Add PSK in case of 4-way handshake offload */
+	/* Support for 4-way handshake offload to internal supplicant
+	 * for WPA/WPA2-PSK. Add PSK in case of 4-way handshake offload
+	 */
 	if (params->psk &&
 	    (drv->capa.flags2 & WPA_DRIVER_FLAGS2_4WAY_HANDSHAKE_AP_PSK)) {
 		wpa_hexdump_key(MSG_DEBUG, "nl80211: PSK", params->psk, 32);
@@ -4874,7 +4693,6 @@
 			goto fail;
 	}
 #endif /* CONFIG_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	if (params->beacon_ies) {
 		wpa_hexdump_buf(MSG_DEBUG, "nl80211: beacon_ies",
@@ -5150,7 +4968,6 @@
 	return 0;
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 /*
  * TODO: Remove this after resolution of kernel cfg set channel width
  * prohibited flags issue
@@ -5203,7 +5020,6 @@
 	return 0;
 }
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static int nl80211_set_channel(struct i802_bss *bss,
 			       struct hostapd_freq_params *freq, int set_chan)
@@ -6302,23 +6118,6 @@
 {
 	if (nla_put_flag(msg, NL80211_ATTR_IFACE_SOCKET_OWNER))
 		return -1;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	struct wpa_supplicant *wpa_s = drv->ctx;
-	int wapi_ie_present = 0;
-    if(drv->ap_wapi_ie_len && drv->ap_wapi_ie) {
-		wpa_printf(MSG_ERROR, "%s : Set wpa_s->ap_wapi_ie and "
-			"wpa_s->ap_wapi_ie_len\n",__func__);
-		memcpy(wpa_s->ap_wapi_ie, drv->ap_wapi_ie, drv->ap_wapi_ie_len);
-		wpa_s->ap_wapi_ie_len = drv->ap_wapi_ie_len;
-	}
-
-	if (params->wpa_ie_len && params->wpa_ie && (params->wpa_ie[0] == WLAN_EID_WAPI)) {
-		wapi_ie_present = 1;
-		wpa_printf(MSG_ERROR, " * ## WAPI element ID present in IE\n");
-	}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	if (params->bssid) {
 		wpa_printf(MSG_DEBUG, "  * bssid=" MACSTR,
@@ -6384,18 +6183,6 @@
 	}
 
 	wpa_hexdump(MSG_DEBUG, "  * IEs", params->wpa_ie, params->wpa_ie_len);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-    wpa_printf(MSG_DEBUG, "%s: params->wpa_ie_len=%d\n", __FUNCTION__, (int)params->wpa_ie_len);
-	if (wapi_ie_present) {
-		wpa_printf(MSG_DEBUG, "%s: params->wpa_ie: [%02x][%02x][%02x][%02x]\n",
-				   __FUNCTION__, params->wpa_ie[0], params->wpa_ie[1], params->wpa_ie[2], params->wpa_ie[3]);
-		wpa_printf(MSG_DEBUG, "params->wpa_ie[0] == WLAN_EID_WAPI\n");
-		drv->ap_wapi_ie = params->ap_wapi_ie ;
-		drv->ap_wapi_ie_len = params->ap_wapi_ie_len ;
-	}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (params->wpa_ie &&
 	    nla_put(msg, NL80211_ATTR_IE, params->wpa_ie_len, params->wpa_ie))
 		return -1;
@@ -6417,55 +6204,15 @@
 		if (nla_put_u32(msg, NL80211_ATTR_WPA_VERSIONS, ver))
 			return -1;
 	}
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        else if (params->wpa_ie && params->wpa_ie[0] == WLAN_EID_WAPI) {
-                wpa_printf(MSG_ERROR, "## its EID_WAPI\n");
-                wpa_printf(MSG_DEBUG, " * NO params->wpa_ie && params->wpa_ie_len");
-        }
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	if (params->pairwise_suite != WPA_CIPHER_NONE) {
 		u32 cipher = wpa_cipher_to_cipher_suite(params->pairwise_suite);
 		wpa_printf(MSG_DEBUG, "  * pairwise=0x%x", cipher);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-		if (wapi_ie_present) { /* wapi */
-			wpa_printf(MSG_DEBUG, " * Set SUITES_PAIRWISE to RSN_CIPHER_SUITE_SMS4");
-			cipher = RSN_CIPHER_SUITE_SMS4;
-		}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		if (nla_put_u32(msg, NL80211_ATTR_CIPHER_SUITES_PAIRWISE,
 				cipher))
 			return -1;
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        else {
-
-                if (params->wpa_ie && params->wpa_ie[0] == WLAN_EID_WAPI) { /* wapi */
-                        int cipher;
-                        wpa_printf(MSG_DEBUG, " * Set SUITES_PAIRWISE to RSN_CIPHER_SUITE_SMS4");
-                        cipher = RSN_CIPHER_SUITE_SMS4;
-
-                        params->pairwise_suite = RSN_CIPHER_SUITE_SMS4;
-
-                        nla_put_u32(msg, NL80211_ATTR_CIPHER_SUITES_PAIRWISE, cipher);
-
-                }
-                wpa_printf(MSG_DEBUG, " * Set 22222222222222222\n");
-	}
-#else /* WAPI */
-#ifdef BRCM_DEBUG
-	else {
-			wpa_printf(MSG_DEBUG, " * ## WPA_CIPHER_NONE");
-	}
-#endif /* BRCM_DEBUG */
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (params->group_suite == WPA_CIPHER_GTK_NOT_USED &&
 	    !(drv->capa.enc & WPA_DRIVER_CAPA_ENC_GTK_NOT_USED)) {
 		/*
@@ -6476,30 +6223,13 @@
 	} else if (params->group_suite != WPA_CIPHER_NONE) {
 		u32 cipher = wpa_cipher_to_cipher_suite(params->group_suite);
 		wpa_printf(MSG_DEBUG, "  * group=0x%x", cipher);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-		if (wapi_ie_present) { /* wapi */
-			wpa_printf(MSG_DEBUG, " * Set SUITE_GROUP to RSN_CIPHER_SUITE_SMS4");
-			cipher = RSN_CIPHER_SUITE_SMS4;
-		}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		if (nla_put_u32(msg, NL80211_ATTR_CIPHER_SUITE_GROUP, cipher))
 			return -1;
 	}
 
 	if (params->key_mgmt_suite == WPA_KEY_MGMT_IEEE8021X ||
 	    params->key_mgmt_suite == WPA_KEY_MGMT_PSK ||
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	    params->key_mgmt_suite == WPA_KEY_MGMT_WAPI_PSK ||
-	    params->key_mgmt_suite == WPA_KEY_MGMT_WAPI_CERT ||
-#endif /* WAPI */
 
-#ifdef BRCM_CCX
-	    params->key_mgmt_suite == WPA_KEY_MGMT_CCKM ||
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	    params->key_mgmt_suite == WPA_KEY_MGMT_FT_IEEE8021X ||
 	    params->key_mgmt_suite == WPA_KEY_MGMT_FT_PSK ||
 	    params->key_mgmt_suite == WPA_KEY_MGMT_CCKM ||
@@ -6526,16 +6256,6 @@
 		case WPA_KEY_MGMT_IEEE8021X:
 			mgmt = RSN_AUTH_KEY_MGMT_UNSPEC_802_1X;
 			break;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-		case WPA_KEY_MGMT_WAPI_PSK:
-			mgmt = WLAN_AKM_SUITE_WAPI_PSK;
-			break;
-		case WPA_KEY_MGMT_WAPI_CERT:
-			mgmt = WLAN_AKM_SUITE_WAPI_CERT;
-			break;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		case WPA_KEY_MGMT_FT_IEEE8021X:
 			mgmt = RSN_AUTH_KEY_MGMT_FT_802_1X;
 			break;
@@ -6681,7 +6401,6 @@
 	return 0;
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_SAE
 static int nl80211_set_conn_sae_sta_keys(struct wpa_driver_nl80211_data *drv,
         struct wpa_driver_associate_params *params)
@@ -6702,7 +6421,6 @@
         return ret;
 }
 #endif /* CONFIG_BRCM_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static int wpa_driver_nl80211_try_connect(
 	struct wpa_driver_nl80211_data *drv,
@@ -6714,7 +6432,6 @@
 	int ret;
 	int algs;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_DRIVER_NL80211_BRCM
 	if (params->psk && (params->key_mgmt_suite == WPA_KEY_MGMT_PSK ||
 		params->key_mgmt_suite == WPA_KEY_MGMT_PSK_SHA256 ||
@@ -6727,7 +6444,6 @@
 		}
 	}
 #endif /* CONFIG_DRIVER_NL80211_BRCM */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_DRIVER_NL80211_QCA
 	if (params->req_key_mgmt_offload && params->psk &&
 	    (params->key_mgmt_suite == WPA_KEY_MGMT_PSK ||
@@ -6785,14 +6501,6 @@
 	}
 
 	type = get_nl_auth_type(params->auth_alg);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	if (params->wpa_ie && params->wpa_ie[0] == WLAN_EID_WAPI) {
-		wpa_printf(MSG_DEBUG, "params->wpa_ie[0] == WLAN_EID_WAPI, Set type = NL80211_AUTHTYPE_OPEN_SYSTEM\n");
-		type = NL80211_AUTHTYPE_OPEN_SYSTEM;
-	}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	wpa_printf(MSG_DEBUG, "  * Auth Type %d", type);
 	if (type == NL80211_AUTHTYPE_MAX ||
 	    nla_put_u32(msg, NL80211_ATTR_AUTH_TYPE, type))
@@ -6803,7 +6511,6 @@
 	if (ret)
 		goto fail;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_SAE
 	if (params->auth_alg & WPA_AUTH_ALG_SAE) {
 		ret = nl80211_set_conn_sae_sta_keys(drv, params);
@@ -6813,7 +6520,6 @@
 		}
 	}
 #endif /* CONFIG_BRCM_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	ret = send_and_recv_msgs_owner(drv, msg, nl_connect, 1, NULL,
 				       (void *) -1, NULL, NULL);
 	msg = NULL;
@@ -6848,11 +6554,6 @@
 
 	ret = wpa_driver_nl80211_try_connect(drv, params, nl_connect);
 	if (ret == -EALREADY) {
-		/*
-		 * cfg80211 does not currently accept new connections if
-		 * we are already connected. As a workaround, force
-		 * disconnection and try again.
-		 */
 		wpa_printf(MSG_DEBUG, "nl80211: Explicitly "
 			   "disconnecting before reassociation "
 			   "attempt");
@@ -7236,14 +6937,12 @@
 static int i802_set_freq(void *priv, struct hostapd_freq_params *freq)
 {
 	struct i802_bss *bss = priv;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(CONFIG_CY_AUTO_SET_BW) && defined(CONFIG_BRCM_AUTOMOTIVE)
 #ifdef HOSTAPD
 	bss->bandwidth = freq->bandwidth;
 #endif /* HOSTAPD */
 	nl80211_driver_set_channel_width(bss);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	return nl80211_set_channel(bss, freq, 0);
 }
 
@@ -7365,9 +7064,6 @@
 	wpa_printf(MSG_DEBUG, "nl80211: flush -> DEL_STATION %s (all)",
 		   bss->ifname);
 
-	/*
-	 * XXX: FIX! this needs to flush all VLANs too
-	 */
 	msg = nl80211_bss_msg(bss, 0, NL80211_CMD_DEL_STATION);
 	res = send_and_recv_msgs(bss->drv, msg, NULL, NULL, NULL, NULL);
 	if (res) {
@@ -7698,9 +7394,6 @@
 
 static int i802_sta_clear_stats(void *priv, const u8 *addr)
 {
-#if 0
-	/* TODO */
-#endif
 	return 0;
 }
 
@@ -7942,29 +7635,6 @@
 	}
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-void handle_wapi(int sock, void *eloop_ctx, void *sock_ctx)
-{
-        wpa_printf(MSG_ERROR, "%s: received a wapi_pkt\n", __FUNCTION__);
-
-        struct wpa_driver_nl80211_data *drv = eloop_ctx;
-        struct sockaddr_ll lladdr;
-        unsigned char buf[3000];
-        int len;
-        socklen_t fromlen = sizeof(lladdr);
-
-        len = recvfrom(sock, buf, sizeof(buf), 0,
-                        (struct sockaddr *)&lladdr, &fromlen);
-        if (len < 0) {
-                wpa_printf(MSG_ERROR, "nl80211: WAPI recv failed: %s",
-                        strerror(errno));
-                return;
-        }
-        brcm_wapiap_handshakepkt_from_sta(lladdr.sll_addr, buf, len, drv->ifname);
-}
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static void handle_eapol(int sock, void *eloop_ctx, void *sock_ctx)
 {
@@ -8156,22 +7826,6 @@
 	}
 skip_eapol_sock:
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-        drv->wapi_sock = socket(PF_PACKET, SOCK_DGRAM, htons(ETHER_TYPE_WAI));
-        if (drv->wapi_sock < 0) {
-                wpa_printf(MSG_ERROR, "%s nl80211: socket(PF_PACKET, SOCK_DGRAM"
-		", ) failed: %s", __FUNCTION__, strerror(errno));
-                goto failed;
-        }
-
-        if (eloop_register_read_sock(drv->wapi_sock, handle_wapi, drv, NULL)) {
-                wpa_printf(MSG_ERROR, "%s nl80211: Could not register read "
-		"socket for wapi", __FUNCTION__);
-                goto failed;
-        }
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (linux_get_ifhwaddr(drv->global->ioctl_sock, bss->ifname,
 			       params->own_addr))
 		goto failed;
@@ -9113,7 +8767,6 @@
 		goto err;
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(ANDROID_P2P)
 	if (wpa_driver_priv_lib_init(global) < 0) {
 		wpa_printf(MSG_ERROR,
@@ -9121,7 +8774,6 @@
 		goto err;
 	}
 #endif /* ANDROID_P2P */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	return global;
 
 err:
@@ -9153,14 +8805,12 @@
 
 	if (global->ioctl_sock >= 0)
 		close(global->ioctl_sock);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(ANDROID_P2P)
         if (wpa_driver_priv_lib_deinit(global) < 0) {
                 wpa_printf(MSG_ERROR,
                                 "nl80211: private lib de-initilization failed\n");
         }
 #endif /* ANDROID_P2P */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	os_free(global);
 }
@@ -9554,15 +9204,6 @@
 	}
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-static int wpa_driver_nl80211_set_wapi(void *priv, int enabled)
-{
-	wpa_printf(MSG_DEBUG, "CFG80211:  wpa_driver_nl80211_set_wapi");
-	return 1;
-}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static int nl80211_set_power_save(struct i802_bss *bss, int enabled)
 {
@@ -12094,7 +11735,6 @@
 
 #endif /* CONFIG_DRIVER_NL80211_QCA */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_DEBUG
 static int nl80211_vendor_reply_brcm(struct nl80211_vendor_data *vendor,
                 void *data, int len)
@@ -12196,7 +11836,6 @@
         return ret;
 }
 #endif /* CONFIG_BRCM_DEBUG */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static int nl80211_write_to_file(const char *name, unsigned int val)
 {
@@ -12394,7 +12033,6 @@
 	return ret;
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef WL_SAE
 static int nl80211_send_vendor_external_auth_status(
 	void *priv, struct external_auth *params)
@@ -12436,7 +12074,6 @@
 	return ret;
 }
 #endif /* WL_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static int nl80211_send_external_auth_status(void *priv,
 					     struct external_auth *params)
@@ -12451,11 +12088,9 @@
 	 * SAE) to hostapd/wpa_supplicant. Do not send the status to drivers
 	 * which do not support AP SME or use wpa_supplicant/hostapd SME.
 	 */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef WL_SAE
 	return nl80211_send_vendor_external_auth_status(priv, params);
 #endif /* WL_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if ((is_ap_interface(drv->nlmode) && !bss->drv->device_ap_sme) ||
 	    (drv->capa.flags & WPA_DRIVER_FLAGS_SME))
 		return -1;
@@ -12641,29 +12276,16 @@
 	.get_noa = wpa_driver_get_p2p_noa,
 	.set_ap_wps_ie = wpa_driver_set_ap_wps_p2p_ie,
 #endif /* ANDROID_P2P */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(ANDROID) || defined(BCM_LINUX_BUILD)
 #ifndef ANDROID_LIB_STUB
 	.driver_cmd = wpa_driver_nl80211_driver_cmd,
 #endif /* !ANDROID_LIB_STUB */
 #endif /* ANDROID || BCM_LINUX_BUILD */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-#ifdef ANDROID
-#ifndef ANDROID_LIB_STUB
-	.driver_cmd = wpa_driver_nl80211_driver_cmd,
-#endif /* !ANDROID_LIB_STUB */
-#endif /* ANDROID */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	.vendor_cmd = nl80211_vendor_cmd,
 	.set_qos_map = nl80211_set_qos_map,
 	.get_wowlan = nl80211_get_wowlan,
 	.set_wowlan = nl80211_set_wowlan,
 	.set_mac_addr = nl80211_set_mac_addr,
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	.set_wapi = wpa_driver_nl80211_set_wapi,
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_MESH
 	.init_mesh = wpa_driver_nl80211_init_mesh,
 	.join_mesh = wpa_driver_nl80211_join_mesh,
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211.h b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211.h
index 8a126cd..70d8f68 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211.h
@@ -33,12 +33,6 @@
 	struct nl_sock *nl;
 	int nl80211_id;
 	int ioctl_sock; /* socket for ioctl() use */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BCM_GENL
-	struct nl_sock *event_sock;
-	int event_family;
-#endif /* BCM_GENL */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	struct nl_sock *nl_event;
 };
@@ -143,12 +137,6 @@
 	int monitor_ifidx;
 	int monitor_refcount;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BCM_GENL
-        struct nl_sock *event_sock;
-        int event_family;
-#endif /* BCM_GENL */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	unsigned int disabled_11b_rates:1;
 	unsigned int pending_remain_on_chan:1;
 	unsigned int in_interface_list:1;
@@ -203,23 +191,10 @@
 
 	struct i802_bss *first_bss;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        char ifname[IFNAMSIZ + 1];
-        size_t ap_wapi_ie_len;
-        const u8 *ap_wapi_ie;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	int eapol_tx_sock;
 
 	int eapol_sock; /* socket for EAPOL frames */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-        int wapi_tx_sock;
-        int wapi_sock;
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	struct nl_sock *rtnl_sk; /* nl_sock for NETLINK_ROUTE */
 
 	struct drv_nl80211_if_info default_if_indices[16];
@@ -248,7 +223,6 @@
 	int last_scan_cmd;
 };
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_DEBUG
 struct nl80211_vendor_data {
         struct wpa_driver_nl80211_data *nl80211_data;
@@ -278,7 +252,6 @@
         WL_BCNRECV_MAX
 } wl_bcnrecv_status_t;
 #endif /* ANDROID_P2P*/
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 struct nl_msg;
 
 void * nl80211_cmd(struct wpa_driver_nl80211_data *drv,
@@ -338,7 +311,6 @@
 
 void nl80211_restore_ap_mode(struct i802_bss *bss);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(ANDROID) || defined(BCM_LINUX_BUILD)
 int android_nl_socket_set_nonblocking(struct nl_sock *handle);
 int android_pno_start(struct i802_bss *bss,
@@ -356,30 +328,10 @@
 				 const struct wpabuf *assocresp);
 #endif /* ANDROID_P2P */
 #endif /* ANDROID || BCM_LINUX_BUILD */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-#ifdef ANDROID
-int android_nl_socket_set_nonblocking(struct nl_sock *handle);
-int android_pno_start(struct i802_bss *bss,
-		      struct wpa_driver_scan_params *params);
-int android_pno_stop(struct i802_bss *bss);
-extern int wpa_driver_nl80211_driver_cmd(void *priv, char *cmd, char *buf,
-					 size_t buf_len);
-
-#ifdef ANDROID_P2P
-int wpa_driver_set_p2p_noa(void *priv, u8 count, int start, int duration);
-int wpa_driver_get_p2p_noa(void *priv, u8 *buf, size_t len);
-int wpa_driver_set_p2p_ps(void *priv, int legacy_ps, int opp_ps, int ctwindow);
-int wpa_driver_set_ap_wps_p2p_ie(void *priv, const struct wpabuf *beacon,
-				 const struct wpabuf *proberesp,
-				 const struct wpabuf *assocresp);
-#endif /* ANDROID_P2P */
-#endif /* ANDROID */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 
 /* driver_nl80211_scan.c */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(ANDROID_P2P) && !defined(nla_put_string)
 /* This is a custom change to compile newer wpa_supplicant
   * in Android-KK and below versions
@@ -389,7 +341,6 @@
 #define nla_put_flag(msg, attrtype) \
         nla_put(msg, attrtype, 0, NULL)
 #endif /* ANDROID_P2P && !nla_put_string */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 void wpa_driver_nl80211_scan_timeout(void *eloop_ctx, void *timeout_ctx);
 int wpa_driver_nl80211_scan(struct i802_bss *bss,
 			    struct wpa_driver_scan_params *params);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211_capa.c b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211_capa.c
index b5cbb54..7f03b62 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211_capa.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211_capa.c
@@ -589,7 +589,9 @@
 			      NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X))
 		capa->flags |= WPA_DRIVER_FLAGS_4WAY_HANDSHAKE_8021X;
 
-#ifndef CONFIG_DRIVER_NL80211_IFX
+	/* Support for 4-way handshake offload to internal supplicant
+	 * for WPA/WPA2-PSK
+	 */
 	if (ext_feature_isset(ext_features, len,
 			      NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK))
 		capa->flags2 |= WPA_DRIVER_FLAGS2_4WAY_HANDSHAKE_AP_PSK;
@@ -601,11 +603,6 @@
 	if (ext_feature_isset(ext_features, len,
 			      NL80211_EXT_FEATURE_SAE_OFFLOAD_AP))
 		capa->flags2 |= WPA_DRIVER_FLAGS2_SAE_OFFLOAD_AP;
-#else /* CONFIG_DRIVER_NL80211_IFX */
-	if (ext_feature_isset(ext_features, len,
-			      NL80211_EXT_FEATURE_SAE_OFFLOAD))
-		capa->flags2 |= WPA_DRIVER_FLAGS2_SAE_OFFLOAD;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	if (ext_feature_isset(ext_features, len,
 			      NL80211_EXT_FEATURE_MFP_OPTIONAL))
@@ -1373,18 +1370,12 @@
 		WPA_DRIVER_AUTH_SHARED |
 		WPA_DRIVER_AUTH_LEAP;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(CONFIG_IEEE80211R) && defined(BRCM_VE)
         /* Also assume that FT-PSK & FT-EAP are supported */
     drv->capa.key_mgmt |= WPA_DRIVER_CAPA_KEY_MGMT_FT |
             WPA_DRIVER_CAPA_KEY_MGMT_FT_PSK;
 #endif /* CONFIG_IEEE80211R && BRCM_VE */
 
-#ifdef BRCM_CCX
-    drv->capa.key_mgmt = WPA_DRIVER_CAPA_KEY_MGMT_WPA_CCKM |
-            WPA_DRIVER_CAPA_KEY_MGMT_WPA2_CCKM;
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	drv->capa.flags |= WPA_DRIVER_FLAGS_SANE_ERROR_CODES;
 	drv->capa.flags |= WPA_DRIVER_FLAGS_SET_KEYS_AFTER_ASSOC_DONE;
 	drv->capa.flags |= WPA_DRIVER_FLAGS_EAPOL_TX_STATUS;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211_event.c b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211_event.c
index 60c4a63..2edab84 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211_event.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211_event.c
@@ -18,20 +18,13 @@
 #include "common/ieee802_11_defs.h"
 #include "common/ieee802_11_common.h"
 #include "driver_nl80211.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ANDROID_P2P
 #include "common/brcm_vendor.h"
 #endif /* ANDROID_P2P */
-#ifdef WAPI
-#include "../../wpa_supplicant/wpa_supplicant_i.h"
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef WL_SAE
 static void nl80211_external_auth(struct wpa_driver_nl80211_data *drv,
 				  struct nlattr **tb);
 #endif /* WL_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 
 static void
@@ -415,17 +408,6 @@
 {
 	union wpa_event_data event;
 	const u8 *ssid = NULL;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-		struct wpa_supplicant *wpa_s = drv->ctx;
-		if(drv->ap_wapi_ie_len && drv->ap_wapi_ie) {
-			wpa_printf(MSG_ERROR, "%s : Set wpa_s->ap_wapi_ie and "
-				"wpa_s->ap_wapi_ie_len\n",__func__);
-			memcpy(wpa_s->ap_wapi_ie, drv->ap_wapi_ie, drv->ap_wapi_ie_len);
-			wpa_s->ap_wapi_ie_len = drv->ap_wapi_ie_len;
-		}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	u16 status_code;
 	int ssid_len;
 
@@ -555,11 +537,7 @@
 			   wpa_ssid_txt(drv->ssid, drv->ssid_len));
 	}
 
-#ifndef CONFIG_DRIVER_NL80211_IFX
-	if (authorized && nla_get_flag(authorized)) {
-#else /* CONFIG_DRIVER_NL80211_IFX */
 	if (authorized && nla_get_u8(authorized)) {
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		event.assoc_info.authorized = 1;
 		wpa_printf(MSG_DEBUG, "nl80211: connection authorized");
 	}
@@ -665,7 +643,6 @@
 	case CHAN_WIDTH_4320:
 	case CHAN_WIDTH_6480:
 	case CHAN_WIDTH_8640:
-		/* FIXME: implement this */
 		return 0;
 	}
 
@@ -1851,7 +1828,6 @@
 	wpa_supplicant_event(drv->ctx, EVENT_RX_FROM_UNKNOWN, &event);
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ANDROID_P2P
 char bcn_recv_status[][10] = {"STARTED", "STOPPED", "ABORTED", "SUSPENDED"};
 static void nl80211_beacon_info_fakeap(struct wpa_driver_nl80211_data *drv,
@@ -1991,7 +1967,6 @@
 
 }
 #endif /* ANDROID_P2P */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_DRIVER_NL80211_QCA
 
@@ -2554,13 +2529,11 @@
 	case OUI_QCA:
 		nl80211_vendor_event_qca(drv, subcmd, data, len);
 		break;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ANDROID_P2P
 	case OUI_BRCM:
 	        nl80211_vendor_event_brcm(drv, subcmd, data, len);
 	        break;
 #endif /* ANDROID_P2P */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	default:
 		wpa_printf(MSG_DEBUG, "nl80211: Ignore unsupported vendor event");
 		break;
@@ -2988,12 +2961,7 @@
 				   tb[NL80211_ATTR_RESP_IE],
 				   tb[NL80211_ATTR_TIMED_OUT],
 				   tb[NL80211_ATTR_TIMEOUT_REASON],
-#ifndef CONFIG_DRIVER_NL80211_IFX
-				   tb[NL80211_ATTR_PORT_AUTHORIZED],
-				   NULL, NULL,
-#else /* CONFIG_DRIVER_NL80211_IFX */
 				   NULL, NULL, NULL,
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 				   tb[NL80211_ATTR_FILS_KEK],
 				   NULL,
 				   tb[NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM],
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211_monitor.c b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211_monitor.c
index 7ff55f1..e9fe776 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211_monitor.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211_monitor.c
@@ -219,17 +219,6 @@
 	 */
 	BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, 0x0801, PASS, 0),
 
-#if 0
-	/*
-	 * drop non-data frames
-	 */
-	/* load the lower byte of the frame control field */
-	BPF_STMT(BPF_LD   | BPF_B | BPF_IND, 0),
-	/* mask off QoS bit */
-	BPF_STMT(BPF_ALU  | BPF_AND | BPF_K, 0x0c),
-	/* drop non-data frames */
-	BPF_JUMP(BPF_JMP  | BPF_JEQ | BPF_K, 8, 0, FAIL),
-#endif
 	/* load the upper byte of the frame control field */
 	BPF_STMT(BPF_LD   | BPF_B | BPF_IND, 1),
 	/* mask off toDS/fromDS */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_wext.c b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_wext.c
index 74aa1b5..691097c 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_wext.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_wext.c
@@ -11,11 +11,6 @@
  * can be used by other driver interface implementations that use generic WE
  * ioctls, but require private ioctls for some of the functionality.
  */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_FEATURES_COPYRIGHT
-/* Copyright (c) 2012-2013, Broadcom Corporation */
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #include "includes.h"
 #include <sys/ioctl.h>
@@ -36,12 +31,6 @@
 #include "rfkill.h"
 #include "driver.h"
 #include "driver_wext.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-#include "wapi_asue.h"
-#include "wapi.h"
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static int wpa_driver_wext_flush_pmkid(void *priv);
 static int wpa_driver_wext_get_range(void *priv);
@@ -301,7 +290,6 @@
 	done:
 		os_free(resp_ies);
 		os_free(req_ies);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_PEERKEY
 	} else if (os_strncmp(custom, "STKSTART.request=", 17) == 0) {
 		if (hwaddr_aton(custom + 17, data.stkstart.peer)) {
@@ -311,7 +299,6 @@
 		}
 		wpa_supplicant_event(ctx, EVENT_STKSTART, &data);
 #endif /* CONFIG_PEERKEY */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	}
 }
 
@@ -1221,11 +1208,6 @@
 	u8 ssid[SSID_MAX_LEN];
 	size_t ssid_len;
 	int maxrate;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	size_t wapi_ie_len;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 };
 
 
@@ -1443,35 +1425,6 @@
 		}
 		res->res.tsf += WPA_GET_BE64(bin);
 	}
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	else if (clen > 8 && os_strncmp(custom, "wapi_ie=", 8) == 0) {
-		char *spos;
-		int bytes;
-		spos = custom + 8;
-		bytes = custom + clen - spos;
-		wpa_printf(MSG_DEBUG, "Got WAPI IE (%d)\n", bytes);
-		if (bytes & 1) {
-			wpa_printf(MSG_ERROR, "%s: === ALARM: bytes & 1 ===\n", __FUNCTION__);
-			return;
-		}
-		bytes /= 2;
-		if (bytes > SSID_MAX_WAPI_IE_LEN) {
-			wpa_printf(MSG_ERROR, "Too long WAPI IE (%d)", bytes);
-			return;
-		}
-		tmp = os_realloc(res->ie, res->ie_len + bytes);
-		if (tmp == NULL)
-			return;
-		hexstr2bin(spos, tmp + res->ie_len, bytes);
-		res->ie = tmp;
-		res->ie_len += bytes;
-		res->wapi_ie_len = bytes;
-		wpa_printf(MSG_DEBUG, "wapi ie, len=%d\n", res->wapi_ie_len);
-		wpa_hexdump_ascii(MSG_DEBUG, "wapi ie", (u8 *)res->ie, res->wapi_ie_len);
-	}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -1517,12 +1470,6 @@
 		return;
 	os_memcpy(r, &data->res, sizeof(*r));
 	r->ie_len = extra_len + data->ie_len;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	r->wapi_ie_len = data->wapi_ie_len;
-	wpa_printf(MSG_DEBUG, "%s: wapi_ie_len=%d\n", __FUNCTION__, r->wapi_ie_len);
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	pos = (u8 *) (r + 1);
 	if (ssid_ie == NULL) {
 		/*
@@ -1700,20 +1647,10 @@
 		drv->we_version_compiled = range->we_version_compiled;
 		if (range->enc_capa & IW_ENC_CAPA_WPA) {
 			drv->capa.key_mgmt |= WPA_DRIVER_CAPA_KEY_MGMT_WPA |
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-				WPA_DRIVER_CAPA_KEY_MGMT_WPA_CCKM |
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 				WPA_DRIVER_CAPA_KEY_MGMT_WPA_PSK;
 		}
 		if (range->enc_capa & IW_ENC_CAPA_WPA2) {
 			drv->capa.key_mgmt |= WPA_DRIVER_CAPA_KEY_MGMT_WPA2 |
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-				WPA_DRIVER_CAPA_KEY_MGMT_WPA2_CCKM |
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 				WPA_DRIVER_CAPA_KEY_MGMT_WPA2_PSK;
 		}
 		drv->capa.enc |= WPA_DRIVER_CAPA_ENC_WEP40 |
@@ -1746,17 +1683,6 @@
 	return 0;
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-static int wpa_driver_wext_set_wapi(void *priv, int enabled)
-{
-	struct wpa_driver_wext_data *drv = priv;
-	wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-	return wpa_driver_wext_set_auth_param(drv, IW_AUTH_WAPI_ENABLED, enabled);
-}
-#define IW_ENCODE_ALG_SM4   0x20
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static int wpa_driver_wext_set_psk(struct wpa_driver_wext_data *drv,
 				   const u8 *psk)
@@ -1808,24 +1734,11 @@
 	int ret = 0;
 	struct iw_encode_ext *ext;
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI)
-	if ( (alg == WAPI_ALG_SMS4) && (seq_len > IW_ENCODE_SEQ_MAX_SIZE * 2) ) {
-		wpa_printf(MSG_DEBUG, "%s: Invalid seq_len for WAPI_ALG_SMS4 %lu",
-			   __FUNCTION__, (unsigned long) seq_len);
-		return -1;
-	}
-	else if ( (alg != WAPI_ALG_SMS4) && (seq_len > IW_ENCODE_SEQ_MAX_SIZE) ) {
-		wpa_printf(MSG_DEBUG, "%s: Invalid seq_len %lu",
-			   __FUNCTION__, (unsigned long) seq_len);
-		return -1;
-	}
-#else
 	if (seq_len > IW_ENCODE_SEQ_MAX_SIZE) {
 		wpa_printf(MSG_DEBUG, "%s: Invalid seq_len %lu",
 			   __FUNCTION__, (unsigned long) seq_len);
 		return -1;
 	}
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI */
 
 	ext = os_zalloc(sizeof(*ext) + key_len);
 	if (ext == NULL)
@@ -1869,13 +1782,6 @@
 		case WPA_ALG_CCMP:
 			ext->alg = IW_ENCODE_ALG_CCMP;
 			break;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-		case WAPI_ALG_SMS4:
-			ext->alg = IW_ENCODE_ALG_SM4;
-			break;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		case WPA_ALG_BIP_CMAC_128:
 			ext->alg = IW_ENCODE_ALG_AES_CMAC;
 			break;
@@ -1888,21 +1794,8 @@
 	}
 
 	if (seq && seq_len) {
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-		if (alg == WAPI_ALG_SMS4) {
-			os_memcpy(ext->tx_seq, seq, seq_len);
-			wpa_hexdump(MSG_DEBUG, "seq", seq, seq_len);
-		} else {
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		ext->ext_flags |= IW_ENCODE_EXT_RX_SEQ_VALID;
 		os_memcpy(ext->rx_seq, seq, seq_len);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-		}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	}
 
 	if (ioctl(drv->ioctl_sock, SIOCSIWENCODEEXT, &iwr) < 0) {
@@ -2169,18 +2062,12 @@
 		return IW_AUTH_KEY_MGMT_802_1X;
 	case WPA_KEY_MGMT_PSK:
 		return IW_AUTH_KEY_MGMT_PSK;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(CONFIG_IEEE80211R) && defined(BRCM_VE)
 	case WPA_KEY_MGMT_FT_PSK:
 		return IW_AUTH_KEY_MGMT_FT_PSK;
 	case WPA_KEY_MGMT_FT_IEEE8021X:
 		return IW_AUTH_KEY_MGMT_FT_8021X;
 #endif /* CONFIG_IEEE80211R && BRCM_VE */
-#ifdef BRCM_CCX
-	case KEY_MGMT_CCKM:
-		return IW_AUTH_KEY_MGMT_CCKM;
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	default:
 		return 0;
 	}
@@ -2282,12 +2169,6 @@
 		ret = -1;
 	if (params->wpa_proto & WPA_PROTO_RSN)
 		value = IW_AUTH_WPA_VERSION_WPA2;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	else if (params->wpa_ie[0] == WLAN_EID_WAPI) /* wapi */
-		value = IW_AUTH_WAPI_VERSION_1;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	else if (params->wpa_proto & WPA_PROTO_WPA)
 		value = IW_AUTH_WPA_VERSION_WPA;
 	else
@@ -2296,38 +2177,14 @@
 					   IW_AUTH_WPA_VERSION, value) < 0)
 		ret = -1;
 	value = wpa_driver_wext_cipher2wext(params->pairwise_suite);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	if (params->wpa_ie[0] == WLAN_EID_WAPI) /* wapi */
-		value |= IW_AUTH_CIPHER_SMS4;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (wpa_driver_wext_set_auth_param(drv,
 					   IW_AUTH_CIPHER_PAIRWISE, value) < 0)
 		ret = -1;
 	value = wpa_driver_wext_cipher2wext(params->group_suite);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	if (params->wpa_ie[0] == WLAN_EID_WAPI) /* wapi */
-		value |= IW_AUTH_CIPHER_SMS4;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (wpa_driver_wext_set_auth_param(drv,
 					   IW_AUTH_CIPHER_GROUP, value) < 0)
 		ret = -1;
 	value = wpa_driver_wext_keymgmt2wext(params->key_mgmt_suite);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	if (params->wpa_ie[0] == WLAN_EID_WAPI) { /* wapi */
-		if (params->wpa_ie[9] == 2) /* wapi psk */
-			value = IW_AUTH_KEY_MGMT_WAPI_PSK;
-		else if (params->wpa_ie[9] == 1) /* wapi cert */
-			value = IW_AUTH_KEY_MGMT_WAPI_CERT;
-		else 
-			wpa_printf(MSG_DEBUG, "Unknown WAPI key management value 0x%x\n", params->wpa_ie[9]);
-	}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (wpa_driver_wext_set_auth_param(drv,
 					   IW_AUTH_KEY_MGMT, value) < 0)
 		ret = -1;
@@ -2638,11 +2495,6 @@
 	.desc = "Linux wireless extensions (generic)",
 	.get_bssid = wpa_driver_wext_get_bssid,
 	.get_ssid = wpa_driver_wext_get_ssid,
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	.set_wapi = wpa_driver_wext_set_wapi,
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	.set_key = wpa_driver_wext_set_key,
 	.set_countermeasures = wpa_driver_wext_set_countermeasures,
 	.scan2 = wpa_driver_wext_scan,
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_wext.h b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_wext.h
index 8c11b4f..381530b 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_wext.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_wext.h
@@ -9,13 +9,9 @@
 #ifndef DRIVER_WEXT_H
 #define DRIVER_WEXT_H
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifndef BCM_LINUX_BUILD
 #include <net/if.h>
 #endif /* BCM_LINUX_BUILD */
-#else
-#include <net/if.h>
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 struct wpa_driver_wext_data {
 	void *ctx;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/nl80211_copy.h b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/nl80211_copy.h
index 2569acc..5ac681b 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/nl80211_copy.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/nl80211_copy.h
@@ -40,11 +40,6 @@
  * Nonetheless, semantics should also be documented carefully in this file.
  */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_FEATURES_COPYRIGHT
-/* Copyright (c) 2012-2013, Broadcom Corporation */
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #include <linux/types.h>
 
 #define NL80211_GENL_NAME "nl80211"
@@ -1369,11 +1364,6 @@
 
 	NL80211_CMD_WIPHY_REG_CHANGE,
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        NL80211_CMD_AUTH_WAPI_ENABLE,
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	NL80211_CMD_ABORT_SCAN,
 
 	NL80211_CMD_START_NAN,
@@ -2913,13 +2903,6 @@
 
 	NL80211_ATTR_REG_INDOOR,
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	NL80211_ATTR_WAPI,
-	NL80211_ATTR_WAPI_PSK,
-	NL80211_ATTR_WAPI_CERT,
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS,
 	NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL,
 	NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS,
@@ -4648,11 +4631,6 @@
 	NL80211_BSS_CHAN_WIDTH,
 	NL80211_BSS_BEACON_TSF,
 	NL80211_BSS_PRESP_DATA,
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
- 	NL80211_BSS_WAPI_IES,
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	NL80211_BSS_LAST_SEEN_BOOTTIME,
 	NL80211_BSS_PAD,
 	NL80211_BSS_PARENT_TSF,
@@ -4706,11 +4684,6 @@
 	NL80211_AUTHTYPE_FT,
 	NL80211_AUTHTYPE_NETWORK_EAP,
 	NL80211_AUTHTYPE_SAE,
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	NL80211_AUTHTYPE_WAPI,
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	NL80211_AUTHTYPE_FILS_SK,
 	NL80211_AUTHTYPE_FILS_SK_PFS,
 	NL80211_AUTHTYPE_FILS_PK,
@@ -4752,11 +4725,6 @@
 	NL80211_WPA_VERSION_1 = 1 << 0,
 	NL80211_WPA_VERSION_2 = 1 << 1,
 	NL80211_WPA_VERSION_3 = 1 << 2,
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	NL80211_WAPI_VERSION_1 = 1 << 3,
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 };
 
 /**
@@ -5777,7 +5745,7 @@
 	NL80211_FEATURE_TDLS_CHANNEL_SWITCH		= 1 << 28,
 	NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR		= 1 << 29,
 	NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR	= 1 << 30,
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(BRCM_VE)
+#if defined(BRCM_VE)
 	/*
 	 * BRCM local.
 	 * Use a high number that's unlikely to clash with linux upstream for a while until we can
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/wireless_copy.h b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/wireless_copy.h
index 604df9f..3f99a63 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/wireless_copy.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/wireless_copy.h
@@ -77,11 +77,6 @@
 /***************************** INCLUDES *****************************/
 
  /* jkm - replaced linux headers with C library headers, added typedefs */
-#if 0
-#include <linux/types.h>		/* for __u* and __s* typedefs */
-#include <linux/socket.h>		/* for "struct sockaddr" et al	*/
-#include <linux/if.h>			/* for IFNAMSIZ and co... */
-#else
 #include <sys/types.h>
 #include <net/if.h>
 #ifndef ANDROID
@@ -94,7 +89,6 @@
 #ifndef __user
 #define __user
 #endif /* __user */
-#endif
 
 /***************************** VERSION *****************************/
 /*
@@ -604,20 +598,10 @@
 #define IW_AUTH_PRIVACY_INVOKED		10
 #define IW_AUTH_CIPHER_GROUP_MGMT	11
 #define IW_AUTH_MFP			12
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-#define IW_AUTH_WAPI_ENABLED		0x20
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 /* IW_AUTH_WPA_VERSION values (bit field) */
 #define IW_AUTH_WPA_VERSION_DISABLED	0x00000001
 #define IW_AUTH_WPA_VERSION_WPA		0x00000002
 #define IW_AUTH_WPA_VERSION_WPA2	0x00000004
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-#define IW_AUTH_WAPI_VERSION_1		0x00000008
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 /* IW_AUTH_PAIRWISE_CIPHER, IW_AUTH_GROUP_CIPHER, and IW_AUTH_CIPHER_GROUP_MGMT
  * values (bit field) */
@@ -626,26 +610,15 @@
 #define IW_AUTH_CIPHER_TKIP	0x00000004
 #define IW_AUTH_CIPHER_CCMP	0x00000008
 #define IW_AUTH_CIPHER_WEP104	0x00000010
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-#define IW_AUTH_CIPHER_SMS4	0x00000020
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #define IW_AUTH_CIPHER_AES_CMAC	0x00000020
 
 /* IW_AUTH_KEY_MGMT values (bit field) */
 #define IW_AUTH_KEY_MGMT_802_1X	1
 #define IW_AUTH_KEY_MGMT_PSK	2
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-#define IW_AUTH_KEY_MGMT_WAPI_PSK	4
-#define IW_AUTH_KEY_MGMT_WAPI_CERT	8
-#endif /* WAPI */
 #ifdef BRCM_VE
 #define IW_AUTH_KEY_MGMT_FT_8021X	4
 #define IW_AUTH_KEY_MGMT_FT_PSK		8
 #endif /* BRCM_VE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 /* IW_AUTH_80211_AUTH_ALG values (bit field) */
 #define IW_AUTH_ALG_OPEN_SYSTEM	0x00000001
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/eap_common/eap_pwd_common.c b/src/lynq/packages/thirdpart/lynq-wg870/src/eap_common/eap_pwd_common.c
index 2b2b8ef..ff22b29 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/eap_common/eap_pwd_common.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/eap_common/eap_pwd_common.c
@@ -127,7 +127,8 @@
 	u8 qr_or_qnr_bin[MAX_ECC_PRIME_LEN];
 	u8 x_bin[MAX_ECC_PRIME_LEN];
 	u8 prime_bin[MAX_ECC_PRIME_LEN];
-	struct crypto_bignum *tmp2 = NULL;
+	u8 x_y[2 * MAX_ECC_PRIME_LEN];
+	struct crypto_bignum *tmp2 = NULL, *y = NULL;
 	struct crypto_hash *hash;
 	unsigned char pwe_digest[SHA256_MAC_LEN], *prfbuf = NULL, ctr;
 	int ret = 0, res;
@@ -139,6 +140,7 @@
 	u8 found_ctr = 0, is_odd = 0;
 	int cmp_prime;
 	unsigned int in_range;
+	unsigned int is_eq;
 
 	if (grp->pwe)
 		return -1;
@@ -151,11 +153,6 @@
 	if (crypto_bignum_to_bin(prime, prime_bin, sizeof(prime_bin),
 				 primebytelen) < 0)
 		return -1;
-	grp->pwe = crypto_ec_point_init(grp->group);
-	if (!grp->pwe) {
-		wpa_printf(MSG_INFO, "EAP-pwd: unable to create bignums");
-		goto fail;
-	}
 
 	if ((prfbuf = os_malloc(primebytelen)) == NULL) {
 		wpa_printf(MSG_INFO, "EAP-pwd: unable to malloc space for prf "
@@ -261,10 +258,37 @@
 	 */
 	crypto_bignum_deinit(x_candidate, 1);
 	x_candidate = crypto_bignum_init_set(x_bin, primebytelen);
-	if (!x_candidate ||
-	    crypto_ec_point_solve_y_coord(grp->group, grp->pwe, x_candidate,
-					  is_odd) != 0) {
-		wpa_printf(MSG_INFO, "EAP-pwd: Could not solve for y");
+	if (!x_candidate)
+		goto fail;
+
+	/* y = sqrt(x^3 + ax + b) mod p
+	 * if LSB(y) == LSB(pwd-seed): PWE = (x, y)
+	 * else: PWE = (x, p - y)
+	 *
+	 * Calculate y and the two possible values for PWE and after that,
+	 * use constant time selection to copy the correct alternative.
+	 */
+	y = crypto_ec_point_compute_y_sqr(grp->group, x_candidate);
+	if (!y ||
+	    dragonfly_sqrt(grp->group, y, y) < 0 ||
+	    crypto_bignum_to_bin(y, x_y, MAX_ECC_PRIME_LEN, primebytelen) < 0 ||
+	    crypto_bignum_sub(prime, y, y) < 0 ||
+	    crypto_bignum_to_bin(y, x_y + MAX_ECC_PRIME_LEN,
+				 MAX_ECC_PRIME_LEN, primebytelen) < 0) {
+		wpa_printf(MSG_DEBUG, "SAE: Could not solve y");
+		goto fail;
+	}
+
+	/* Constant time selection of the y coordinate from the two
+	 * options */
+	is_eq = const_time_eq(is_odd, x_y[primebytelen - 1] & 0x01);
+	const_time_select_bin(is_eq, x_y, x_y + MAX_ECC_PRIME_LEN,
+			      primebytelen, x_y + primebytelen);
+	os_memcpy(x_y, x_bin, primebytelen);
+	wpa_hexdump_key(MSG_DEBUG, "EAP-pwd: PWE", x_y, 2 * primebytelen);
+	grp->pwe = crypto_ec_point_from_bin(grp->group, x_y);
+	if (!grp->pwe) {
+		wpa_printf(MSG_DEBUG, "EAP-pwd: Could not generate PWE");
 		goto fail;
 	}
 
@@ -289,6 +313,7 @@
 	/* cleanliness and order.... */
 	crypto_bignum_deinit(x_candidate, 1);
 	crypto_bignum_deinit(tmp2, 1);
+	crypto_bignum_deinit(y, 1);
 	crypto_bignum_deinit(qr, 1);
 	crypto_bignum_deinit(qnr, 1);
 	bin_clear_free(prfbuf, primebytelen);
@@ -296,6 +321,7 @@
 	os_memset(qnr_bin, 0, sizeof(qnr_bin));
 	os_memset(qr_or_qnr_bin, 0, sizeof(qr_or_qnr_bin));
 	os_memset(pwe_digest, 0, sizeof(pwe_digest));
+	forced_memzero(x_y, sizeof(x_y));
 
 	return ret;
 }
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_aka.c b/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_aka.c
index e57461a..730aa68 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_aka.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_aka.c
@@ -325,16 +325,6 @@
 			return -1;
 		}
 	}
-#if 0
-	{
-		static int test_resync = 1;
-		if (test_resync) {
-			/* Test Resynchronization */
-			test_resync = 0;
-			return -2;
-		}
-	}
-#endif
 	return 0;
 
 #else /* CONFIG_USIM_HARDCODED */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_fast.c b/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_fast.c
index b12cfee..6ee8a87 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_fast.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_fast.c
@@ -185,11 +185,6 @@
 		return NULL;
 	}
 
-	/*
-	 * The local RADIUS server in a Cisco AP does not seem to like empty
-	 * fragments before data, so disable that workaround for CBC.
-	 * TODO: consider making this configurable
-	 */
 	if (tls_connection_enable_workaround(sm->ssl_ctx, data->ssl.conn)) {
 		wpa_printf(MSG_DEBUG, "EAP-FAST: Failed to enable TLS "
 			   "workarounds");
@@ -1687,52 +1682,6 @@
 }
 
 
-#if 0 /* FIX */
-static bool eap_fast_has_reauth_data(struct eap_sm *sm, void *priv)
-{
-	struct eap_fast_data *data = priv;
-	return tls_connection_established(sm->ssl_ctx, data->ssl.conn);
-}
-
-
-static void eap_fast_deinit_for_reauth(struct eap_sm *sm, void *priv)
-{
-	struct eap_fast_data *data = priv;
-
-	if (data->phase2_priv && data->phase2_method &&
-	    data->phase2_method->deinit_for_reauth)
-		data->phase2_method->deinit_for_reauth(sm, data->phase2_priv);
-	os_free(data->key_block_p);
-	data->key_block_p = NULL;
-	wpabuf_clear_free(data->pending_phase2_req);
-	data->pending_phase2_req = NULL;
-	wpabuf_clear_free(data->pending_resp);
-	data->pending_resp = NULL;
-}
-
-
-static void * eap_fast_init_for_reauth(struct eap_sm *sm, void *priv)
-{
-	struct eap_fast_data *data = priv;
-	if (eap_peer_tls_reauth_init(sm, &data->ssl)) {
-		os_free(data);
-		return NULL;
-	}
-	os_memset(data->key_data, 0, EAP_FAST_KEY_LEN);
-	os_memset(data->emsk, 0, EAP_EMSK_LEN);
-	os_free(data->session_id);
-	data->session_id = NULL;
-	if (data->phase2_priv && data->phase2_method &&
-	    data->phase2_method->init_for_reauth)
-		data->phase2_method->init_for_reauth(sm, data->phase2_priv);
-	data->phase2_success = 0;
-	data->resuming = 1;
-	data->provisioning = 0;
-	data->anon_provisioning = 0;
-	data->simck_idx = 0;
-	return priv;
-}
-#endif
 
 
 static int eap_fast_get_status(struct eap_sm *sm, void *priv, char *buf,
@@ -1831,11 +1780,6 @@
 	eap->getKey = eap_fast_getKey;
 	eap->getSessionId = eap_fast_get_session_id;
 	eap->get_status = eap_fast_get_status;
-#if 0
-	eap->has_reauth_data = eap_fast_has_reauth_data;
-	eap->deinit_for_reauth = eap_fast_deinit_for_reauth;
-	eap->init_for_reauth = eap_fast_init_for_reauth;
-#endif
 	eap->get_emsk = eap_fast_get_emsk;
 
 	return eap_peer_method_register(eap);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_teap.c b/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_teap.c
index e8cc784..e1570a9 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_teap.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_teap.c
@@ -1993,49 +1993,6 @@
 }
 
 
-#if 0 /* TODO */
-static bool eap_teap_has_reauth_data(struct eap_sm *sm, void *priv)
-{
-	struct eap_teap_data *data = priv;
-
-	return tls_connection_established(sm->ssl_ctx, data->ssl.conn);
-}
-
-
-static void eap_teap_deinit_for_reauth(struct eap_sm *sm, void *priv)
-{
-	struct eap_teap_data *data = priv;
-
-	if (data->phase2_priv && data->phase2_method &&
-	    data->phase2_method->deinit_for_reauth)
-		data->phase2_method->deinit_for_reauth(sm, data->phase2_priv);
-	eap_teap_clear(data);
-}
-
-
-static void * eap_teap_init_for_reauth(struct eap_sm *sm, void *priv)
-{
-	struct eap_teap_data *data = priv;
-
-	if (eap_peer_tls_reauth_init(sm, &data->ssl)) {
-		eap_teap_deinit(sm, data);
-		return NULL;
-	}
-	if (data->phase2_priv && data->phase2_method &&
-	    data->phase2_method->init_for_reauth)
-		data->phase2_method->init_for_reauth(sm, data->phase2_priv);
-	data->phase2_success = 0;
-	data->inner_method_done = 0;
-	data->result_success_done = 0;
-	data->iresult_verified = 0;
-	data->done_on_tx_completion = 0;
-	data->resuming = 1;
-	data->provisioning = 0;
-	data->anon_provisioning = 0;
-	data->simck_idx = 0;
-	return priv;
-}
-#endif
 
 
 static int eap_teap_get_status(struct eap_sm *sm, void *priv, char *buf,
@@ -2135,11 +2092,6 @@
 	eap->getKey = eap_teap_getKey;
 	eap->getSessionId = eap_teap_get_session_id;
 	eap->get_status = eap_teap_get_status;
-#if 0 /* TODO */
-	eap->has_reauth_data = eap_teap_has_reauth_data;
-	eap->deinit_for_reauth = eap_teap_deinit_for_reauth;
-	eap->init_for_reauth = eap_teap_init_for_reauth;
-#endif
 	eap->get_emsk = eap_teap_get_emsk;
 
 	return eap_peer_method_register(eap);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_tls_common.c b/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_tls_common.c
index 14ed2a3..298f374 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_tls_common.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_tls_common.c
@@ -166,15 +166,6 @@
 	os_memset(params, 0, sizeof(*params));
 	if (sm->workaround && data->eap_type != EAP_TYPE_FAST &&
 	    data->eap_type != EAP_TYPE_TEAP) {
-		/*
-		 * Some deployed authentication servers seem to be unable to
-		 * handle the TLS Session Ticket extension (they are supposed
-		 * to ignore unrecognized TLS extensions, but end up rejecting
-		 * the ClientHello instead). As a workaround, disable use of
-		 * TLS Sesson Ticket extension for EAP-TLS, EAP-PEAP, and
-		 * EAP-TTLS (EAP-FAST uses session ticket, so any server that
-		 * supports EAP-FAST does not need this workaround).
-		 */
 		params->flags |= TLS_CONN_DISABLE_SESSION_TICKET;
 	}
 	if (data->eap_type == EAP_TYPE_TEAP) {
@@ -1133,14 +1124,6 @@
 		if (vendor == EAP_VENDOR_IETF && method == EAP_TYPE_NONE) {
 			wpa_printf(MSG_ERROR, "TLS: Unsupported Phase2 EAP "
 				   "method '%s'", start);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef CONFIG_BRCM_TBD
-			/* Using this portion of code only in non BRCM case
-			* as this part of code would result in failure to set
-			* phase2 type of MSCHAPV2
-			*/
-#endif /* CONFIG_BRCM_TBD */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 			os_free(methods);
 			os_free(buf);
 			return -1;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_wsc.c b/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_wsc.c
index fe00046..a1e7bff 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_wsc.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/eap_peer/eap_wsc.c
@@ -277,28 +277,9 @@
 				      cfg.pin, cfg.pin_len, 0);
 	}
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(BRCM_DEBUG)
-/*
-* SWWLAN-33032: In case of WPS_INTEROP_10.7 test case, pin is entered on AP after
-* 90 seconds from activating the wps_pin on DUT, this leaves only 30 seconds for DUT to enroll.
-* But WPS is timing out due to weird behavior of AP(Linksys WRT120N), i.e. even after entering
-* the pin on AP, it is sending M2D instead of M2, in response to this, DUT sends WSC_ACK, after
-* this DUT expects either M2 or EAP_FAIL to proceed WPS further, but AP is not sending anything,
-* DUT waits for 30 seconds and then times out. This test case fails because DUT runs out of time for
-* second attempt and due to AP's weird EAP state machine, so to interop with Linksys WRT120N AP in
-* this test case, DUT needs a second chance and AP's EAP state machine needs to be in proper state,
-* by reducing the eap_wsc_timeout to 15 seconds, DUT gets chance for second attempt as well as it is
-* resetting the AP's EAP state machine by disassociation occurred due to early timeout.
-*/
-#define EAP_WSC_CLIENT_TIMEOUT	15
-	/* Use reduced client timeout for WPS to avoid long wait */
-	if (sm->ClientTimeout > EAP_WSC_CLIENT_TIMEOUT)
-		sm->ClientTimeout = EAP_WSC_CLIENT_TIMEOUT;
-#else
 	/* Use reduced client timeout for WPS to avoid long wait */
 	if (sm->ClientTimeout > 30)
 		sm->ClientTimeout = 30;
-#endif /* CONFIG_DRIVER_NL80211_IFX && BRCM_DEBUG */
 
 	return data;
 }
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/eap_server/eap_server_aka.c b/src/lynq/packages/thirdpart/lynq-wg870/src/eap_server/eap_server_aka.c
index e9bf030..3ba5115 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/eap_server/eap_server_aka.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/eap_server/eap_server_aka.c
@@ -936,28 +936,6 @@
 	wpa_printf(MSG_DEBUG, "EAP-AKA: Processing Challenge");
 
 #ifdef EAP_SERVER_AKA_PRIME
-#if 0
-	/* KDF negotiation; to be enabled only after more than one KDF is
-	 * supported */
-	if (data->eap_method == EAP_TYPE_AKA_PRIME &&
-	    attr->kdf_count == 1 && attr->mac == NULL) {
-		if (attr->kdf[0] != EAP_AKA_PRIME_KDF) {
-			wpa_printf(MSG_WARNING, "EAP-AKA': Peer selected "
-				   "unknown KDF");
-			data->notification =
-				EAP_SIM_GENERAL_FAILURE_BEFORE_AUTH;
-			eap_aka_state(data, NOTIFICATION);
-			return;
-		}
-
-		data->kdf = attr->kdf[0];
-
-		/* Allow negotiation to continue with the selected KDF by
-		 * sending another Challenge message */
-		wpa_printf(MSG_DEBUG, "EAP-AKA': KDF %d selected", data->kdf);
-		return;
-	}
-#endif
 #endif /* EAP_SERVER_AKA_PRIME */
 
 	if (attr->checkcode &&
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/eap_server/eap_server_tls.c b/src/lynq/packages/thirdpart/lynq-wg870/src/eap_server/eap_server_tls.c
index 769fd1f..1dd208e 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/eap_server/eap_server_tls.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/eap_server/eap_server_tls.c
@@ -273,13 +273,6 @@
 
 		wpa_printf(MSG_DEBUG,
 			   "EAP-TLS: Send empty application data to indicate end of exchange");
-		/* FIX: This should be an empty application data based on
-		 * draft-ietf-emu-eap-tls13-05, but OpenSSL does not allow zero
-		 * length payload (SSL_write() documentation explicitly
-		 * describes this as not allowed), so work around that for now
-		 * by sending out a payload of one octet. Hopefully the draft
-		 * specification will change to allow this so that no crypto
-		 * library changes are needed. */
 		plain = wpabuf_alloc(1);
 		if (!plain)
 			return;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/eapol_supp/eapol_supp_sm.c b/src/lynq/packages/thirdpart/lynq-wg870/src/eapol_supp/eapol_supp_sm.c
index 861eea2..63d9ad3 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/eapol_supp/eapol_supp_sm.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/eapol_supp/eapol_supp_sm.c
@@ -1322,13 +1322,6 @@
 
 		elen = be_to_host16(ehdr->length);
 		if (elen > plen && elen <= len - sizeof(*hdr)) {
-			/*
-			 * Buffalo WHR-G125 Ver.1.47 seems to send EAP-WPS
-			 * packets with too short EAPOL header length field
-			 * (14 octets). This is fixed in firmware Ver.1.49.
-			 * As a workaround, fix the EAPOL header based on the
-			 * correct length in the EAP packet.
-			 */
 			wpa_printf(MSG_DEBUG, "EAPOL: Workaround - fix EAPOL "
 				   "payload length based on EAP header: "
 				   "%d -> %d", (int) plen, elen);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/l2_packet/l2_packet.h b/src/lynq/packages/thirdpart/lynq-wg870/src/l2_packet/l2_packet.h
index 2fb4207..1ffb744 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/l2_packet/l2_packet.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/l2_packet/l2_packet.h
@@ -15,16 +15,6 @@
 #ifndef L2_PACKET_H
 #define L2_PACKET_H
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-#ifndef ETH_P_WAI
-#define ETH_P_WAI 0x88b4
-#endif /* ETH_P_WAI */
-#ifndef ETH_P_WAI_PREAUTH
-#define ETH_P_WAI_PREAUTH 0x88b5
-#endif /* ETH_P_WAI_PREAUTH */
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 /**
  * struct l2_packet_data - Internal l2_packet data structure
  *
@@ -82,12 +72,6 @@
 			    const u8 *buf, size_t len),
 	void *rx_callback_ctx, int l2_hdr);
 
-/**
- * l2_packet_init_bridge - Like l2_packet_init() but with bridge workaround
- *
- * This version of l2_packet_init() can be used to enable a workaround for Linux
- * packet socket in case of a station interface in a bridge.
- */
 struct l2_packet_data * l2_packet_init_bridge(
 	const char *br_ifname, const char *ifname, const u8 *own_addr,
 	unsigned short protocol,
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/l2_packet/l2_packet_freebsd.c b/src/lynq/packages/thirdpart/lynq-wg870/src/l2_packet/l2_packet_freebsd.c
index 60de9fe..ec80792 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/l2_packet/l2_packet_freebsd.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/l2_packet/l2_packet_freebsd.c
@@ -149,7 +149,6 @@
 			fprintf(stderr, "%s: cannot enable immediate mode on "
 				"interface %s: %s\n",
 				__func__, l2->ifname, strerror(errno));
-			/* XXX should we fail? */
 		}
 	}
 #endif /* __sun__ */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/l2_packet/l2_packet_linux.c b/src/lynq/packages/thirdpart/lynq-wg870/src/l2_packet/l2_packet_linux.c
index f1554c7..9c01b3a 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/l2_packet/l2_packet_linux.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/l2_packet/l2_packet_linux.c
@@ -17,11 +17,6 @@
 #include "crypto/sha1.h"
 #include "crypto/crypto.h"
 #include "l2_packet.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-#include "wpa_supplicant_i.h"
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 
 struct l2_packet_data {
@@ -120,12 +115,6 @@
 int l2_packet_send(struct l2_packet_data *l2, const u8 *dst_addr, u16 proto,
 		   const u8 *buf, size_t len)
 {
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	u8 txbuf[2312] = { 0, };
-	u8 *pos = txbuf;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	int ret;
 
 	if (TEST_FAIL())
@@ -144,28 +133,9 @@
 		ll.sll_ifindex = l2->ifindex;
 		ll.sll_protocol = htons(proto);
 		ll.sll_halen = ETH_ALEN;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-		if (proto == ETH_P_WAI) {
-			os_memcpy(pos, dst_addr, ETH_ALEN); pos += ETH_ALEN;
-			os_memcpy(pos, l2->own_addr, ETH_ALEN); pos += ETH_ALEN;
-			os_memcpy(pos, &ll.sll_protocol, 2); pos += 2;
-			os_memcpy(pos, buf, len);
-			wpa_hexdump(MSG_MSGDUMP, "txbuf", txbuf, len + ETH_HLEN);
-			ret = sendto(l2->fd, txbuf, len + ETH_HLEN, 0, (struct sockaddr *) &ll,
-				     sizeof(ll));
-			wpa_printf(MSG_DEBUG, "%s: ret = '%d'", __FUNCTION__, ret);
-		} else {
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		os_memcpy(ll.sll_addr, dst_addr, ETH_ALEN);
 		ret = sendto(l2->fd, buf, len, 0, (struct sockaddr *) &ll,
 			     sizeof(ll));
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-		}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		if (ret < 0) {
 			wpa_printf(MSG_ERROR, "l2_packet_send - sendto: %s",
 				   strerror(errno));
@@ -180,56 +150,18 @@
 	struct l2_packet_data *l2 = eloop_ctx;
 	u8 buf[2300];
 	int res;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	struct l2_ethhdr l2_hdr;
-	struct wpa_supplicant *wpa_s = (struct wpa_supplicant *)l2->rx_callback_ctx;
-	struct l2_packet_data *l2_wapi = wpa_s->l2_wapi;
-	int is_wapi = 0;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	struct sockaddr_ll ll;
 	socklen_t fromlen;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	wpa_printf(MSG_DEBUG, "%s: l2=%p, wpa_s->l2_wapi=%p\n",
-		   __FUNCTION__, l2, l2_wapi);
-	if (l2 == l2_wapi) {
-		is_wapi = 1;
-		os_memset(&l2_hdr, 0, sizeof(l2_hdr));
-		res = recvfrom(sock, buf, sizeof(buf), 0, NULL, NULL);
-	} else {
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	os_memset(&ll, 0, sizeof(ll));
 	fromlen = sizeof(ll);
 	res = recvfrom(sock, buf, sizeof(buf), 0, (struct sockaddr *) &ll,
 		       &fromlen);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (res < 0) {
 		wpa_printf(MSG_DEBUG, "l2_packet_receive - recvfrom: %s",
 			   strerror(errno));
 		return;
 	}
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	if (is_wapi) {
-		os_memcpy(&l2_hdr, buf, ETH_HLEN);
-		l2_hdr.h_proto = ntohs (l2_hdr.h_proto);
-		res -= ETH_HLEN;
-		if (res > 0)
-			os_memmove(buf, (char *)buf + ETH_HLEN, res);
-		else
-			res = 0;
-		l2->rx_callback(l2->rx_callback_ctx, l2_hdr.h_source, buf, res);
-	} else {
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	wpa_printf(MSG_DEBUG, "%s: src=" MACSTR " len=%d",
 		   __func__, MAC2STR(ll.sll_addr), (int) res);
@@ -280,11 +212,6 @@
 	l2->last_from_br = 0;
 #endif /* CONFIG_NO_LINUX_PACKET_SOCKET_WAR */
 	l2->rx_callback(l2->rx_callback_ctx, ll.sll_addr, buf, res);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -362,13 +289,6 @@
 	l2->fd_br_rx = -1;
 #endif /* CONFIG_NO_LINUX_PACKET_SOCKET_WAR */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	if (protocol == ETH_P_WAI)
-		l2->fd = socket(PF_PACKET, SOCK_RAW, htons(protocol));
-	else
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	l2->fd = socket(PF_PACKET, l2_hdr ? SOCK_RAW : SOCK_DGRAM,
 			htons(protocol));
 	if (l2->fd < 0) {
@@ -449,25 +369,12 @@
 		return NULL;
 
 #ifndef CONFIG_NO_LINUX_PACKET_SOCKET_WAR
-	/*
-	 * The Linux packet socket behavior has changed over the years and there
-	 * is an inconvenient regression in it that breaks RX for a specific
-	 * protocol from interfaces in a bridge when that interface is not in
-	 * fully operation state (i.e., when in station mode and not completed
-	 * authorization). To work around this, register ETH_P_ALL version of
-	 * the packet socket bound to the real netdev and use socket filter to
-	 * match the ethertype value. This version is less efficient, but
-	 * required for functionality with many kernel version. If the main
-	 * packet socket is found to be working, this less efficient version
-	 * gets closed automatically.
-	 */
 
 	l2->fd_br_rx = socket(PF_PACKET, l2_hdr ? SOCK_RAW : SOCK_DGRAM,
 			      htons(ETH_P_ALL));
 	if (l2->fd_br_rx < 0) {
 		wpa_printf(MSG_DEBUG, "%s: socket(PF_PACKET-fd_br_rx): %s",
 			   __func__, strerror(errno));
-		/* try to continue without the workaround RX socket */
 		return l2;
 	}
 
@@ -478,7 +385,6 @@
 	if (bind(l2->fd_br_rx, (struct sockaddr *) &ll, sizeof(ll)) < 0) {
 		wpa_printf(MSG_DEBUG, "%s: bind[PF_PACKET-fd_br_rx]: %s",
 			   __func__, strerror(errno));
-		/* try to continue without the workaround RX socket */
 		close(l2->fd_br_rx);
 		l2->fd_br_rx = -1;
 		return l2;
@@ -489,7 +395,6 @@
 		wpa_printf(MSG_DEBUG,
 			   "l2_packet_linux: setsockopt(SO_ATTACH_FILTER) failed: %s",
 			   strerror(errno));
-		/* try to continue without the workaround RX socket */
 		close(l2->fd_br_rx);
 		l2->fd_br_rx = -1;
 		return l2;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p.c b/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p.c
index af4edd7..c32884e 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p.c
@@ -826,7 +826,6 @@
 
 	dev_name_changed = os_strncmp(dev->info.device_name, msg.device_name,
 				      WPS_DEV_NAME_MAX_LEN) != 0;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_NAN
 
 	if (!freq && !scan_res && msg.listen_channel) {
@@ -836,7 +835,6 @@
 		dev->listen_freq = freq;
 	}
 #endif	/* CONFIG_BRCM_NAN */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	p2p_copy_wps_info(p2p, dev, 0, &msg);
 
@@ -968,12 +966,10 @@
 
 	c = &p2p->cfg->channels;
 	for (cl = 0; cl < c->reg_classes; cl++) {
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_RSDB
 		if (p2p->find_type == P2P_FIND_FAST_PROGRESSIVE && cl > 0)
 			break;
 #endif /* CONFIG_BRCM_RSDB */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		cla = &c->reg_class[cl];
 		if (cla->reg_class != p2p->last_prog_scan_class)
 			continue;
@@ -999,12 +995,10 @@
 			if (cl == c->reg_classes)
 				cl = 0;
 			ch = 0;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_RSDB
 			if (p2p->find_type == P2P_FIND_FAST_PROGRESSIVE && cl > 0)
 				cl = 0;
 #endif /* CONFIG_BRCM_RSDB */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		}
 		reg_class = c->reg_class[cl].reg_class;
 		channel = c->reg_class[cl].channel[ch];
@@ -1021,7 +1015,6 @@
 	return freq;
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_RSDB
 static int p2p_get_next_prog_freq_5g(struct p2p_data *p2p)
 {
@@ -1075,11 +1068,10 @@
 	return freq;
 }
 #endif /* CONFIG_BRCM_RSDB */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static void p2p_search(struct p2p_data *p2p)
 {
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_BRCM_RSDB)
+#if defined(CONFIG_BRCM_RSDB)
 	int freq[MAX_FREQ_5G], i = 0, j;
 #else
 	int freq = 0;
@@ -1100,7 +1092,7 @@
 		type = P2P_SCAN_FULL;
 		p2p_dbg(p2p, "Starting search (pending full scan)");
 		p2p->find_pending_full = 0;
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_BRCM_RSDB)
+#if defined(CONFIG_BRCM_RSDB)
 	}
 	if (p2p->find_type == P2P_FIND_PROGRESSIVE &&
 	    (freq[i] = p2p_get_next_prog_freq(p2p)) > 0) {
@@ -1356,7 +1348,7 @@
 			 * scans for social channels and this specific channel.
 			 */
 			res = p2p->cfg->p2p_scan(p2p->cfg->cb_ctx,
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_BRCM_RSDB)
+#if defined(CONFIG_BRCM_RSDB)
 						 P2P_SCAN_SPECIFIC, &freq,
 #else
 						 P2P_SCAN_SPECIFIC, freq,
@@ -1373,7 +1365,6 @@
 					 p2p->req_dev_types, dev_id,
 					 DEV_PW_DEFAULT);
 		break;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_RSDB
 	case P2P_FIND_FAST_PROGRESSIVE:
 		res = p2p->cfg->p2p_scan(p2p->cfg->cb_ctx, P2P_SCAN_FULL, 0,
@@ -1382,7 +1373,6 @@
 					 DEV_PW_DEFAULT);
 		break;
 #endif /* CONFIG_BRCM_RSDB */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	case P2P_FIND_ONLY_SOCIAL:
 		res = p2p->cfg->p2p_scan(p2p->cfg->cb_ctx, P2P_SCAN_SOCIAL, 0,
 					 p2p->num_req_dev_types,
@@ -1882,7 +1872,7 @@
 void p2p_build_ssid(struct p2p_data *p2p, u8 *ssid, size_t *ssid_len)
 {
 	os_memcpy(ssid, P2P_WILDCARD_SSID, P2P_WILDCARD_SSID_LEN);
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_BRCM_AUTOMOTIVE)
+#if defined(CONFIG_BRCM_AUTOMOTIVE)
 	if(p2p->ignore_random) {
 		os_memcpy(&ssid[P2P_WILDCARD_SSID_LEN],
 				p2p->cfg->ssid_postfix, p2p->cfg->ssid_postfix_len);
@@ -1912,7 +1902,7 @@
 		p2p_build_ssid(p2p, params->ssid, &params->ssid_len);
 	}
 	p2p->ssid_set = 0;
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(ABOVE_10)
+#if defined(ABOVE_10)
 	if (p2p->passphrase_set) {
 		os_memcpy(params->passphrase, p2p->passphrase, os_strlen(p2p->passphrase));
 	} else {
@@ -3106,15 +3096,8 @@
 	if (os_get_random(&p2p->next_tie_breaker, 1) < 0)
 		p2p->next_tie_breaker = 0;
 	p2p->next_tie_breaker &= 0x01;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifndef CONFIG_BRCM_SD_DYNAMIC_CAPA
 	if (cfg->sd_request)
 		p2p->dev_capab |= P2P_DEV_CAPAB_SERVICE_DISCOVERY;
-#endif /* CONFIG_BRCM_SD_DYNAMIC_CAPA */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-	if (cfg->sd_request)
-		p2p->dev_capab |= P2P_DEV_CAPAB_SERVICE_DISCOVERY;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	p2p->dev_capab |= P2P_DEV_CAPAB_INVITATION_PROCEDURE;
 	if (cfg->concurrent_operations)
 		p2p->dev_capab |= P2P_DEV_CAPAB_CONCURRENT_OPER;
@@ -3716,11 +3699,9 @@
 		p2p_buf_add_service_hash(ies, p2p);
 
 	/* TODO: p2p_buf_add_operating_channel() if GO */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_NAN
 	p2p_buf_add_device_info(ies, p2p, NULL);
 #endif/* CONFIG_BRCM_NAN */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	p2p_buf_update_ie_hdr(ies, len);
 }
 
@@ -4761,12 +4742,6 @@
 	}
 
 	if (p2p->state == P2P_LISTEN_ONLY && p2p->ext_listen_only) {
-		/*
-		 * This should not really happen, but it looks like the Listen
-		 * command may fail is something else (e.g., a scan) was
-		 * running at an inconvenient time. As a workaround, allow new
-		 * Extended Listen operation to be started.
-		 */
 		p2p_dbg(p2p, "Previous Extended Listen operation had not been completed - try again");
 		p2p->ext_listen_only = 0;
 		p2p_set_state(p2p, P2P_IDLE);
@@ -4929,7 +4904,7 @@
 	return p2p->cfg->channel;
 }
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_BRCM_AUTOMOTIVE)
+#if defined(CONFIG_BRCM_AUTOMOTIVE)
 void p2p_set_ignore_random_ssid(struct p2p_data *p2p, int value)
 {
 	p2p->ignore_random = value;
@@ -4966,8 +4941,7 @@
 	return 0;
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#if defined (CONFIG_BRCM_RSDB)
+#if defined(CONFIG_BRCM_RSDB)
 int p2p_set_pref_freq_2g_5g(struct p2p_data *p2p, int pref_2g, int pref_5g)
 {
         p2p_dbg(p2p, "Set p2p pref 5G %u 2G  %u channels",
@@ -4977,7 +4951,6 @@
         return 0;
 }
 #endif /* CONFIG_BRCM_RSDB */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 int p2p_set_pref_chan(struct p2p_data *p2p, unsigned int num_pref_chan,
 		      const struct p2p_channel *pref_chan)
@@ -5220,7 +5193,6 @@
 	}
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 int p2p_set_interworking_ie(struct p2p_group *group)
 {
@@ -5228,7 +5200,6 @@
 	return 0;
 }
 #endif /* CONFIG_BRCM_AUTOMOTIVE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 int p2p_set_wfd_ie_beacon(struct p2p_data *p2p, struct wpabuf *ie)
 {
@@ -5354,15 +5325,13 @@
 
 #endif /* CONFIG_WIFI_DISPLAY */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#if defined (CONFIG_BRCM_AUTOMOTIVE) && defined (CONFIG_BRCM_BANDSTEER)
+#if defined(CONFIG_BRCM_AUTOMOTIVE) && defined(CONFIG_BRCM_BANDSTEER)
 int p2p_set_device_id(struct p2p_group *group)
 {
         p2p_group_force_beacon_update_ies(group);
         return 0;
 }
 #endif /* CONFIG_BRCM_AUTOMOTIVE && CONFIG_BRCM_BANDSTEER */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 int p2p_set_disc_int(struct p2p_data *p2p, int min_disc_int, int max_disc_int,
 		     int max_disc_tu)
@@ -5440,27 +5409,6 @@
 	}
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BCM_GENL
-int p2p_remove_peer(struct p2p_data *p2p, u8 *addr)
-{
-        struct p2p_device *dev = NULL;
-
-        if (!addr || !p2p)
-                return -EINVAL;
-
-        dev = p2p_get_device(p2p, addr);
-
-	/* Free up the device from the dev list */
-	if (dev) {
-		dl_list_del(&dev->list);
-		p2p_device_free(p2p, dev);
-	}
-
-	return 0;
-}
-#endif /* BCM_GENL */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_WPS_NFC
 
@@ -5772,7 +5720,6 @@
 
 	return buf;
 }
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 struct p2p_channels * p2p_get_channels(struct p2p_data *p2p)
 {
@@ -5791,4 +5738,3 @@
         return &p2p->op_channel;
 }
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p.h b/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p.h
index 7ef71fb..f059404 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p.h
@@ -38,11 +38,9 @@
  */
 #define P2P_MAX_REG_CLASS_CHANNELS 60
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_RSDB
 #define MAX_FREQ_5G 4
 #endif /* CONFIG_BRCM_RSDB */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 /**
  * struct p2p_channels - List of supported channels
  */
@@ -319,11 +317,9 @@
 	P2P_SCAN_FULL,
 	P2P_SCAN_SPECIFIC,
 	P2P_SCAN_SOCIAL_PLUS_ONE
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_RSDB
         , P2P_SCAN_SOCIAL_PLUS_5G
 #endif /* CONFIG_BRCM_RSDB */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 };
 
 #define P2P_MAX_WPS_VENDOR_EXT 10
@@ -553,12 +549,10 @@
 	u8 uuid[16];
 	u16 config_methods;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#if defined (CONFIG_BRCM_RSDB)
+#if defined(CONFIG_BRCM_RSDB)
         int pref_freq_5g;
         int pref_freq_2g;
 #endif /* CONFIG_BRCM_RSDB */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	/**
 	 * concurrent_operations - Whether concurrent operations are supported
 	 */
@@ -649,7 +643,7 @@
 	 * then calling p2p_scan_res_handled() to indicate that all scan
 	 * results have been indicated.
 	 */
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_BRCM_RSDB)
+#if defined(CONFIG_BRCM_RSDB)
 	int (*p2p_scan)(void *ctx, enum p2p_scan_type type, int freq[],
 			unsigned int num_req_dev_types,
 			const u8 *req_dev_types, const u8 *dev_id, u16 pw_id);
@@ -1246,7 +1240,6 @@
 	P2P_FIND_START_WITH_FULL,
 	P2P_FIND_ONLY_SOCIAL,
 	P2P_FIND_PROGRESSIVE
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_RSDB
         , P2P_FIND_FAST_PROGRESSIVE
 #endif /* CONFIG_BRCM_RSDB */
@@ -1254,7 +1247,6 @@
         , P2P_SEARCH_ONLY,
         P2P_SEARCH_SINGLE_CHANNEL
 #endif /* CONFIG_BRCM_NAN */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 };
 
 /**
@@ -1324,27 +1316,6 @@
  */
 void p2p_stop_listen(struct p2p_data *p2p);
 
-/**
- * p2p_connect - Start P2P group formation (GO negotiation)
- * @p2p: P2P module context from p2p_init()
- * @peer_addr: MAC address of the peer P2P client
- * @wps_method: WPS method to be used in provisioning
- * @go_intent: Local GO intent value (1..15)
- * @own_interface_addr: Intended interface address to use with the group
- * @force_freq: The only allowed channel frequency in MHz or 0
- * @persistent_group: Whether to create a persistent group (0 = no, 1 =
- * persistent group without persistent reconnect, 2 = persistent group with
- * persistent reconnect)
- * @force_ssid: Forced SSID for the group if we become GO or %NULL to generate
- *	a new SSID
- * @force_ssid_len: Length of $force_ssid buffer
- * @pd_before_go_neg: Whether to send Provision Discovery prior to GO
- *	Negotiation as an interoperability workaround when initiating group
- *	formation
- * @pref_freq: Preferred operating frequency in MHz or 0 (this is only used if
- *	force_freq == 0)
- * Returns: 0 on success, -1 on failure
- */
 int p2p_connect(struct p2p_data *p2p, const u8 *peer_addr,
 		enum p2p_wps_method wps_method,
 		int go_intent, const u8 *own_interface_addr,
@@ -2279,8 +2250,7 @@
  */
 int p2p_set_pref_chan(struct p2p_data *p2p, unsigned int num_pref_chan,
 		      const struct p2p_channel *pref_chan);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#if defined (CONFIG_BRCM_RSDB)
+#if defined(CONFIG_BRCM_RSDB)
 /**
  *  * p2p_set_pref_freq_2g_5g - set preferred channel for p2p interface
  *   * @p2p: P2P module context from p2p_init()
@@ -2291,7 +2261,6 @@
 int p2p_set_pref_freq_2g_5g(struct p2p_data *p2p, int p2p_pref_freq_5g,
                         int p2p_pref_freq_2g);
 #endif /* CONFIG_BRCM_RSDB */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 /**
  * p2p_set_no_go_freq - Set no GO channel ranges
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_build.c b/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_build.c
index 63eb2e8..dc1e8d0 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_build.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_build.c
@@ -714,11 +714,6 @@
 	wpabuf_put_be16(buf, attr);
 #ifndef CONFIG_WPS_STRICT
 	if (len == 0) {
-		/*
-		 * Some deployed WPS implementations fail to parse zeor-length
-		 * attributes. As a workaround, send a space character if the
-		 * device attribute string is empty.
-		 */
 		if (wpabuf_tailroom(buf) < 3)
 			return -1;
 		wpabuf_put_be16(buf, 1);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_group.c b/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_group.c
index a709fd6..2992183 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_group.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_group.c
@@ -236,8 +236,7 @@
 
 	len = p2p_buf_add_ie_hdr(ie);
 	p2p_group_add_common_ies(group, ie);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#if defined (CONFIG_BRCM_AUTOMOTIVE) && defined (CONFIG_BRCM_BANDSTEER)
+#if defined(CONFIG_BRCM_AUTOMOTIVE) && defined(CONFIG_BRCM_BANDSTEER)
         if ((p2p_group_get_freq(group) & 0x900) && !group->p2p->dev_id)
                 wpa_printf(MSG_ERROR,"%s Bandsteer is enabled removing p2p_device_id\n", __FUNCTION__);
         else
@@ -245,9 +244,6 @@
 #else
 	p2p_buf_add_device_id(ie, group->p2p->cfg->dev_addr);
 #endif/* CONFIG_BRCM_AUTOMOTIVE && CONFIG_BRCM_BANDDSTEER */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-	p2p_buf_add_device_id(ie, group->p2p->cfg->dev_addr);
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	p2p_group_add_noa(ie, group->noa);
 	p2p_buf_update_ie_hdr(ie, len);
 
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_i.h b/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_i.h
index 95c8124..628f3a5 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_i.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_i.h
@@ -11,11 +11,9 @@
 
 #include "utils/list.h"
 #include "p2p.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_10
 #include "ap/ap_config.h"
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #define P2P_GO_NEG_CNF_MAX_RETRY_COUNT 1
 
@@ -351,7 +349,6 @@
 	 * ssid_set - Whether SSID is already set for GO Negotiation
 	 */
 	int ssid_set;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_10
 	/**
 	 * passphrase - WPA2-Personal passphrase for GO Negotiation (if local end will be GO)
@@ -363,7 +360,6 @@
 	 */
 	int passphrase_set;
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	/**
 	 * Regulatory class for own operational channel
@@ -420,14 +416,6 @@
 	 * srv_update_indic - Service Update Indicator for local services
 	 */
 	u16 srv_update_indic;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef CONFIG_BRCM_SD_DYNAMIC_CAPA
-	/**
-	 * srv_count - Registered services count
-	 */
-	u16 srv_count;
-#endif /* CONFIG_BRCM_SD_DYNAMIC_CAPA */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	struct wpabuf *sd_resp; /* Fragmented SD response */
 	u8 sd_resp_addr[ETH_ALEN];
@@ -458,12 +446,10 @@
 	u8 last_prog_scan_class;
 	u8 last_prog_scan_chan;
 	unsigned int find_pending_full:1;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_RSDB
 	u8 last_prog_scan_class_5g;
 	u8 last_prog_scan_chan_5g;
 #endif /* CONFIG_BRCM_RSDB */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	int p2p_scan_running;
 	enum p2p_after_scan {
 		P2P_AFTER_SCAN_NOTHING,
@@ -580,7 +566,6 @@
 	/* Override option for preferred operating channel in GO Negotiation */
 	u8 override_pref_op_class;
 	u8 override_pref_channel;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 	int interworking;
 	int access_network_type;
@@ -597,7 +582,6 @@
 	int dev_id;
 #endif
 #endif /* CONFIG_BRCM_AUTOMOTIVE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 };
 
 /**
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_pd.c b/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_pd.c
index 604a918..cc4021b 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_pd.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_pd.c
@@ -14,11 +14,9 @@
 #include "wps/wps_defs.h"
 #include "p2p_i.h"
 #include "p2p.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 #include "wpa_supplicant_i.h"
 #endif /* CONFIG_BRCM_AUTOMOTIVE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 
 /*
@@ -579,12 +577,10 @@
 	struct p2ps_feature_capab *req_fcap = NULL;
 	u8 remote_conncap;
 	u16 method;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 	struct wpa_supplicant *wpa_s = p2p->cfg->cb_ctx;
 	wpa_s->rx_freq = rx_freq;
 #endif /* CONFIG_BRCM_AUTOMOTIVE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	if (p2p_parse(data, len, &msg))
 		return;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_sd.c b/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_sd.c
index 2e1183d..b0b52d3 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_sd.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/p2p/p2p_sd.c
@@ -873,7 +873,6 @@
 		      const struct wpabuf *tlvs)
 {
 	struct p2p_sd_query *q;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ANDROID_P2P
 	/* Currently, supplicant doesn't support more than one pending broadcast SD request.
 	 * So reject if application is registering another one before cancelling the existing one.
@@ -887,7 +886,6 @@
 		}
 	}
 #endif /* ANDROID_P2P */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	q = os_zalloc(sizeof(*q));
 	if (q == NULL)
@@ -904,15 +902,6 @@
 		return NULL;
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef CONFIG_BRCM_SD_DYNAMIC_CAPA
-	/* When first service discovery query is registered,
-	 * enable the SD capability
-	 */
-	if(p2p->cfg->sd_request && !p2p->sd_queries)
-		p2p->dev_capab |= P2P_DEV_CAPAB_SERVICE_DISCOVERY;
-#endif /* CONFIG_BRCM_SD_DYNAMIC_CAPA */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	q->next = p2p->sd_queries;
 	p2p->sd_queries = q;
 	p2p_dbg(p2p, "Added SD Query %p", q);
@@ -948,35 +937,9 @@
 #endif /* CONFIG_WIFI_DISPLAY */
 
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_BRCM_SD_DYNAMIC_CAPA)
-void p2p_sd_service_update(struct p2p_data *p2p, int action)
-#else
 void p2p_sd_service_update(struct p2p_data *p2p)
-#endif /* CONFIG_DRIVER_NL80211_IFX && CONFIG_BRCM_SD_DYNAMIC_CAPA */
 {
 	p2p->srv_update_indic++;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef CONFIG_BRCM_SD_DYNAMIC_CAPA
-	if(action == SRV_FLUSH)
-		p2p->srv_count = 0;
-	else if (action == SRV_DEL)
-		p2p->srv_count--;
-	else if (action == SRV_ADD)
-		p2p->srv_count++;
-
-	if(p2p->cfg->sd_request) {
-		if (p2p->srv_count == 1) {
-			/* First Service Registered. Enable SD capability */
-			p2p->dev_capab |= P2P_DEV_CAPAB_SERVICE_DISCOVERY;
-		} else if (p2p->srv_count == 0 && !p2p->sd_queries) {
-			/* No services remaining + No queries registered .
-			 * Remove the SD Capability
-			 */
-			p2p->dev_capab &= ~P2P_DEV_CAPAB_SERVICE_DISCOVERY;
-		}
-	}
-#endif /* CONFIG_BRCM_SD_DYNAMIC_CAPA */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -985,16 +948,6 @@
 	if (p2p_unlink_sd_query(p2p, req)) {
 		p2p_dbg(p2p, "Cancel pending SD query %p", req);
 		p2p_free_sd_query(req);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef CONFIG_BRCM_SD_DYNAMIC_CAPA
-		if(!p2p->sd_queries && p2p->cfg->sd_request && !p2p->srv_count) {
-			/* If there are no SD queries or responses registered,
-			 * then disable the SD capability
-			 */
-			p2p->dev_capab &= ~P2P_DEV_CAPAB_SERVICE_DISCOVERY;
-		}
-#endif /* CONFIG_BRCM_SD_DYNAMIC_CAPA */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		return 0;
 	}
 	return -1;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/pae/ieee802_1x_kay.c b/src/lynq/packages/thirdpart/lynq-wg870/src/pae/ieee802_1x_kay.c
index 2fe88ac..a638b8a 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/pae/ieee802_1x_kay.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/pae/ieee802_1x_kay.c
@@ -2134,14 +2134,6 @@
 		return -1;
 	}
 
-	/* FIXME: A fresh SAK not generated until
-	 * the live peer list contains at least one peer and
-	 * MKA life time has elapsed since the prior SAK was first distributed,
-	 * or the Key server's potential peer is empty
-	 * but I can't understand the second item, so
-	 * here only check first item and ingore
-	 *   && (!dl_list_empty(&participant->potential_peers))) {
-	 */
 	if ((time(NULL) - kay->dist_time) < MKA_LIFE_TIME / 1000) {
 		wpa_printf(MSG_ERROR,
 			   "KaY: Life time has not elapsed since prior SAK distributed");
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/pmksa_cache.c b/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/pmksa_cache.c
index bbbedf6..a3ed538 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/pmksa_cache.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/pmksa_cache.c
@@ -14,13 +14,11 @@
 #include "wpa.h"
 #include "wpa_i.h"
 #include "pmksa_cache.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_ANDROID11
 /* android commit:126b1702 wifi: implement PMK cache interface and callback */
 #include "wpa_supplicant_i.h"
 #include "notify.h"
 #endif /* CONFIG_ANDROID11 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #if defined(IEEE8021X_EAPOL) && !defined(CONFIG_NO_WPA)
 
@@ -272,12 +270,10 @@
 	wpa_printf(MSG_DEBUG, "RSN: Added PMKSA cache entry for " MACSTR
 		   " network_ctx=%p akmp=0x%x", MAC2STR(entry->aa),
 		   entry->network_ctx, entry->akmp);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_ANDROID11
 	/* android commit:126b1702 wifi: implement PMK cache interface and callback */
 	wpas_notify_pmk_cache_added((struct wpa_supplicant *)pmksa->sm->ctx->ctx, entry);
 #endif /* CONFIG_ANDROID11 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	wpa_sm_add_pmkid(pmksa->sm, entry->network_ctx, entry->aa, entry->pmkid,
 			 entry->fils_cache_id_set ? entry->fils_cache_id : NULL,
 			 entry->pmk, entry->pmk_len,
@@ -425,20 +421,18 @@
 			      const u8 *aa, int akmp)
 {
 	struct rsn_pmksa_cache_entry *entry = pmksa->pmksa;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_OKC
 	u8 pmkid_str[PMKID_LEN*2 + 1];
 	u8 *pmkid_strp = pmkid_str;
 	s32 i = 0;
 	os_memset(pmkid_strp, 0, PMKID_LEN*2 + 1);
 #endif /* BRCM_OKC */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	wpa_printf(MSG_DEBUG, "RSN: Consider " MACSTR " for OKC", MAC2STR(aa));
 	if (network_ctx == NULL)
 		return NULL;
 	while (entry) {
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(BRCM_OKC)
+#if defined(BRCM_OKC)
 		if((entry->network_ctx == network_ctx) &&
 			(!akmp || entry->akmp == akmp) &&
 			(os_memcmp(pmksa->sm->pmk, entry->pmk, PMK_LEN) == 0)) {
@@ -462,7 +456,7 @@
 
 			entry = pmksa_cache_clone_entry(pmksa, entry, aa);
 			if (entry) {
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(BRCM_OKC)
+#if defined(BRCM_OKC)
 				for (i = 0; i < PMKID_LEN; i++)
 					pmkid_strp += os_snprintf((char *)pmkid_strp,
 						PMKID_LEN * 2 + 1, "%02x", entry->pmkid[i]);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/tdls.c b/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/tdls.c
index 7c4ef19..5bdeae6 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/tdls.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/tdls.c
@@ -1795,12 +1795,6 @@
 	struct wpa_tdls_timeoutie *timeoutie;
 	struct wpa_tdls_lnkid *lnkid;
 	u32 lifetime = 0;
-#if 0
-	struct rsn_ie_hdr *hdr;
-	u8 *pos;
-	u16 rsn_capab;
-	u16 rsn_ver;
-#endif
 	u8 dtoken;
 	u16 ielen;
 	u16 status = WLAN_STATUS_UNSPECIFIED_FAILURE;
@@ -2059,43 +2053,6 @@
 		peer->tk_set = 0; /* A new nonce results in a new TK */
 	}
 
-#if 0
-	/* get version info from RSNIE received from Peer */
-	hdr = (struct rsn_ie_hdr *) kde.rsn_ie;
-	rsn_ver = WPA_GET_LE16(hdr->version);
-
-	/* use min(peer's version, out version) */
-	if (rsn_ver > RSN_VERSION)
-		rsn_ver = RSN_VERSION;
-
-	hdr = (struct rsn_ie_hdr *) peer->rsnie_p;
-
-	hdr->elem_id = WLAN_EID_RSN;
-	WPA_PUT_LE16(hdr->version, rsn_ver);
-	pos = (u8 *) (hdr + 1);
-
-	RSN_SELECTOR_PUT(pos, RSN_CIPHER_SUITE_NO_GROUP_ADDRESSED);
-	pos += RSN_SELECTOR_LEN;
-	/* Include only the selected cipher in pairwise cipher suite */
-	WPA_PUT_LE16(pos, 1);
-	pos += 2;
-	if (cipher == WPA_CIPHER_CCMP)
-		RSN_SELECTOR_PUT(pos, RSN_CIPHER_SUITE_CCMP);
-	pos += RSN_SELECTOR_LEN;
-
-	WPA_PUT_LE16(pos, 1);
-	pos += 2;
-	RSN_SELECTOR_PUT(pos, RSN_AUTH_KEY_MGMT_TPK_HANDSHAKE);
-	pos += RSN_SELECTOR_LEN;
-
-	rsn_capab = WPA_CAPABILITY_PEERKEY_ENABLED;
-	rsn_capab |= RSN_NUM_REPLAY_COUNTERS_16 << 2;
-	WPA_PUT_LE16(pos, rsn_capab);
-	pos += 2;
-
-	hdr->len = (pos - peer->rsnie_p) - 2;
-	peer->rsnie_p_len = pos - peer->rsnie_p;
-#endif
 
 	/* temp fix: validation of RSNIE later */
 	os_memcpy(peer->rsnie_p, peer->rsnie_i, peer->rsnie_i_len);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/wpa.c b/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/wpa.c
index 9617286..db0d680 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/wpa.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/wpa.c
@@ -32,7 +32,6 @@
 #include "pmksa_cache.h"
 #include "wpa_i.h"
 #include "wpa_ie.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_DHCP_HLP
 #include <net/route.h>
 #include <net/if.h>
@@ -43,14 +42,10 @@
 #include "common/dhcp.h"
 #include <sys/ioctl.h>
 #endif /* BRCM_DHCP_HLP */
-#ifdef BRCM_CCX
-#include "wpa_cckm.h"
-#endif /* BRCM_CCX */
 #if defined(BRCM_OKC) || defined(BRCM_VE) || defined(BRCM_ROAM_OFFLOAD)
 #include "wpa_supplicant_i.h"
 #include "driver_i.h"
 #endif /* BRCM_OKC || BRCM_VE || BRCM_ROAM_OFFLOAD*/
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 
 static const u8 null_rsc[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
@@ -310,7 +305,6 @@
 		}
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_OKC
 #ifdef WL_SAE
 	else if(pmkid && sm->cur_pmksa &&
@@ -334,7 +328,6 @@
 		}
 	}
 #endif /* BRCM_OKC */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (pmkid && sm->cur_pmksa &&
 	    os_memcmp_const(pmkid, sm->cur_pmksa->pmkid, PMKID_LEN) == 0) {
 		wpa_hexdump(MSG_DEBUG, "RSN: matched PMKID", pmkid, PMKID_LEN);
@@ -614,15 +607,6 @@
 	os_memcpy(reply->key_nonce, nonce, WPA_NONCE_LEN);
 
 	wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, "WPA: Sending EAPOL-Key 2/4");
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-	if (wpa_key_mgmt_cckm(sm->key_mgmt))
-		/* compute MIC with KRK instead of KCK only for M2 */
-	return wpa_eapol_key_send(sm, &sm->ptk, ver, dst, ETH_P_EAPOL,
-				   rbuf, rlen, key_mic);
-	else
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	return wpa_eapol_key_send(sm, ptk, ver, dst, ETH_P_EAPOL, rbuf, rlen,
 				  key_mic);
 }
@@ -656,15 +640,6 @@
 		akmp |= WPA_KEY_MGMT_PSK_SHA256;
 	}
 #endif /* CONFIG_OWE */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-	if (wpa_key_mgmt_cckm(sm->key_mgmt)) {
-		wpa_generate_krk_btk_cckm(sm, key->key_nonce);
-		wpa_derive_ptk_cckm(sm, sm->bssid, ptk);
-		return 0;
-	}
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	return wpa_pmk_to_ptk(sm->pmk, sm->pmk_len, "Pairwise key expansion",
 			      sm->own_addr, sm->bssid, sm->snonce,
 			      key->key_nonce, ptk, akmp,
@@ -1148,11 +1123,6 @@
 						int tx)
 {
 	if (tx && sm->pairwise_cipher != WPA_CIPHER_NONE) {
-		/* Ignore Tx bit for GTK if a pairwise key is used. One AP
-		 * seemed to set this bit (incorrectly, since Tx is only when
-		 * doing Group Key only APs) and without this workaround, the
-		 * data connection does not work because wpa_supplicant
-		 * configured non-zero keyidx to be used for unicast. */
 		wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
 			"WPA: Tx bit set for GTK, but pairwise "
 			"keys are used - ignore Tx bit");
@@ -1277,19 +1247,6 @@
 			   keyidx, 0, igtk->pn, sizeof(igtk->pn),
 			   igtk->igtk, len, KEY_FLAG_GROUP_RX) < 0) {
 		if (keyidx == 0x0400 || keyidx == 0x0500) {
-			/* Assume the AP has broken PMF implementation since it
-			 * seems to have swapped the KeyID bytes. The AP cannot
-			 * be trusted to implement BIP correctly or provide a
-			 * valid IGTK, so do not try to configure this key with
-			 * swapped KeyID bytes. Instead, continue without
-			 * configuring the IGTK so that the driver can drop any
-			 * received group-addressed robust management frames due
-			 * to missing keys.
-			 *
-			 * Normally, this error behavior would result in us
-			 * disconnecting, but there are number of deployed APs
-			 * with this broken behavior, so as an interoperability
-			 * workaround, allow the connection to proceed. */
 			wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
 				"WPA: Ignore IGTK configuration error due to invalid IGTK KeyID byte order");
 		} else {
@@ -2680,7 +2637,6 @@
 		goto out;
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_OKC
 	if (sm->rx_replay_counter_set &&
 	    os_memcmp(key->replay_counter, sm->rx_replay_counter,
@@ -2706,7 +2662,6 @@
 			goto out;
 	}
 #endif /* BRCM_OKC */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (sm->rx_replay_counter_set &&
 	    os_memcmp(key->replay_counter, sm->rx_replay_counter,
 		      WPA_REPLAY_COUNTER_LEN) <= 0) {
@@ -2964,13 +2919,12 @@
 	if (deauth) {
 		sm->pmk_len = 0;
 		os_memset(sm->pmk, 0, sizeof(sm->pmk));
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifndef BRCM_OKC
-		wpa_sm_deauthenticate(sm, WLAN_REASON_UNSPECIFIED);
+		/* Refer commit ed56a660: Suppress deauth for PMKSA caching disabled */
+		if (!sm->suppress_deauth_no_pmksa) {
+			wpa_sm_deauthenticate(sm, WLAN_REASON_UNSPECIFIED);
+		}
 #endif /* BRCM_OKC */
-#else
-		wpa_sm_deauthenticate(sm, WLAN_REASON_UNSPECIFIED);
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	}
 }
 
@@ -3293,6 +3247,8 @@
 		}
 #endif /* CONFIG_FILS */
 		sm->beacon_prot = config->beacon_prot;
+		/* Refer commit ed56a660: Suppress deauth for PMKSA caching disabled */
+		sm->suppress_deauth_no_pmksa = config->suppress_deauth_no_pmksa;
 	} else {
 		sm->network_ctx = NULL;
 		sm->allowed_pairwise_cipher = 0;
@@ -3752,29 +3708,6 @@
 	return 0;
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-int wpa_sm_set_ap_wapi_ie(struct wpa_sm *sm, const u8 *ie, size_t len)
-{
-        if (sm == NULL)
-                return -1;
-        os_free(sm->ap_wapi_ie);
-        if (ie == NULL || len == 0) {
-                wpa_printf(MSG_DEBUG, " * WPA: clearing AP WAPI IE");
-                sm->ap_wapi_ie = NULL;
-                sm->ap_wapi_ie_len = 0;
-        } else {
-                wpa_hexdump(MSG_DEBUG, " * WPA: set AP WAPI IE", ie, len);
-                sm->ap_wapi_ie = os_malloc(len);
-                if (sm->ap_wapi_ie == NULL)
-                        return -1;
-                os_memcpy(sm->ap_wapi_ie, ie, len);
-                sm->ap_wapi_ie_len = len;
-        }
-        return 0;
-}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 /**
  * wpa_sm_set_ap_rsn_ie - Set AP RSN IE from Beacon/ProbeResp
@@ -3956,7 +3889,6 @@
 	pmksa_cache_flush(sm->pmksa, network_ctx, NULL, 0);
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_VE
 void wpa_sm_install_pmk(struct wpa_sm *sm)
 {
@@ -3994,7 +3926,6 @@
 	}
 }
 #endif /* BRCM_VE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_WNM
 int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf)
@@ -4917,11 +4848,6 @@
 	if (!elems.rsn_ie) {
 		wpa_printf(MSG_DEBUG,
 			   "FILS: No RSNE in (Re)Association Response");
-		/* As an interop workaround, allow this for now since IEEE Std
-		 * 802.11ai-2016 did not include all the needed changes to make
-		 * a FILS AP include RSNE in the frame. This workaround might
-		 * eventually be removed and replaced with rejection (goto fail)
-		 * to follow a strict interpretation of the standard. */
 	} else if (wpa_compare_rsn_ie(wpa_key_mgmt_ft(sm->key_mgmt),
 				      sm->ap_rsn_ie, sm->ap_rsn_ie_len,
 				      elems.rsn_ie - 2, elems.rsn_ie_len + 2)) {
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/wpa.h b/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/wpa.h
index e7f1f6f..a2f02a4 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/wpa.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/wpa.h
@@ -79,13 +79,6 @@
 		const struct hostapd_freq_params *params);
 	int (*tdls_disable_channel_switch)(void *ctx, const u8 *addr);
 #endif /* CONFIG_TDLS */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-	int (*get_rekey_request_number)(void *ctx, u32 *rn);
-	int (*get_assoc_res_ies)(void *ctx, u8 *info, int len);
-	int (*set_key_refresh_key)(void *ctx, const u8 *key);
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	void (*set_rekey_offload)(void *ctx, const u8 *kek, size_t kek_len,
 				  const u8 *kck, size_t kck_len,
 				  const u8 *replay_ctr);
@@ -137,6 +130,8 @@
 	int owe_ptk_workaround;
 	const u8 *fils_cache_id;
 	int beacon_prot;
+	/* Refer commit ed56a660: Suppress deauth for PMKSA caching disabled */
+	int suppress_deauth_no_pmksa;
 };
 
 #ifndef CONFIG_NO_WPA
@@ -164,11 +159,6 @@
 int wpa_sm_set_ap_wpa_ie(struct wpa_sm *sm, const u8 *ie, size_t len);
 int wpa_sm_set_ap_rsn_ie(struct wpa_sm *sm, const u8 *ie, size_t len);
 int wpa_sm_set_ap_rsnxe(struct wpa_sm *sm, const u8 *ie, size_t len);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-int wpa_sm_set_ap_wapi_ie(struct wpa_sm *sm, const u8 *ie, size_t len);
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 int wpa_sm_get_mib(struct wpa_sm *sm, char *buf, size_t buflen);
 
 int wpa_sm_set_param(struct wpa_sm *sm, enum wpa_sm_conf_params param,
@@ -210,22 +200,18 @@
 
 int wpa_sm_get_p2p_ip_addr(struct wpa_sm *sm, u8 *buf);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(BRCM_VE) || defined(BRCM_ROAM_OFFLOAD)
 void wpa_sm_install_pmk(struct wpa_sm *sm);
 void wpa_sm_notify_brcm_ft_reassoc(struct wpa_sm *sm, const u8 *bssid);
 #endif /* BRCM_VE || BRCM_ROAM_OFFLOAD */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 void wpa_sm_set_rx_replay_ctr(struct wpa_sm *sm, const u8 *rx_replay_counter);
 void wpa_sm_set_ptk_kck_kek(struct wpa_sm *sm,
 			    const u8 *ptk_kck, size_t ptk_kck_len,
 			    const u8 *ptk_kek, size_t ptk_kek_len);
 int wpa_fils_is_completed(struct wpa_sm *sm);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_DHCP_HLP
 void fils_process_hlp_container(struct wpa_sm *sm, const u8 *pos, size_t len);
 #endif /* BRCM_DHCP_HLP */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #else /* CONFIG_NO_WPA */
 
@@ -403,13 +389,11 @@
 {
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(BRCM_VE) || defined(BRCM_ROAM_OFFLOAD)
 static inline void wpa_sm_install_pmk(struct wpa_sm *sm)
 {
 }
 #endif /* BRCM_VE || BRCM_ROAM_OFFLOAD */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 static inline void wpa_sm_set_rx_replay_ctr(struct wpa_sm *sm,
 					    const u8 *rx_replay_counter)
 {
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/wpa_ft.c b/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/wpa_ft.c
index bf73376..7058dfc 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/wpa_ft.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/wpa_ft.c
@@ -674,12 +674,6 @@
 	wpa_sm_mark_authenticated(sm, bssid);
 	ret = wpa_ft_install_ptk(sm, bssid);
 	if (ret) {
-		/*
-		 * Some drivers do not support key configuration when we are
-		 * not associated with the target AP. Work around this by
-		 * trying again after the following reassociation gets
-		 * completed.
-		 */
 		wpa_printf(MSG_DEBUG, "FT: Failed to set PTK prior to "
 			   "association - try again after reassociation");
 		sm->set_ptk_after_assoc = 1;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/wpa_i.h b/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/wpa_i.h
index 365f85b..c029626 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/wpa_i.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/rsn_supp/wpa_i.h
@@ -103,12 +103,6 @@
 	size_t assoc_rsnxe_len;
 	u8 *ap_wpa_ie, *ap_rsn_ie, *ap_rsnxe;
 	size_t ap_wpa_ie_len, ap_rsn_ie_len, ap_rsnxe_len;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        u8 *ap_wapi_ie;
-        size_t ap_wapi_ie_len;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_TDLS
 	struct wpa_tdls_peer *tdls;
@@ -153,15 +147,6 @@
 	u8 *assoc_resp_ies; /* MDIE and FTIE from (Re)Association Response */
 	size_t assoc_resp_ies_len;
 #endif /* CONFIG_IEEE80211R */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-       int cckm_reassoc_completed;
-       u32 rn; /* reassociation request number (refreshed per session key) */
-       /* fields of CCKM key hierarchy */
-       u8 key_refresh_key[CCKM_KRK_LEN];
-       u8 base_transient_key[CCKM_BTK_LEN];
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_P2P
 	u8 p2p_ip_addr[3 * 4];
@@ -205,6 +190,8 @@
 	struct wpabuf *dpp_z;
 	int dpp_pfs;
 #endif /* CONFIG_DPP2 */
+	/* Refer commit ed56a660: Suppress deauth for PMKSA caching disabled */
+	int suppress_deauth_no_pmksa;
 };
 
 
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/tls/libtommath.c b/src/lynq/packages/thirdpart/lynq-wg870/src/tls/libtommath.c
index 7156744..c2f7a61 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/tls/libtommath.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/tls/libtommath.c
@@ -638,7 +638,8 @@
   }
 
 /* modified diminished radix reduction */
-#if defined(BN_MP_REDUCE_IS_2K_L_C) && defined(BN_MP_REDUCE_2K_L_C) && defined(BN_S_MP_EXPTMOD_C)
+#if defined(BN_MP_REDUCE_IS_2K_L_C) && defined(BN_MP_REDUCE_2K_L_C) && \
+	defined(BN_S_MP_EXPTMOD_C)
   if (mp_reduce_is_2k_l(P) == MP_YES) {
      return s_mp_exptmod(G, X, P, Y, 1);
   }
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/utils/common.h b/src/lynq/packages/thirdpart/lynq-wg870/src/utils/common.h
index 610e619..8fc3c9e 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/utils/common.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/utils/common.h
@@ -17,7 +17,7 @@
 #endif /* __linux__ */
 
 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || \
-    defined(__OpenBSD__)
+	defined(__OpenBSD__)
 #include <sys/types.h>
 #include <sys/endian.h>
 #define __BYTE_ORDER	_BYTE_ORDER
@@ -341,13 +341,6 @@
 #ifndef ETH_P_RRB
 #define ETH_P_RRB 0x890D
 #endif /* ETH_P_RRB */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-#ifndef ETH_HLEN
-#define ETH_HLEN 14
-#endif /* ETH_HLEN */
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifndef ETH_P_OUI
 #define ETH_P_OUI 0x88B7
 #endif /* ETH_P_OUI */
@@ -355,11 +348,6 @@
 #define ETH_P_8021Q 0x8100
 #endif /* ETH_P_8021Q */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-#define ETHER_TYPE_WAI  0x88b4
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef __GNUC__
 #define PRINTF_FORMAT(a,b) __attribute__ ((format (printf, (a), (b))))
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/utils/eloop.c b/src/lynq/packages/thirdpart/lynq-wg870/src/utils/eloop.c
index a6cf1dc..c05c418 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/utils/eloop.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/utils/eloop.c
@@ -23,7 +23,7 @@
 #endif
 
 #if !defined(CONFIG_ELOOP_POLL) && !defined(CONFIG_ELOOP_EPOLL) && \
-    !defined(CONFIG_ELOOP_KQUEUE)
+	!defined(CONFIG_ELOOP_KQUEUE)
 #define CONFIG_ELOOP_SELECT
 #endif
 
@@ -75,11 +75,6 @@
 };
 
 struct eloop_data {
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        void *user_data;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	int max_sock;
 
 	size_t count; /* sum of all table counts */
@@ -165,18 +160,9 @@
 #endif /* WPA_TRACE */
 
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI)
-int eloop_init(void *user_data)
-#else
 int eloop_init(void)
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI */
 {
 	os_memset(&eloop, 0, sizeof(eloop));
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        eloop.user_data = user_data;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	dl_list_init(&eloop.timeout);
 #ifdef CONFIG_ELOOP_EPOLL
 	eloop.epollfd = epoll_create1(0);
@@ -973,11 +959,7 @@
 
 
 #ifndef CONFIG_NATIVE_WINDOWS
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI)
-void eloop_handle_alarm(int sig)
-#else
 static void eloop_handle_alarm(int sig)
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI */
 {
 	wpa_printf(MSG_ERROR, "eloop: could not process SIGINT or SIGTERM in "
 		   "two seconds. Looks like there\n"
@@ -1366,14 +1348,6 @@
 	close(kfd);
 #endif /* CONFIG_ELOOP_KQUEUE */
 }
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-void * eloop_get_user_data(void)
-{
-        return eloop.user_data;
-}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_ELOOP_SELECT
 #undef CONFIG_ELOOP_SELECT
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/utils/eloop.h b/src/lynq/packages/thirdpart/lynq-wg870/src/utils/eloop.h
index 77a9c1b..04ee6d1 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/utils/eloop.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/utils/eloop.h
@@ -17,11 +17,6 @@
 #ifndef ELOOP_H
 #define ELOOP_H
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-#include "wapi_config.h"
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 /**
  * ELOOP_ALL_CTX - eloop_cancel_timeout() magic number to match all timeouts
  */
@@ -76,11 +71,7 @@
  *
  * This function must be called before any other eloop_* function.
  */
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI)
-int eloop_init(void *user_data);
-#else
 int eloop_init(void);
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI */
 
 /**
  * eloop_register_read_sock - Register handler for read events
@@ -372,14 +363,5 @@
  * Do a blocking wait for a single read socket.
  */
 void eloop_wait_for_read_sock(int sock);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-/**
- *  * eloop_get_user_data - Get global user data
- *   * Returns: user_data pointer that was registered with eloop_init()
- *    */
-void * eloop_get_user_data(void);
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #endif /* ELOOP_H */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/utils/eloop_win.c b/src/lynq/packages/thirdpart/lynq-wg870/src/utils/eloop_win.c
index 74eaa33..764df5e 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/utils/eloop_win.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/utils/eloop_win.c
@@ -419,20 +419,6 @@
 
 
 /* TODO: replace with suitable signal handler */
-#if 0
-static void eloop_handle_signal(int sig)
-{
-	size_t i;
-
-	eloop.signaled++;
-	for (i = 0; i < eloop.signal_count; i++) {
-		if (eloop.signals[i].sig == sig) {
-			eloop.signals[i].signaled++;
-			break;
-		}
-	}
-}
-#endif
 
 
 static void eloop_process_pending_signals(void)
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/utils/os_unix.c b/src/lynq/packages/thirdpart/lynq-wg870/src/utils/os_unix.c
index 591ce0f..0705a1b 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/utils/os_unix.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/utils/os_unix.c
@@ -12,20 +12,16 @@
 #include <sys/wait.h>
 
 #ifdef ANDROID
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(JB)
+#if defined(JB)
 #include <linux/capability.h>
 #else
 #include <sys/capability.h>
 #endif /* CONFIG_DRIVER_NL80211_IFX && JB */
 #include <sys/prctl.h>
-#ifdef CONFIG_DRIVER_NL80211_IFX
 /* android_commit:e0317907a: Use getpwnam() instead of AID_* macros */
 #include <grp.h>
 #include <pwd.h>
 #include <sys/types.h>
-#else
-#include <private/android_filesystem_config.h>
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* ANDROID */
 
 #ifdef __MACH__
@@ -351,7 +347,6 @@
 	unsigned int seed;
 
 #ifdef ANDROID
-#ifdef CONFIG_DRIVER_NL80211_IFX
 /* android_commit:e0317907a: Use getpwnam() instead of AID_* macros */
 	struct __user_cap_header_struct header;
 	struct __user_cap_data_struct cap;
@@ -359,21 +354,17 @@
 	gid_t gid_wifi = grp ? grp->gr_gid : 0;
 	struct passwd *pwd = getpwnam("wifi");
 	uid_t uid_wifi = pwd ? pwd->pw_uid : 0;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	/*
 	 * We ignore errors here since errors are normal if we
 	 * are already running as non-root.
 	 */
 #ifdef ANDROID_SETGROUPS_OVERRIDE
 	gid_t groups[] = { ANDROID_SETGROUPS_OVERRIDE };
-#ifdef CONFIG_DRIVER_NL80211_IFX
 /* android_commit:e0317907a: Use getpwnam() instead of AID_* macros */
 	if (!gid_wifi || !uid_wifi)
 		return -1;
 	setgroups(ARRAY_SIZE(groups), groups);
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #else /* ANDROID_SETGROUPS_OVERRIDE */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 /* android_commit:e0317907a: Use getpwnam() instead of AID_* macros */
 	gid_t groups[4];
 	int group_idx = 0;
@@ -394,29 +385,14 @@
 	if (!groups[group_idx]) group_idx--;
 
 	setgroups(group_idx + 1, groups);
-#else
-	gid_t groups[] = { AID_INET, AID_WIFI, AID_KEYSTORE };
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* ANDROID_SETGROUPS_OVERRIDE */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 /* android_commit:e0317907a: Use getpwnam() instead of AID_* macros */
-#else
-	struct __user_cap_header_struct header;
-	struct __user_cap_data_struct cap;
-
-	setgroups(ARRAY_SIZE(groups), groups);
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 /* android_commit:e0317907a: Use getpwnam() instead of AID_* macros */
 	setgid(gid_wifi);
 	setuid(uid_wifi);
-#else
-	setgid(AID_WIFI);
-	setuid(AID_WIFI);
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	header.version = _LINUX_CAPABILITY_VERSION;
 	header.pid = 0;
@@ -467,7 +443,7 @@
 int os_unsetenv(const char *name)
 {
 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__) || \
-    defined(__OpenBSD__)
+	defined(__OpenBSD__)
 	unsetenv(name);
 	return 0;
 #else
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/wps/wps_enrollee.c b/src/lynq/packages/thirdpart/lynq-wg870/src/wps/wps_enrollee.c
index 819cd43..738c512 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/wps/wps_enrollee.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/wps/wps_enrollee.c
@@ -121,15 +121,6 @@
 	if (wps->wps->ap && !wps->pbc_in_m1 &&
 	    (wps->dev_password_len != 0 ||
 	     (config_methods & WPS_CONFIG_DISPLAY))) {
-		/*
-		 * These are the methods that the AP supports as an Enrollee
-		 * for adding external Registrars, so remove PushButton.
-		 *
-		 * As a workaround for Windows 7 mechanism for probing WPS
-		 * capabilities from M1, leave PushButton option if no PIN
-		 * method is available or if WPS configuration enables PBC
-		 * workaround.
-		 */
 		config_methods &= ~WPS_CONFIG_PUSHBUTTON;
 		config_methods &= ~(WPS_CONFIG_VIRT_PUSHBUTTON |
 				    WPS_CONFIG_PHY_PUSHBUTTON);
@@ -254,11 +245,6 @@
 {
 	u16 auth_type = wps->wps->ap_auth_type;
 
-	/*
-	 * Work around issues with Windows 7 WPS implementation not liking
-	 * multiple Authentication Type bits in M7 AP Settings attribute by
-	 * showing only the most secure option from current configuration.
-	 */
 	if (auth_type & WPS_AUTH_WPA2PSK)
 		auth_type = WPS_AUTH_WPA2PSK;
 	else if (auth_type & WPS_AUTH_WPAPSK)
@@ -278,11 +264,6 @@
 {
 	u16 encr_type = wps->wps->ap_encr_type;
 
-	/*
-	 * Work around issues with Windows 7 WPS implementation not liking
-	 * multiple Encryption Type bits in M7 AP Settings attribute by
-	 * showing only the most secure option from current configuration.
-	 */
 	if (wps->wps->ap_auth_type & (WPS_AUTH_WPA2PSK | WPS_AUTH_WPAPSK)) {
 		if (encr_type & WPS_ENCR_AES)
 			encr_type = WPS_ENCR_AES;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/wps/wps_upnp_ssdp.c b/src/lynq/packages/thirdpart/lynq-wg870/src/wps/wps_upnp_ssdp.c
index a685ce4..61a32c8 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/wps/wps_upnp_ssdp.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/wps/wps_upnp_ssdp.c
@@ -536,22 +536,6 @@
 			 * Note that Microsoft sometimes does funny
 			 * stuff with the HOST: line.
 			 */
-#if 0   /* could be */
-			data += token_length(data);
-			data += word_separation_length(data);
-			if (*data != ':')
-				goto bad;
-			data++;
-			data += word_separation_length(data);
-			/* UPNP_MULTICAST_ADDRESS */
-			if (!str_starts(data, "239.255.255.250"))
-				goto bad;
-			data += os_strlen("239.255.255.250");
-			if (*data == ':') {
-				if (!str_starts(data, ":1900"))
-					goto bad;
-			}
-#endif  /* could be */
 			got_host = 1;
 			continue;
 		} else if (token_eq(data, "st")) {
@@ -589,14 +573,6 @@
 					st_match = 1;
 				continue;
 			}
-#if 0
-			/* FIX: should we really reply to IGD string? */
-			if (str_starts(data, "urn:schemas-upnp-org:device:"
-				       "InternetGatewayDevice:1")) {
-				st_match = 1;
-				continue;
-			}
-#endif
 			if (str_starts(data, "urn:schemas-wifialliance-org:"
 				       "service:WFAWLANConfig:1")) {
 				st_match = 1;
@@ -876,12 +852,6 @@
 #endif /* __linux__ */
 	}
 
-#if 0   /* maybe ok if we sometimes block on writes */
-	if (fcntl(sd, F_SETFL, O_NONBLOCK) != 0) {
-		close(sd);
-		return -1;
-	}
-#endif
 
 	if (setsockopt(sd, IPPROTO_IP, IP_MULTICAST_IF,
 		       &ip_addr, sizeof(ip_addr))) {
@@ -898,26 +868,6 @@
 		return -1;
 	}
 
-#if 0   /* not needed, because we don't receive using multicast_sd */
-	{
-		struct ip_mreq mreq;
-		mreq.imr_multiaddr.s_addr = inet_addr(UPNP_MULTICAST_ADDRESS);
-		mreq.imr_interface.s_addr = ip_addr;
-		wpa_printf(MSG_DEBUG, "WPS UPnP: Multicast addr 0x%x if addr "
-			   "0x%x",
-			   mreq.imr_multiaddr.s_addr,
-			   mreq.imr_interface.s_addr);
-		if (setsockopt(sd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq,
-				sizeof(mreq))) {
-			wpa_printf(MSG_ERROR,
-				   "WPS UPnP: setsockopt "
-				   "IP_ADD_MEMBERSHIP errno %d (%s)",
-				   errno, strerror(errno));
-			close(sd);
-			return -1;
-		}
-	}
-#endif  /* not needed */
 
 	/*
 	 * TODO: What about IP_MULTICAST_LOOP? It seems to be on by default?
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/wps/wps_upnp_web.c b/src/lynq/packages/thirdpart/lynq-wg870/src/wps/wps_upnp_web.c
index 3c5a97c..2f336ea 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/wps/wps_upnp_web.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/wps/wps_upnp_web.c
@@ -1046,16 +1046,6 @@
 			continue;
 		}
 		/* HOST should refer to us */
-#if 0
-		match = "HOST:";
-		match_len = os_strlen(match);
-		if (os_strncasecmp(h, match, match_len) == 0) {
-			h += match_len;
-			while (*h == ' ' || *h == '\t')
-				h++;
-			.....
-		}
-#endif
 		/* CALLBACK gives one or more URLs for NOTIFYs
 		 * to be sent as a result of the subscription.
 		 * Each URL is enclosed in angle brackets.
@@ -1237,16 +1227,6 @@
 			break; /* no unterminated lines allowed */
 
 		/* HOST should refer to us */
-#if 0
-		match = "HOST:";
-		match_len = os_strlen(match);
-		if (os_strncasecmp(h, match, match_len) == 0) {
-			h += match_len;
-			while (*h == ' ' || *h == '\t')
-				h++;
-			.....
-		}
-#endif
 		match = "SID:";
 		match_len = os_strlen(match);
 		if (os_strncasecmp(h, match, match_len) == 0) {
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ap.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ap.c
index 6d1be11..21f7531 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ap.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ap.c
@@ -38,11 +38,6 @@
 #include "ap/sta_info.h"
 #include "notify.h"
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-void brcm_wapiap_initialize(void *ctx, int wapiap_tx_sock, struct i802_bss *bss, struct wpa_ssid *ssid);
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_WPS
 static void wpas_wps_ap_pin_timeout(void *eloop_data, void *user_ctx);
@@ -90,15 +85,11 @@
 
 	if (hostapd_get_oper_chwidth(conf) == CHANWIDTH_80P80MHZ) {
 		ieee80211_freq_to_chan(ssid->vht_center_freq2,
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_AP_VHT
 				       &conf->vht_oper_centr_freq_seg1_idx);
 #else /* CONFIG_AP_VHT */
 				       &freq_seg_idx);
 #endif /* CONFIG_AP_VHT */
-#else
-				       &freq_seg_idx);
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		hostapd_set_oper_centr_freq_seg1_idx(conf, freq_seg_idx);
 	}
 
@@ -116,7 +107,6 @@
 		return;
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(CONFIG_BRCM_RSDB)
 	if (wpa_s->conf->p2p_pref_freq_2g && wpa_s->conf->p2p_pref_freq_5g) {
 		int freq, num;
@@ -137,7 +127,6 @@
 		}
 	}
 #endif /* CONFIG_BRCM_RSDB */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_P2P
 	switch (hostapd_get_oper_chwidth(conf)) {
 	case CHANWIDTH_80MHZ:
@@ -211,7 +200,6 @@
 	return mode;
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_SAE
 static int wpas_conf_ap_sae_password(struct hostapd_bss_config *bss, const char *sae_pwd)
 {
@@ -236,7 +224,6 @@
 	return -1;
 }
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 int wpa_supplicant_conf_ap_ht(struct wpa_supplicant *wpa_s,
 			      struct wpa_ssid *ssid,
@@ -250,7 +237,6 @@
 			   ssid->frequency);
 		return -1;
 	}
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(CONFIG_BRCM_RSDB)
 	if (wpa_s->conf->p2p_pref_freq_2g && wpa_s->conf->p2p_pref_freq_5g) {
 		int freq, num;
@@ -271,7 +257,6 @@
 		}
 	}
 #endif /* CONFIG_BRCM_RSDB */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	/*
 	 * Enable HT20 if the driver supports it, by setting conf->ieee80211n
@@ -352,7 +337,6 @@
 
 			if (!ssid->p2p_group &&
 			    (mode->ht_capab &
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CY_AUTO_SET_BW
 			     /* Fix to resolve softap creation failure on 5G/80 */
 			     HT_CAP_INFO_SUPP_CHANNEL_WIDTH_SET) &&
@@ -363,10 +347,6 @@
 			     HT_CAP_INFO_SUPP_CHANNEL_WIDTH_SET)) {
 				conf->secondary_channel = ssid->ht40;
 #endif /* CONFIG_CY_AUTO_SET_BW */
-#else
-			     HT_CAP_INFO_SUPP_CHANNEL_WIDTH_SET)) {
-				conf->secondary_channel = ssid->ht40;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 				wpa_printf(MSG_DEBUG,
 					   "HT secondary channel offset %d for AP",
 					   conf->secondary_channel);
@@ -707,15 +687,6 @@
 	 * require user interaction to actually use it. Only the internal
 	 * Registrar is supported.
 	 */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-        /* Disable WPS feature if WAPI-AP is enabled */
-        if (bss->wpa_key_mgmt == WPA_KEY_MGMT_WAPI_PSK) {
-                wpa_printf(MSG_DEBUG, "%s: Disabling WPS feature\n", __FUNCTION__);
-                goto no_wps;
-        }
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (bss->ssid.security_policy != SECURITY_WPA_PSK &&
 	    bss->ssid.security_policy != SECURITY_PLAINTEXT)
 		goto no_wps;
@@ -923,7 +894,10 @@
 	struct hostapd_iface *hapd_iface;
 	struct hostapd_config *conf;
 	size_t i;
-#ifdef CONFIG_DRIVER_NL80211_IFX
+#if !defined(HOSTAPD)
+	struct wpa_global *global;
+	struct wpa_supplicant *wpa_last;
+#endif /* !HOSTAPD && CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_CY_AUTO_SET_BW
 	/* Fix to create supplicant based softap on best channel
 	instead of random channel when specifying freq=2 or freq=5 */
@@ -931,32 +905,23 @@
 	int chan,freq;
 	u8 opclass;
 #endif /* CONFIG_CY_AUTO_SET_BW */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	if (ssid->ssid == NULL || ssid->ssid_len == 0) {
 		wpa_printf(MSG_ERROR, "No SSID configured for AP mode");
 		return -1;
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 	if (ssid->vht == -1 && ssid->ht40 == -1) {
 		wpa_printf(MSG_ERROR, "No Channel width configured for AP mode");
 		return -1;
 	}
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	wpa_supplicant_ap_deinit(wpa_s);
 
 	wpa_printf(MSG_DEBUG, "Setting up AP (SSID='%s')",
 		   wpa_ssid_txt(ssid->ssid, ssid->ssid_len));
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-        if (ssid->key_mgmt & WPA_KEY_MGMT_WAPI_PSK)
-                brcm_wapiap_initialize(wpa_s, wpa_s->wapi_tx_sock, wpa_s->wapi_bss, ssid);
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	os_memset(&params, 0, sizeof(params));
 	params.ssid = ssid->ssid;
 	params.ssid_len = ssid->ssid_len;
@@ -969,7 +934,6 @@
 	default:
 		return -1;
 	}
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CY_AUTO_SET_BW
 	/* Fix to create supplicant based softap on best channel
 	instead of random channel when specifying freq=2 or freq=5 */
@@ -978,6 +942,10 @@
 		return -1;
 	hapd_iface->owner = wpa_s;
 	hapd_iface->drv_flags = wpa_s->drv_flags;
+	/* Support for 4-way handshake offload to internal supplicant
+	 * for WPA/WPA2-PSK
+	 */
+	hapd_iface->drv_flags2 = wpa_s->drv_flags2;
 	hapd_iface->probe_resp_offloads = wpa_s->probe_resp_offloads;
 	hapd_iface->extended_capa = wpa_s->extended_capa;
 	hapd_iface->extended_capa_mask = wpa_s->extended_capa_mask;
@@ -1008,10 +976,6 @@
 	if (ssid->frequency == 0)
 		ssid->frequency = 2462; /* default channel 11 */
 #endif /* CONFIG_CY_AUTO_SET_BW */
-#else
-	if (ssid->frequency == 0)
-		ssid->frequency = 2462; /* default channel 11 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	params.freq.freq = ssid->frequency;
 
 	if ((ssid->mode == WPAS_MODE_AP || ssid->mode == WPAS_MODE_P2P_GO) &&
@@ -1032,12 +996,6 @@
 	params.wpa_proto = ssid->proto;
 	if (ssid->key_mgmt & WPA_KEY_MGMT_PSK)
 		wpa_s->key_mgmt = WPA_KEY_MGMT_PSK;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-        else if (ssid->key_mgmt & WPA_KEY_MGMT_WAPI_PSK)
-                wpa_s->key_mgmt = WPA_KEY_MGMT_WAPI_PSK;
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	else
 		wpa_s->key_mgmt = WPA_KEY_MGMT_NONE;
 	params.key_mgmt_suite = wpa_s->key_mgmt;
@@ -1079,23 +1037,6 @@
 		return -1;
 	}
 
-#ifndef CONFIG_DRIVER_NL80211_IFX
-	wpa_s->ap_iface = hapd_iface = hostapd_alloc_iface();
-	if (hapd_iface == NULL)
-		return -1;
-	hapd_iface->owner = wpa_s;
-	hapd_iface->drv_flags = wpa_s->drv_flags;
-	hapd_iface->probe_resp_offloads = wpa_s->probe_resp_offloads;
-	hapd_iface->extended_capa = wpa_s->extended_capa;
-	hapd_iface->extended_capa_mask = wpa_s->extended_capa_mask;
-	hapd_iface->extended_capa_len = wpa_s->extended_capa_len;
-
-	wpa_s->ap_iface->conf = conf = hostapd_config_defaults();
-	if (conf == NULL) {
-		wpa_supplicant_ap_deinit(wpa_s);
-		return -1;
-	}
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	os_memcpy(wpa_s->ap_iface->conf->wmm_ac_params,
 		  wpa_s->conf->wmm_ac_params,
@@ -1109,13 +1050,11 @@
 		conf->bss[0]->wmm_uapsd = 1;
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_RSN_CNTRS
 	if (wpa_s->conf->replay_cntrs) {
 		conf->bss[0]->replay_cntrs = wpa_s->conf->replay_cntrs;
 	}
 #endif /* CONFIG_BRCM_RSN_CNTRS */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (wpa_supplicant_conf_ap(wpa_s, ssid, conf)) {
 		wpa_printf(MSG_ERROR, "Failed to create AP configuration");
 		wpa_supplicant_ap_deinit(wpa_s);
@@ -1174,12 +1113,10 @@
 		hapd_iface->bss[i]->ext_eapol_frame_io =
 			wpa_s->ext_eapol_frame_io;
 #endif /* CONFIG_TESTING_OPTIONS */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 		if (wpa_s->conf)
 			hapd_iface->bss[i]->conf->ignore_broadcast_ssid = wpa_s->conf->ignore_broadcast_ssid;
 #endif /* CONFIG_BRCM_AUTOMOTIVE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	}
 
 	os_memcpy(hapd_iface->bss[0]->own_addr, wpa_s->own_addr, ETH_ALEN);
@@ -1201,6 +1138,27 @@
 	}
 #endif /* CONFIG_P2P && CONFIG_ACS */
 
+#if !defined(HOSTAPD)
+	if (!wpa_s->global->rsdb_flag) {
+		global = wpa_s->global;
+		for (wpa_last = global->ifaces; wpa_last; wpa_last = wpa_last->next)
+			if (os_strcmp(wpa_s->ifname, wpa_last->ifname) == 0 ||
+				os_strcmp(wpa_last->ifname, "wlan0") == 0 ||
+				os_strcmp(wpa_last->ifname, "p2p-dev-wlan0") == 0)
+				continue;
+			else if (wpa_last->ap_iface->bss != NULL &&
+					wpa_last->ap_iface->bss[0]->num_sta > 0) {
+					ssid = wpa_config_get_network(wpa_s->conf, 0);
+					if (ssid == NULL)
+						return;
+					if (ssid->disabled == 2)
+						return;
+					wpa_supplicant_disable_network(wpa_s, ssid);
+					return -1;
+			}
+	}
+#endif /* !HOSTAPD && CONFIG_DRIVER_NL80211_IFX */
+
 	if (hostapd_setup_interface(wpa_s->ap_iface)) {
 		wpa_printf(MSG_ERROR, "Failed to initialize AP interface");
 		wpa_supplicant_ap_deinit(wpa_s);
@@ -1715,7 +1673,7 @@
 	if (!iface)
 		return;
 	wpa_s->assoc_freq = freq;
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_BRCM_GO_CH_SWITCH_NOTIFY)
+#if defined(CONFIG_BRCM_GO_CH_SWITCH_NOTIFY)
 	wpa_s->current_ssid->frequency = freq;
 #else
 	if (wpa_s->current_ssid)
@@ -2004,7 +1962,6 @@
 }
 
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 void wpas_ap_set_interworking_ie(struct wpa_supplicant *wpa_s)
 {
@@ -2013,4 +1970,3 @@
 	wpa_printf(MSG_DEBUG, "%s: ret:%d\n", __FUNCTION__, ret);
 }
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ap.h b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ap.h
index ad5fe4a..caff3a2 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ap.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ap.h
@@ -102,9 +102,7 @@
 
 void ap_periodic(struct wpa_supplicant *wpa_s);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 void wpas_ap_set_interworking_ie(struct wpa_supplicant *wpa_s);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* AP_H */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/bss.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/bss.c
index 48ebfcd..e9c2f82 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/bss.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/bss.c
@@ -463,11 +463,6 @@
 	os_memcpy(bss->ssid, ssid, ssid_len);
 	bss->ssid_len = ssid_len;
 	bss->ie_len = res->ie_len;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        bss->wapi_ie_len = res->wapi_ie_len;
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	bss->beacon_ie_len = res->beacon_ie_len;
 	os_memcpy(bss->ies, res + 1, res->ie_len + res->beacon_ie_len);
 	wpa_bss_set_hessid(bss);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/bss.h b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/bss.h
index 2002140..af82ca3 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/bss.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/bss.h
@@ -110,11 +110,6 @@
 	size_t ie_len;
 	/** Length of the following Beacon IE field in octets */
 	size_t beacon_ie_len;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	size_t wapi_ie_len;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	/* followed by ie_len octets of IEs */
 	/* followed by beacon_ie_len octets of IEs */
 	u8 ies[];
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/config.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/config.c
index ef070ec..53f941e 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/config.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/config.c
@@ -5,11 +5,6 @@
  * This software may be distributed under the terms of the BSD license.
  * See README for more details.
  */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_FEATURES_COPYRIGHT
-/* Copyright (c) 2012-2013, Broadcom Corporation */
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #include "includes.h"
 
@@ -202,14 +197,12 @@
 #endif /* NO_CONFIG_WRITE */
 
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 void wpa_config_set_frequency(struct wpa_ssid *ssid, int val)
 {
 	ssid->frequency = val;
 }
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 static int wpa_config_parse_int(const struct parse_data *data,
 				struct wpa_ssid *ssid,
 				int line, const char *value)
@@ -220,19 +213,15 @@
 	dst = (int *) (((u8 *) ssid) + (long) data->param1);
 	val = strtol(value, &end, 0);
 	if (*end) {
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 		if (os_strcmp(data->name, "frequency") != 0) {
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		wpa_printf(MSG_ERROR, "Line %d: invalid number \"%s\"",
 			   line, value);
 		return -1;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 		}
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	}
 
 	if (*dst == val)
@@ -650,14 +639,6 @@
 			val |= WPA_PROTO_RSN;
 		else if (os_strcmp(start, "OSEN") == 0)
 			val |= WPA_PROTO_OSEN;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-		else if (os_strcmp(start, "WAPI") == 0) {
-			val |= WPA_PROTO_WAPI;
-			wpa_printf(MSG_DEBUG, "WAPI network\n");
-		}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		else {
 			wpa_printf(MSG_ERROR, "Line %d: invalid proto '%s'",
 				   line, start);
@@ -720,16 +701,6 @@
 		pos += ret;
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	if (ssid->proto & WPA_PROTO_WAPI) {
-		ret = os_snprintf(pos, end - pos, "%sWAPI", pos == buf ? "" : " ");
-		if (ret < 0 || ret >= end - pos)
-			return buf;
-		pos += ret;
-	}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (pos == buf) {
 		os_free(buf);
 		buf = NULL;
@@ -772,15 +743,6 @@
 			val |= WPA_KEY_MGMT_NONE;
 		else if (os_strcmp(start, "WPA-NONE") == 0)
 			val |= WPA_KEY_MGMT_WPA_NONE;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-		else if (os_strcmp(start, "WAPI-PSK") == 0)
-			val |= WPA_KEY_MGMT_WAPI_PSK;
-		else if (os_strcmp(start, "WAPI-CERT") == 0) {
-			val |= WPA_KEY_MGMT_WAPI_CERT;
-		}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_IEEE80211R
 		else if (os_strcmp(start, "FT-PSK") == 0)
 			val |= WPA_KEY_MGMT_FT_PSK;
@@ -795,12 +757,6 @@
 			val |= WPA_KEY_MGMT_PSK_SHA256;
 		else if (os_strcmp(start, "WPA-EAP-SHA256") == 0)
 			val |= WPA_KEY_MGMT_IEEE8021X_SHA256;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-		else if (os_strcmp(start, "CCKM") == 0)
-			val |= WPA_KEY_MGMT_CCKM;
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_WPS
 		else if (os_strcmp(start, "WPS") == 0)
 			val |= WPA_KEY_MGMT_WPS;
@@ -865,18 +821,6 @@
 		return 1;
 	wpa_printf(MSG_MSGDUMP, "key_mgmt: 0x%x", val);
 	ssid->key_mgmt = val;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	if ( (ssid->key_mgmt & WPA_KEY_MGMT_WAPI_PSK) && (ssid->wapi != 7) ) {
-		ssid->wapi = 7;
-	        wpa_printf(MSG_DEBUG, "WPA_KEY_MGMT_WAPI_PSK");
-	}
-	if ( (ssid->key_mgmt & WPA_KEY_MGMT_WAPI_CERT) && (ssid->wapi != 11) ) {
-		ssid->wapi = 11;
-		wpa_printf(MSG_DEBUG, "WPA_KEY_MGMT_WAPI_CERT");
-	}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	return errors ? -1 : 0;
 }
 
@@ -942,28 +886,6 @@
 		}
 		pos += ret;
 	}
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	if (ssid->key_mgmt & WPA_KEY_MGMT_WAPI_PSK) {
-		ret = os_snprintf(pos, end - pos, "%sWAPI-PSK",
-				  pos == buf ? "" : " ");
-		if (ret < 0 || ret >= end - pos) {
-			end[-1] = '\0';
-			return buf;
-		}
-		pos += ret;
-	}
-	if (ssid->key_mgmt & WPA_KEY_MGMT_WAPI_CERT) {
-		ret = os_snprintf(pos, end - pos, "%sWAPI-CERT",
-				  pos == buf ? "" : " ");
-		if (ret < 0 || ret >= end - pos) {
-			end[-1] = '\0';
-			return buf;
-		}
-		pos += ret;
-	}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_IEEE80211R
 	if (ssid->key_mgmt & WPA_KEY_MGMT_FT_PSK) {
@@ -1031,13 +953,6 @@
 	}
 #endif /* CONFIG_WPS */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-	if (ssid->key_mgmt & WPA_KEY_MGMT_CCKM)
-		pos += os_snprintf(pos, end - pos, "%sCCKM",
-				   pos == buf ? "" : " ");
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_SAE
 	if (ssid->key_mgmt & WPA_KEY_MGMT_SAE) {
 		ret = os_snprintf(pos, end - pos, "%sSAE",
@@ -1221,12 +1136,7 @@
 	val = wpa_config_parse_cipher(line, value);
 	if (val == -1)
 		return -1;
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI)
-	if (val & ~(WPA_CIPHER_CCMP | WPA_CIPHER_GCMP | WPA_CIPHER_TKIP | 
-		    WPA_CIPHER_NONE | WPA_CIPHER_SMS4)) {
-#else
 	if (val & ~WPA_ALLOWED_PAIRWISE_CIPHERS) {
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI */
 		wpa_printf(MSG_ERROR, "Line %d: not allowed pairwise cipher "
 			   "(0x%x).", line, val);
 		return -1;
@@ -1257,10 +1167,6 @@
 	val = wpa_config_parse_cipher(line, value);
 	if (val == -1)
 		return -1;
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI)
-	if (val & ~(WPA_CIPHER_CCMP | WPA_CIPHER_GCMP | WPA_CIPHER_TKIP |
-		    WPA_CIPHER_WEP104 | WPA_CIPHER_WEP40 | WPA_CIPHER_SMS4)) {
-#else
 
 	/*
 	 * Backwards compatibility - filter out WEP ciphers that were previously
@@ -1269,7 +1175,6 @@
 	val &= ~(WPA_CIPHER_WEP104 | WPA_CIPHER_WEP40);
 
 	if (val & ~WPA_ALLOWED_GROUP_CIPHERS) {
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI */
 		wpa_printf(MSG_ERROR, "Line %d: not allowed group cipher "
 			   "(0x%x).", line, val);
 		return -1;
@@ -2484,16 +2389,6 @@
 	{ FUNC(auth_alg) },
 	{ FUNC(scan_freq) },
 	{ FUNC(freq_list) },
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	{ INT(wapi) },
-	{ INT(psk_key_type) },
-	{ INT(cert_index) },
-	{ STR(wapi_user_cert) },
-	{ STR(wapi_as_cert) },
-	{ STR(cert_name) },
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	{ INT_RANGE(ht, 0, 1) },
 	{ INT_RANGE(vht, 0, 1) },
 	{ INT_RANGE(ht40, -1, 1) },
@@ -2701,6 +2596,8 @@
 	{ INT_RANGE(beacon_prot, 0, 1) },
 	{ INT_RANGE(transition_disable, 0, 255) },
 	{ INT_RANGE(sae_pk, 0, 2) },
+	/* Refer commit ed56a660: Suppress deauth for PMKSA caching disabled */
+	{ INT_RANGE(suppress_deauth_no_pmksa, 0, 1) },
 };
 
 #undef OFFSET
@@ -2879,13 +2776,6 @@
 	os_free(ssid->scan_freq);
 	os_free(ssid->freq_list);
 	os_free(ssid->bgscan);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	os_free(ssid->cert_name);
-	os_free(ssid->wapi_user_cert);
-	os_free(ssid->wapi_as_cert);
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	os_free(ssid->p2p_client_list);
 	os_free(ssid->bssid_blacklist);
 	os_free(ssid->bssid_whitelist);
@@ -3028,14 +2918,9 @@
 #ifdef CONFIG_MBO
 	os_free(config->non_pref_chan);
 #endif /* CONFIG_MBO */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AGO_PASSPHRASE
 	os_free(config->ago_passphrase);
 #endif /* CONFIG_BRCM_AGO_PASSPHRASE */
-#else
-	os_free(config->dpp_name);
-	os_free(config->dpp_mud_url);
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	os_free(config);
 }
@@ -3176,11 +3061,6 @@
 	ssid->eap.fragment_size = DEFAULT_FRAGMENT_SIZE;
 	ssid->eap.sim_num = DEFAULT_USER_SELECTED_SIM;
 #endif /* IEEE8021X_EAPOL */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	ssid->wapi = 0;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_MESH
 	ssid->dot11MeshMaxRetries = DEFAULT_MESH_MAX_RETRIES;
 	ssid->dot11MeshRetryTimeout = DEFAULT_MESH_RETRY_TIMEOUT;
@@ -3263,25 +3143,6 @@
 			}
 			ret = -1;
 		}
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-		else {
-			wpa_printf(MSG_DEBUG, "parse(%s, %s) succeeded\n", var, value);
-			if (os_strcmp(var, "wapi_as_cert") == 0) {
-				wpa_printf(MSG_DEBUG, "%s: ssid->wapi_as_cert=%s\n",
-					   __FUNCTION__, ssid->wapi_as_cert);
-			}
-			if (os_strcmp(var, "wapi_user_cert") == 0) {
-				wpa_printf(MSG_DEBUG, "%s: ssid->wapi_user_cert=%s\n",
-					   __FUNCTION__, ssid->wapi_user_cert);
-			}
-			if (os_strcmp(var, "cert_name") == 0) {
-                                wpa_printf(MSG_DEBUG, "%s: ssid->cert_name=%s\n",
-                                           __FUNCTION__, ssid->cert_name);
-                        }
-		}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_SAE
 		if (os_strcmp(var, "ssid") == 0 ||
 		    os_strcmp(var, "psk") == 0 ||
@@ -4483,11 +4344,9 @@
 		DEFAULT_DISASSOC_IMMINENT_RSSI_THRESHOLD;
 	config->oce = DEFAULT_OCE_SUPPORT;
 #endif /* CONFIG_MBO */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 	/* TODO: Need to revisit if this change added accidentally */
 	os_free(config->dpp_name);
 	os_free(config->dpp_mud_url);
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	if (ctrl_interface)
 		config->ctrl_interface = os_strdup(ctrl_interface);
@@ -5191,12 +5050,10 @@
 	{ INT_RANGE(p2p_go_ctwindow, 0, 127), 0 },
 	{ INT(p2p_no_group_iface), 0 },
 	{ INT_RANGE(p2p_ignore_shared_freq, 0, 1), 0 },
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined CONFIG_BRCM_RSDB
 	{ INT(p2p_pref_freq_5g), CFG_CHANGED_P2P_FREQ_2G_5G},
 	{ INT(p2p_pref_freq_2g), CFG_CHANGED_P2P_FREQ_2G_5G},
 #endif /* CONFIG_BRCM_RSDB */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	{ IPV4(ip_addr_go), 0 },
 	{ IPV4(ip_addr_mask), 0 },
 	{ IPV4(ip_addr_start), 0 },
@@ -5257,23 +5114,19 @@
 	{ INT(mac_addr), 0 },
 	{ INT(rand_addr_lifetime), 0 },
 	{ INT(preassoc_mac_addr), 0 },
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AGO_PASSPHRASE
 	{ STR_RANGE(ago_passphrase, 8, 63), CFG_CHANGED_AGO_PASSPHRASE },
 #endif /* CONFIG_BRCM_AGO_PASSPHRASE */
 #ifdef BRCM_ROAM_OFFLOAD
 	   {INT(roam_offload), 0},
 #endif /* BRCM_ROAM_OFFLOAD */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	{ INT(key_mgmt_offload), 0},
 	{ INT(passive_scan), 0 },
 	{ INT(reassoc_same_bss_optim), 0 },
 	{ INT(wps_priority), 0},
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_RSN_CNTRS
 	{ INT_RANGE(replay_cntrs, 0, 3), 0},
 #endif /* CONFIG_BRCM_RSN_CNTRS */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_FST
 	{ STR_RANGE(fst_group_id, 1, FST_MAX_GROUP_ID_LEN), 0 },
 	{ INT_RANGE(fst_priority, 1, FST_MAX_PRIO_VALUE), 0 },
@@ -5300,20 +5153,16 @@
 	{ STR(dpp_mud_url), 0 },
 #endif /* CONFIG_DPP */
 	{ INT_RANGE(coloc_intf_reporting, 0, 1), 0 },
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_10
 	{ INT_RANGE(bss_no_flush_when_down, 0, 1), 0 },
 #endif /* ABOVE_10 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_WNM
 	{ INT_RANGE(disable_btm, 0, 1), CFG_CHANGED_DISABLE_BTM },
 	{ INT_RANGE(extended_key_id, 0, 1), 0 },
 #endif /* CONFIG_WNM */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_DRIVER_NL80211_BRCM
 	{INT(offload_4way_handshake), CFG_CHANGED_4WAY_HS},
 #endif /* CONFIG_DRIVER_NL80211_BRCM */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 };
 
 #undef FUNC
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/config.h b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/config.h
index be8266a..66eee98 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/config.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/config.h
@@ -46,11 +46,9 @@
 #define DEFAULT_OCE_SUPPORT OCE_STA
 #define DEFAULT_EXTENDED_KEY_ID 0
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 #define IS_5GHZ(n) (n > 4000)
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #include "config_ssid.h"
 #include "wps/wps.h"
 #include "common/ieee802_11_defs.h"
@@ -382,8 +380,7 @@
 #define CFG_CHANGED_WOWLAN_TRIGGERS BIT(18)
 #define CFG_CHANGED_DISABLE_BTM BIT(19)
 #define CFG_CHANGED_BGSCAN BIT(20)
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#if defined (CONFIG_BRCM_RSDB)
+#if defined(CONFIG_BRCM_RSDB)
 #define CFG_CHANGED_P2P_FREQ_2G_5G BIT(25)
 #endif /* CONFIG_BRCM_RSDB */
 #ifdef CONFIG_BRCM_AGO_PASSPHRASE
@@ -392,7 +389,6 @@
 #ifdef CONFIG_DRIVER_NL80211_BRCM
 #define CFG_CHANGED_4WAY_HS BIT(28)
 #endif /* CONFIG_DRIVER_NL80211_BRCM */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 /**
  * struct wpa_config - wpa_supplicant configuration data
@@ -798,7 +794,6 @@
 
 	int p2p_6ghz_disable;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined CONFIG_BRCM_RSDB
 	int p2p_pref_freq_5g;
 	int p2p_pref_freq_2g;
@@ -806,7 +801,6 @@
 #ifdef BRCM_ROAM_OFFLOAD
 	int roam_offload;
 #endif /* BRCM_ROAM_OFFLOAD */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	struct wpabuf *wps_vendor_ext_m1;
 
 #define MAX_WPS_VENDOR_EXT 10
@@ -1015,20 +1009,6 @@
 	 */
 	int hs20;
 
-	/**
-	 * pbc_in_m1 - AP mode WPS probing workaround for PBC with Windows 7
-	 *
-	 * Windows 7 uses incorrect way of figuring out AP's WPS capabilities
-	 * by acting as a Registrar and using M1 from the AP. The config
-	 * methods attribute in that message is supposed to indicate only the
-	 * configuration method supported by the AP in Enrollee role, i.e., to
-	 * add an external Registrar. For that case, PBC shall not be used and
-	 * as such, the PushButton config method is removed from M1 by default.
-	 * If pbc_in_m1=1 is included in the configuration file, the PushButton
-	 * config method is left in M1 (if included in config_methods
-	 * parameter) to allow Windows 7 to use PBC instead of PIN (e.g., from
-	 * a label in the AP).
-	 */
 	int pbc_in_m1;
 
 	/**
@@ -1334,11 +1314,9 @@
 	 * 2 = like 1, but maintain OUI (with local admin bit set)
 	 */
 	int preassoc_mac_addr;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AGO_PASSPHRASE
 	char *ago_passphrase;
 #endif /* CONFIG_BRCM_AGO_PASSPHRASE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	/**
 	 * key_mgmt_offload - Use key management offload
@@ -1383,11 +1361,9 @@
 	 * By default: 300 seconds.
 	 */
 	int mesh_max_inactivity;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_RSN_CNTRS
 	int replay_cntrs;
 #endif /* CONFIG_BRCM_RSN_CNTRS */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	/**
 	 * dot11RSNASAERetransPeriod - Timeout to retransmit SAE Auth frame
@@ -1524,14 +1500,12 @@
 	 */
 	int ftm_initiator;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
     /**
 	 * Offload the 4-Way handshake to the firmware
 	 */
 #ifdef CONFIG_DRIVER_NL80211_BRCM
 	int offload_4way_handshake;
 #endif /* CONFIG_DRIVER_NL80211_BRCM */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	/**
 	 * gas_rand_addr_lifetime - Lifetime of random MAC address for ANQP in
 	 *	seconds
@@ -1610,7 +1584,6 @@
 	 */
 	int p2p_interface_random_mac_addr;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_10
 	/**
 	 * bss_no_flush_when_down - Whether to flush BSS entries when the interface is disabled
@@ -1620,7 +1593,6 @@
 	 */
 	int bss_no_flush_when_down;
 #endif /* ABOVE_10 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	/**
 	 * disable_btm - Disable BSS transition management in STA
 	 * - Set to 0 to enable BSS transition management
@@ -1640,11 +1612,9 @@
 	 * 1 = use Extended Key ID when possible
 	 */
 	int extended_key_id;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 	int ignore_broadcast_ssid;
 #endif /* CONFIG_BRCM_AUTOMOTIVE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 };
 
 
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/config_file.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/config_file.c
index 02f39e7..47770da 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/config_file.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/config_file.c
@@ -9,11 +9,6 @@
  * configuration information is stored in a text file that uses a format
  * described in the sample configuration file, wpa_supplicant.conf.
  */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_FEATURES_COPYRIGHT
-/* Copyright (c) 2012-2013, Broadcom Corporation */
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #include "includes.h"
 #ifdef ANDROID
@@ -132,45 +127,6 @@
 static int wpa_config_validate_network(struct wpa_ssid *ssid, int line)
 {
 	int errors = 0;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	if ( ((ssid->proto & WPA_PROTO_WAPI) || (ssid->wapi != 0)) &&
-		 (ssid->key_mgmt != WPA_KEY_MGMT_WAPI_PSK) && (ssid->key_mgmt != WPA_KEY_MGMT_WAPI_CERT) ) {
-		/* map original IWNCOMM .conf structure to WPA Supplicant style */
-		if (ssid->wapi & 0x08) {
-			ssid->key_mgmt = WPA_KEY_MGMT_WAPI_CERT;
-		} else if (ssid->wapi & 0x04) {
-			ssid->key_mgmt = WPA_KEY_MGMT_WAPI_PSK;
-		} else {
-			wpa_printf(MSG_ERROR, "Line %d: unknown wapi policy %d\n", line, ssid->wapi);
-			errors++;
-		}
-		if (ssid->pairwise_cipher != WPA_CIPHER_SMS4) {
-			ssid->pairwise_cipher = WPA_CIPHER_SMS4;
-		}
-		if (ssid->group_cipher != WPA_CIPHER_SMS4) {
-			ssid->group_cipher = WPA_CIPHER_SMS4;
-		}
-	} else if ( ((ssid->key_mgmt == WPA_KEY_MGMT_WAPI_PSK) || (ssid->key_mgmt == WPA_KEY_MGMT_WAPI_CERT)) &&
-			    (((ssid->proto & WPA_PROTO_WAPI) == 0) || (ssid->wapi==0)) ) {
-		/* map WPA supplicant style to IWNCOMM .conf structure */
-		if (ssid->key_mgmt == WPA_KEY_MGMT_WAPI_PSK) {
-			ssid->proto = WPA_PROTO_WAPI;
-			ssid->wapi = 7;
-		}
-		if (ssid->key_mgmt == WPA_KEY_MGMT_WAPI_CERT) {
-			ssid->proto = WPA_PROTO_WAPI;
-			ssid->wapi = 11;
-		}
-		if (ssid->pairwise_cipher != WPA_CIPHER_SMS4) {
-			ssid->pairwise_cipher = WPA_CIPHER_SMS4;
-		}
-		if (ssid->group_cipher != WPA_CIPHER_SMS4) {
-			ssid->group_cipher = WPA_CIPHER_SMS4;
-		}
-	} else {
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	if (ssid->passphrase) {
 		if (ssid->psk_set) {
@@ -195,11 +151,6 @@
 		ssid->group_cipher &= ~WPA_CIPHER_CCMP;
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (ssid->mode == WPAS_MODE_MESH &&
 	    (ssid->key_mgmt != WPA_KEY_MGMT_NONE &&
 	    ssid->key_mgmt != WPA_KEY_MGMT_SAE)) {
@@ -825,22 +776,6 @@
 	write_proto(f, ssid);
 	write_key_mgmt(f, ssid);
 	INT_DEF(bg_scan_period, DEFAULT_BG_SCAN_PERIOD);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	INT(wapi);
-	if ( (ssid->wapi == 7) || (ssid->key_mgmt == WPA_KEY_MGMT_WAPI_PSK) ) {
-		/* WAPI PSK network */
-		INT(psk_key_type);
-	}
-	if ( (ssid->wapi == 11) || (ssid->key_mgmt == WPA_KEY_MGMT_WAPI_CERT) ) {
-		/* WAPI CERT network */
-		INT(cert_index);
-		STR(wapi_as_cert);
-		STR(wapi_user_cert);
-		STR(cert_name);
-	}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	write_pairwise(f, ssid);
 	write_group(f, ssid);
 	write_group_mgmt(f, ssid);
@@ -1005,6 +940,8 @@
 	INT(beacon_prot);
 	INT(transition_disable);
 	INT(sae_pk);
+	/* Refer commit ed56a660: Suppress deauth for PMKSA caching disabled */
+	INT(suppress_deauth_no_pmksa);
 #ifdef CONFIG_HT_OVERRIDES
 	INT_DEF(disable_ht, DEFAULT_DISABLE_HT);
 	INT_DEF(disable_ht40, DEFAULT_DISABLE_HT40);
@@ -1420,21 +1357,17 @@
 		fprintf(f, "ip_addr_end=%u.%u.%u.%u\n",
 			config->ip_addr_end[0], config->ip_addr_end[1],
 			config->ip_addr_end[2], config->ip_addr_end[3]);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#if defined (CONFIG_BRCM_RSDB)
+#if defined(CONFIG_BRCM_RSDB)
 	if (config->p2p_pref_freq_5g)
 		fprintf(f, "p2p_pref_freq_5g=%d\n", config->p2p_pref_freq_5g);
 	if (config->p2p_pref_freq_2g)
 		fprintf(f, "p2p_pref_freq_2g=%d\n", config->p2p_pref_freq_2g);
 #endif /* CONFIG_BRCM_RSDB */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* CONFIG_P2P */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#if defined (BRCM_ROAM_OFFLOAD)
+#if defined(BRCM_ROAM_OFFLOAD)
 	if (config->roam_offload)
 		fprintf(f, "roam_offload=%d\n", config->roam_offload);
 #endif /* BRCM_ROAM_OFFLOAD */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (config->country[0] && config->country[1]) {
 		fprintf(f, "country=%c%c\n",
 			config->country[0], config->country[1]);
@@ -1627,13 +1560,11 @@
 	if (config->wps_priority)
 		fprintf(f, "wps_priority=%d\n", config->wps_priority);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_RSN_CNTRS
 	if (config->replay_cntrs)
 		fprintf(f, "replay_cntrs=%d\n",
 			config->replay_cntrs);
 #endif /* CONFIG_BRCM_RSN_CNTRS */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (config->wpa_rsc_relaxation != DEFAULT_WPA_RSC_RELAXATION)
 		fprintf(f, "wpa_rsc_relaxation=%d\n",
 			config->wpa_rsc_relaxation);
@@ -1662,13 +1593,11 @@
 	if (config->ftm_initiator)
 		fprintf(f, "ftm_initiator=%d\n", config->ftm_initiator);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_DRIVER_NL80211_BRCM
 	if (config->offload_4way_handshake)
 		fprintf(f, "offload_4way_handshake=%d\n",
 			config->offload_4way_handshake);
 #endif /* CONFIG_DRIVER_NL80211_BRCM */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (config->osu_dir)
 		fprintf(f, "osu_dir=%s\n", config->osu_dir);
 
@@ -1704,13 +1633,11 @@
 	if (config->extended_key_id != DEFAULT_EXTENDED_KEY_ID)
 		fprintf(f, "extended_key_id=%d\n",
 			config->extended_key_id);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_10
 	if (config->bss_no_flush_when_down)
 		fprintf(f, "bss_no_flush_when_down=%d\n",
 			config->bss_no_flush_when_down);
 #endif /* ABOVE_10 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 #endif /* CONFIG_NO_CONFIG_WRITE */
@@ -1770,7 +1697,6 @@
 		if (wpa_key_mgmt_sae(ssid->key_mgmt) &&
 		    !ssid->passphrase && !ssid->sae_password)
 			continue; /* do not save invalid network */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_OKC
 #ifdef WL_SAE
 		if (ssid->key_mgmt == (WPA_KEY_MGMT_IEEE8021X | WPA_KEY_MGMT_IEEE8021X_NO_WPA |
@@ -1781,7 +1707,6 @@
 			ssid->proactive_key_caching = 1;
 		}
 #endif /* BRCM_OKC */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		fprintf(f, "\nnetwork={\n");
 		wpa_config_write_network(f, ssid);
 		fprintf(f, "}\n");
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/config_ssid.h b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/config_ssid.h
index 06a15a2..d7b13f7 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/config_ssid.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/config_ssid.h
@@ -9,11 +9,6 @@
 #ifndef CONFIG_SSID_H
 #define CONFIG_SSID_H
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-#include "utils/includes.h"
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #include "common/defs.h"
 #include "utils/list.h"
 #include "eap_peer/eap_config.h"
@@ -23,11 +18,7 @@
 #define DEFAULT_EAPOL_FLAGS (EAPOL_FLAG_REQUIRE_KEY_UNICAST | \
 			     EAPOL_FLAG_REQUIRE_KEY_BROADCAST)
 #define DEFAULT_PROTO (WPA_PROTO_WPA | WPA_PROTO_RSN)
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(BRCM_CCX)
-#define DEFAULT_KEY_MGMT (WPA_KEY_MGMT_PSK | WPA_KEY_MGMT_IEEE8021X | WPA_KEY_MGMT_CCKM)
-#else
 #define DEFAULT_KEY_MGMT (WPA_KEY_MGMT_PSK | WPA_KEY_MGMT_IEEE8021X)
-#endif /* CONFIG_DRIVER_NL80211_IFX && BRCM_CCX */
 #ifdef CONFIG_NO_TKIP
 #define DEFAULT_PAIRWISE (WPA_CIPHER_CCMP)
 #define DEFAULT_GROUP (WPA_CIPHER_CCMP)
@@ -388,17 +379,6 @@
 	 */
 	int non_leap;
 
-	/**
-	 * eap_workaround - EAP workarounds enabled
-	 *
-	 * wpa_supplicant supports number of "EAP workarounds" to work around
-	 * interoperability issues with incorrectly behaving authentication
-	 * servers. This is recommended to be enabled by default because some
-	 * of the issues are present in large number of authentication servers.
-	 *
-	 * Strict EAP conformance mode can be configured by disabling
-	 * workarounds with eap_workaround = 0.
-	 */
 	unsigned int eap_workaround;
 
 #endif /* IEEE8021X_EAPOL */
@@ -561,17 +541,6 @@
 	int vht;
 
 	int he;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	int wapi;
-	int psk_key_type;
-	int wapi_ie_len;
-	int cert_index;
-	char *wapi_user_cert;
-	char *wapi_as_cert;
-	char *cert_name;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	int max_oper_chwidth;
 
@@ -1090,17 +1059,6 @@
 	 */
 	int owe_only;
 
-	/**
-	 * owe_ptk_workaround - OWE PTK derivation workaround
-	 *
-	 * Initial OWE implementation used SHA256 when deriving the PTK for all
-	 * OWE groups. This was supposed to change to SHA384 for group 20 and
-	 * SHA512 for group 21. This parameter can be used to enable older
-	 * behavior mainly for testing purposes. There is no impact to group 19
-	 * behavior, but if enabled, this will make group 20 and 21 cases use
-	 * SHA256-based PTK derivation which will not work with the updated
-	 * OWE implementation on the AP side.
-	 */
 	int owe_ptk_workaround;
 
 	/**
@@ -1176,6 +1134,14 @@
 	 * configuration.
 	 */
 	bool was_recently_reconfigured;
+
+	/* Refer commit ed56a660: Suppress deauth for PMKSA caching disabled */
+	/**
+	 * suppress_deauth_no_pmksa - Whether deauth when PMKSA is empty
+	 * 0 = To deauthenticate if there is no PMKSA entry (default)
+	 * 1 = To suppress deauthenticate if there is no PMKSA entry
+	 */
+	int suppress_deauth_no_pmksa;
 };
 
 #endif /* CONFIG_SSID_H */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ctrl_iface.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ctrl_iface.c
index 609c624..ab58c79 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ctrl_iface.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ctrl_iface.c
@@ -5,11 +5,6 @@
  * This software may be distributed under the terms of the BSD license.
  * See README for more details.
  */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_FEATURES_COPYRIGHT
-/* Copyright (c) 2012-2013, Broadcom Corporation */
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #include "utils/includes.h"
 #ifdef CONFIG_TESTING_OPTIONS
@@ -38,14 +33,6 @@
 #include "wps/wps.h"
 #include "fst/fst.h"
 #include "fst/fst_ctrl_iface.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-#include "wapi/wapi_interface.h"
-#include "wapi_asue_i.h"
-#include "wapi_config.h"
-extern int wapi_state_to_wpa_state(int wapi_state);
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #include "config.h"
 #include "wpa_supplicant_i.h"
 #include "driver_i.h"
@@ -54,11 +41,9 @@
 #include "ap.h"
 #include "p2p_supplicant.h"
 #include "p2p/p2p.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 #include "p2p/p2p_i.h"
 #endif /* CONFIG_BRCM_AUTOMOTIVE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #include "hs20_supplicant.h"
 #include "wifi_display.h"
 #include "notify.h"
@@ -72,7 +57,9 @@
 #include "offchannel.h"
 #include "drivers/driver.h"
 #include "mesh.h"
+#ifdef CONFIG_DPP
 #include "dpp_supplicant.h"
+#endif /* CONFIG_DPP */
 #include "sme.h"
 
 #ifdef __NetBSD__
@@ -89,13 +76,11 @@
 static int * freq_range_to_channel_list(struct wpa_supplicant *wpa_s,
 					char *val);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 int wifi_interworking_ie_set(struct wpa_supplicant *wpa_s, char *cmd);
 int wpas_p2p_iface_reset(struct wpa_global *global, char *cmd);
 int p2p_parse_channel_width(char *cmd, int freq, int *ht40, int *vht);
 #endif /* CONFIG_BRCM_AUTOMOTIVE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static int set_bssid_filter(struct wpa_supplicant *wpa_s, char *val)
 {
@@ -868,13 +853,11 @@
 #endif /* CONFIG_NO_CONFIG_BLOBS */
 	} else if (os_strcasecmp(cmd, "setband") == 0) {
 		ret = wpas_ctrl_set_band(wpa_s, value);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 	} else if (os_strcasecmp(cmd, "HIDE_SSID") == 0) {
 		int enabled = !!atoi(value);
 		wpa_s->conf->ignore_broadcast_ssid = enabled;
 #endif /* CONFIG_BRCM_AUTOMOTIVE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_MBO
 	} else if (os_strcasecmp(cmd, "non_pref_chan") == 0) {
 		ret = wpas_mbo_update_non_pref_chan(wpa_s, value);
@@ -974,12 +957,10 @@
 #endif /* CONFIG_TESTING_GET_GTK */
 	} else if (os_strcmp(cmd, "tls_library") == 0) {
 		res = tls_get_library_version(buf, buflen);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 	} else if (os_strcasecmp(cmd, "HIDE_SSID") == 0) {
 		res = os_snprintf(buf, buflen, "%d", wpa_s->conf->ignore_broadcast_ssid);
 #endif /* CONFIG_BRCM_AUTOMOTIVE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_TESTING_OPTIONS
 	} else if (os_strcmp(cmd, "anonce") == 0) {
 		return wpa_snprintf_hex(buf, buflen,
@@ -1022,69 +1003,6 @@
 
 
 #ifdef CONFIG_TDLS
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#if defined(CONFIG_WIFI_DISPLAY) && defined(BRCM_DEBUG)
-int wifi_display_update_tdls_wfd_ie(struct wpa_supplicant *wpa_s, char *cmd)
-{
-	struct wpabuf *e, *buf, *wfd_ie;
-	size_t len = 0;
-	int ret, action_code;
-
-	action_code = atoi(cmd);
-	if (wpa_s->global->wfd_subelem[WFD_SUBELEM_DEVICE_INFO]) {
-			e = wpa_s->global->wfd_subelem[WFD_SUBELEM_DEVICE_INFO];
-	} else {
-		return -1;
-	}
-	if (e->buf[0] == WFD_SUBELEM_DEVICE_INFO) {
-		wpa_printf(MSG_DEBUG, "Device Info = 0x%04x", WPA_GET_BE16(&e->buf[3]));
-
-		if (0x80 != (WPA_GET_BE16(&e->buf[3]) & 0x80)) {
-			wpa_printf(MSG_DEBUG, "Can not set WFD info as TDLS "
-									" preferred connectivity BIT not set");
-			return -1;
-		} else {
-			if (wpa_s->global->wfd_subelem[WFD_SUBELEM_DEVICE_INFO])
-				len += wpabuf_len(wpa_s->global->wfd_subelem[
-							  WFD_SUBELEM_DEVICE_INFO]);
-			if (wpa_s->global->wfd_subelem[WFD_SUBELEM_ASSOCIATED_BSSID])
-				len += wpabuf_len(wpa_s->global->wfd_subelem[
-							  WFD_SUBELEM_ASSOCIATED_BSSID]);
-			if (wpa_s->global->wfd_subelem[WFD_SUBELEM_LOCAL_IP_ADDRESS])
-				len += wpabuf_len(wpa_s->global->wfd_subelem[
-							  WFD_SUBELEM_LOCAL_IP_ADDRESS]);
-
-			/*TDLS WFD IE data*/
-			buf = wpabuf_alloc(len);
-			if (buf == NULL)
-				return -1;
-
-			if (wpa_s->global->wfd_subelem[WFD_SUBELEM_DEVICE_INFO])
-				wpabuf_put_buf(buf,
-						   wpa_s->global->wfd_subelem[WFD_SUBELEM_DEVICE_INFO]);
-			if (wpa_s->global->wfd_subelem[WFD_SUBELEM_ASSOCIATED_BSSID])
-				wpabuf_put_buf(buf,
-							wpa_s->global->wfd_subelem[WFD_SUBELEM_ASSOCIATED_BSSID]);
-			if (wpa_s->global->wfd_subelem[WFD_SUBELEM_LOCAL_IP_ADDRESS])
-				wpabuf_put_buf(buf,
-						   wpa_s->global->wfd_subelem[WFD_SUBELEM_LOCAL_IP_ADDRESS]);
-
-			/* Add wfd ie header */
-			wfd_ie = wifi_display_encaps(buf);
-			/* added arg for initiator. kept 0 for now. Need to check */
-			ret = wpa_drv_send_tdls_mgmt(wpa_s, broadcast_ether_addr, action_code,
-								1, 0, 0, 0, wpabuf_head(wfd_ie), wpabuf_len(wfd_ie));
-			if (ret)
-				wpa_printf(MSG_ERROR, "Failed to set TDLS Wfd IE");
-
-			wpabuf_free(buf);
-			wpabuf_free(wfd_ie);
-		}
-	}
-	return 0;
-}
-#endif /* CONFIG_WIFI_DISPLAY && BRCM_DEBUG */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static int wpa_supplicant_ctrl_iface_tdls_discover(
 	struct wpa_supplicant *wpa_s, char *addr)
@@ -2267,37 +2185,6 @@
 #endif /* IEEE8021X_EAPOL */
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-static const char * wapi_key_mgmt_txt(int key_mgmt)
-{
-	switch (key_mgmt) {
-	case WPA_KEY_MGMT_WAPI_PSK:
-		return "WAPI-PSK";
-	case WPA_KEY_MGMT_WAPI_CERT:
-		return "WAPI-CERT";
-	default:
-		return "UNKNOWN";
-	}
-}
-
-static int wapi_get_cipher_key_mgmt(unsigned int key_mgmt, char *buf, size_t buflen, int verbose)
-{
-	char *pos = buf, *end = buf + buflen;
-	int ret;
-
-	ret = os_snprintf(pos, end - pos,
-			  "pairwise_cipher=SMS4\n"
-			  "group_cipher=SMS4\n"
-			  "key_mgmt=%s\n",
-			  wapi_key_mgmt_txt(key_mgmt));
-	if (ret < 0 || ret >= end - pos)
-		return pos - buf;
-	pos += ret;
-	return pos - buf;
-}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static int wpa_supplicant_ctrl_iface_status(struct wpa_supplicant *wpa_s,
 					    const char *params,
@@ -2414,14 +2301,6 @@
 				return pos - buf;
 			pos += ret;
 		}
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        if (ssid && ssid->wapi) {
-            wpa_printf(MSG_DEBUG, "%s , wapi_get_cipher_key_mgmt", __FUNCTION__);
-            pos += wapi_get_cipher_key_mgmt(ssid->key_mgmt, pos, end - pos, verbose);
-        } else
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_AP
 		if (wpa_s->ap_iface) {
@@ -2611,12 +2490,21 @@
 	}
 #endif /* CONFIG_WPS */
 
+#ifdef CONFIG_IEEE80211AX
+	if (wpa_s->ieee80211ax) {
+		ret = os_snprintf(pos, end - pos, "ieee80211ax=1\n");
+		if (os_snprintf_error(end - pos, ret))
+			return pos - buf;
+		pos += ret;
+	}
+#else
 	if (wpa_s->ieee80211ac) {
 		ret = os_snprintf(pos, end - pos, "ieee80211ac=1\n");
 		if (os_snprintf_error(end - pos, ret))
 			return pos - buf;
 		pos += ret;
 	}
+#endif /*CONFIG_IEEE80211AX*/
 
 #ifdef ANDROID
 	/*
@@ -2735,7 +2623,6 @@
 	return 3;
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_BT_WIFI_HO
 int wpa_supplicant_ho_connect(
 		struct wpa_supplicant *wpa_s, int chan,
@@ -2831,7 +2718,6 @@
 	return wpa_supplicant_ho_connect(wpa_s, chan, ssid_len, ssid, pph_len, pph);
 }
 #endif /* CONFIG_BRCM_BT_WIFI_HO */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static int wpa_supplicant_ctrl_iface_log_level(struct wpa_supplicant *wpa_s,
 					       char *cmd, char *buf,
@@ -3048,17 +2934,6 @@
 			return pos;
 		pos += ret;
 	}
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-	if (data.key_mgmt & WPA_KEY_MGMT_CCKM) {
-		ret = os_snprintf(pos, end - pos, "%sCCKM",
-				  pos == start ? "" : "+");
-		if (os_snprintf_error(end - pos, ret))
-			return pos;
-		pos += ret;
-	}
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_SUITEB
 	if (data.key_mgmt & WPA_KEY_MGMT_IEEE8021X_SUITE_B) {
@@ -3209,11 +3084,6 @@
 	char *pos, *end;
 	int ret;
 	const u8 *ie, *ie2, *osen_ie, *p2p, *mesh, *owe, *rsnxe;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	const u8 *ie3;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	mesh = wpa_bss_get_ie(bss, WLAN_EID_MESH_ID);
 	p2p = wpa_bss_get_vendor_ie(bss, P2P_IE_VENDOR_TYPE);
@@ -3267,36 +3137,8 @@
 			return -1;
 		pos += ret;
 	}
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	ie3 = wpa_bss_get_ie(bss, WLAN_EID_WAPI);
-	if (ie3)
-	{
-		wpa_printf(MSG_DEBUG, "wapi_ie: [%02x][%02x][%02x][%02x][%02x][%02x][%02x][%02x][%02x][%02x]\n",
-			   ie3[0], ie3[1], ie3[2], ie3[3], ie3[4],
-			   ie3[5], ie3[6], ie3[7], ie3[8], ie3[9] );
-		if (ie3[9] == 2) {
-			wpa_printf(MSG_DEBUG, "This is a WAPI PSK network");
-			ret = os_snprintf(pos, end - pos, "[WAPI-PSK]");
-		} else if (ie3[9] == 1) {
-			wpa_printf(MSG_DEBUG, "This is a WAPI CERT network");
-			ret = os_snprintf(pos, end - pos, "[WAPI-CERT]");
-		} else {
-			wpa_printf(MSG_ERROR, "Unknown WAPI network type");
-			ret = os_snprintf(pos, end - pos, "[WAPI-Unknown]");
-		}
-		if (ret < 0 || ret >= end - pos)
-			return -1;
-		pos += ret;
-	}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	pos = wpa_supplicant_wps_ie_txt(wpa_s, pos, end, bss);
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI)
-	if (!ie && !ie2 && !ie3 && !osen_ie && bss->caps & IEEE80211_CAP_PRIVACY) {
-#else
 	if (!ie && !ie2 && !osen_ie && (bss->caps & IEEE80211_CAP_PRIVACY)) {
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI */
 		ret = os_snprintf(pos, end - pos, "[WEP]");
 		if (os_snprintf_error(end - pos, ret))
 			return -1;
@@ -3360,16 +3202,6 @@
 			return -1;
 		pos += ret;
 	}
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        if (!ie && !ie2 && !ie3) {
-                ret = os_snprintf(pos, end - pos, "\t");
-                if (ret < 0 || ret >= end - pos)
-                        return pos - buf;
-                pos += ret;
-        }
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_HS20
 	if (wpa_bss_get_vendor_ie(bss, HS20_IE_VENDOR_TYPE) && ie2) {
 		ret = os_snprintf(pos, end - pos, "[HS20]");
@@ -3746,7 +3578,6 @@
 	return 0;
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_BT_WIFI_HO
 int p2p_gc_connect(struct wpa_supplicant *wpa_s, int chan,
        int ssid_len, char *ssid, int pph_len, char *pph, u8 *bssid)
@@ -3845,7 +3676,6 @@
 	return p2p_gc_connect(wpa_s, chan, ssid_len, ssid, pph_len, pph, bssid);
 }
 #endif /* CONFIG_BRCM_BT_WIFI_HO */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static int wpa_supplicant_ctrl_iface_add_network(
 	struct wpa_supplicant *wpa_s, char *buf, size_t buflen)
@@ -3875,16 +3705,6 @@
 	/* cmd: "<network id>" or "all" */
 	if (os_strcmp(cmd, "all") == 0) {
 		wpa_printf(MSG_DEBUG, "CTRL_IFACE: REMOVE_NETWORK all");
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-                if (wpa_s->key_mgmt == WPA_KEY_MGMT_WAPI_PSK) {
-			wpa_s->key_mgmt = 0;
-                        wapiap_lib_deinitialize(wpa_s->ifname);
-		} else
-                        wpa_printf(MSG_ERROR, "CTRL_IFACE: wapi key_mgmt mismatch %s %d\n",
-                                wpa_s->ifname, wpa_s->key_mgmt);
-#endif /* WAPI_AP */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		return wpa_supplicant_remove_all_networks(wpa_s);
 	}
 
@@ -3904,7 +3724,6 @@
 	}
 	return 0;
 }
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(CONFIG_BRCM_AUTOMOTIVE) && defined(CONFIG_P2P)
 static int wpa_supplicant_random_channel_selection(struct wpa_supplicant *wpa_s, int *val)
 {
@@ -3961,7 +3780,6 @@
         return 0;
 }
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 
 static int wpa_supplicant_ctrl_iface_update_network(
@@ -3969,13 +3787,11 @@
 	char *name, char *value)
 {
 	int ret;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 	int val;
 	char *end;
 	u8 cw;
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	ret = wpa_config_set(ssid, name, value, 0);
 	if (ret < 0) {
@@ -3983,7 +3799,6 @@
 			   "variable '%s'", name);
 		return -1;
 	}
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(CONFIG_BRCM_AUTOMOTIVE)
 	if (os_strcmp(name, "frequency") == 0) {
 		val = strtol(value, &end, 0);
@@ -3991,16 +3806,6 @@
 			/* Comment out the Random channel selection code to do
 			 * Acs with those values
 			 */
-#if 0
-#if defined(CONFIG_P2P)
-			if (wpa_supplicant_random_channel_selection(wpa_s, &val) == -1) {
-				wpa_printf(MSG_ERROR,
-					"Function %s: random channel selection failure\n",
-					__FUNCTION__);
-				return -1;
-			}
-#endif /* CONFIG_P2P */
-#endif
 			cw = atoi(end + 1);
 			if (cw == 40 && val == 5) {
 				ssid->ht40 = 1;
@@ -4049,10 +3854,6 @@
 		wpa_config_set_frequency(ssid, val);
 	}
 #endif /* CONFIG_BRCM_AUTOMOTIVE */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-	if (ret == 1)
-		return 0; /* No change to the previously configured value */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_BGSCAN
 	if (os_strcmp(name, "bgscan") == 0) {
@@ -4579,23 +4380,6 @@
 		}
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-	if (capa->key_mgmt & WPA_DRIVER_CAPA_KEY_MGMT_WPA_CCKM) {
-		ret = os_snprintf(pos, end - pos, " WPA-CCKM");
-		if (os_snprintf_error(end - pos, ret))
-			return pos - buf;
-		pos += ret;
-	}
-
-	if (capa->key_mgmt & WPA_DRIVER_CAPA_KEY_MGMT_WPA2_CCKM) {
-		ret = os_snprintf(pos, end - pos, " WPA2-CCKM");
-		if (ret < 0 || ret >= end - pos)
-			return pos - buf;
-		pos += ret;
-	}
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	return pos - buf;
 }
 
@@ -4943,11 +4727,6 @@
 	}
 
 	if (capa->key_mgmt & (WPA_DRIVER_CAPA_KEY_MGMT_WPA2 |
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-			      WPA_DRIVER_CAPA_KEY_MGMT_WPA2_CCKM |
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 			      WPA_DRIVER_CAPA_KEY_MGMT_WPA2_PSK)) {
 		ret = os_snprintf(pos, end - pos, "%sRSN",
 				  pos == buf ? "" : " ");
@@ -4957,11 +4736,6 @@
 	}
 
 	if (capa->key_mgmt & (WPA_DRIVER_CAPA_KEY_MGMT_WPA |
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-			      WPA_DRIVER_CAPA_KEY_MGMT_WPA_CCKM |
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 			      WPA_DRIVER_CAPA_KEY_MGMT_WPA_PSK)) {
 		ret = os_snprintf(pos, end - pos, "%sWPA",
 				  pos == buf ? "" : " ");
@@ -5048,23 +4822,6 @@
 	}
 #endif /* CONFIG_FILS_SK_PFS */
 #endif /* CONFIG_FILS */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-	if (capa->key_mgmt & WPA_DRIVER_CAPA_KEY_MGMT_WPA_CCKM) {
-		ret = os_snprintf(pos, end - pos, " WPA-CCKM");
-		if (os_snprintf_error(end - pos, ret))
-			return pos - buf;
-		pos += ret;
-	}
-
-	if (capa->key_mgmt & WPA_DRIVER_CAPA_KEY_MGMT_WPA2_CCKM) {
-		ret = os_snprintf(pos, end - pos, " WPA2-CCKM");
-		if (os_snprintf_error(end - pos, ret))
-			return pos - buf;
-		pos += ret;
-	}
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	return pos - buf;
 }
@@ -5512,11 +5269,6 @@
 	int ret;
 	char *pos, *end;
 	const u8 *ie, *ie2, *osen_ie, *mesh, *owe, *rsnxe;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        const u8 *ie3;
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	pos = buf;
 	end = buf + buflen;
@@ -5665,32 +5417,7 @@
 			pos += ret;
 		}
 		pos = wpa_supplicant_wps_ie_txt(wpa_s, pos, end, bss);
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI)
-                ie3 = wpa_bss_get_ie(bss, WLAN_EID_WAPI);
-                if (ie3)
-                {
-                        wpa_printf(MSG_DEBUG, "wapi_ie: [%02x][%02x][%02x][%02x][%02x][%02x][%02x][%02x][%02x][%02x]\n",
-                                   ie3[0], ie3[1], ie3[2], ie3[3], ie3[4],
-                                   ie3[5], ie3[6], ie3[7], ie3[8], ie3[9] );
-                        if (ie3[9] == 2) {
-                                wpa_printf(MSG_DEBUG, "This is a WAPI PSK network");
-                                ret = os_snprintf(pos, end - pos, "[WAPI-PSK]");
-                        } else if (ie3[9] == 1) {
-                                wpa_printf(MSG_DEBUG, "This is a WAPI CERT network");
-                                ret = os_snprintf(pos, end - pos, "[WAPI-CERT]");
-                        } else {
-                                wpa_printf(MSG_ERROR, "Unknown WAPI network type");
-                                ret = os_snprintf(pos, end - pos, "[WAPI-Unknown]");
-                        }
-
-                        if (os_snprintf_error(end - pos, ret))
-                                return 0;
-                        pos += ret;
-                }
-                if (!ie && !ie2 && !ie3 && !osen_ie &&
-#else
 		if (!ie && !ie2 && !osen_ie &&
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI */
 		    (bss->caps & IEEE80211_CAP_PRIVACY)) {
 			ret = os_snprintf(pos, end - pos, "[WEP]");
 			if (os_snprintf_error(end - pos, ret))
@@ -6253,7 +5980,6 @@
 #endif /* CONFIG_NO_SCAN_PROCESSING */
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_NAN
 int nan_ctrl_create_p2p_ie(struct wpa_supplicant *wpa_s, char *cmd, int len)
 {
@@ -6283,7 +6009,6 @@
 	return 0;
 }
 #endif /* CONFIG_BRCM_NAN */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_P2P
 static int p2p_ctrl_find(struct wpa_supplicant *wpa_s, char *cmd)
@@ -6673,13 +6398,11 @@
 	if (pos2) {
 		pos2 += 6;
 		freq = atoi(pos2);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 		int res = p2p_parse_channel_width(pos, freq, &ht40, &vht);
 		if (res)
 			return -1;
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		if (freq <= 0)
 			return -1;
 	}
@@ -6772,7 +6495,6 @@
 	return wpas_p2p_listen(wpa_s, timeout);
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_BT_WIFI_HO
 static int p2p_ctrl_group_add_ho(struct wpa_supplicant *wpa_s, char *cmd)
 {
@@ -6823,7 +6545,6 @@
 	return wpas_p2p_group_add_ho(wpa_s, chan, ssid_len, ssid, passphrase_len, passphrase, macaddr);
 }
 #endif /* CONFIG_BRCM_BT_WIFI_HO */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static int p2p_ctrl_prov_disc(struct wpa_supplicant *wpa_s, char *cmd)
 {
@@ -7380,7 +7101,6 @@
 			return -1;
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 	/* Fix for persistent GC connection to GO */
 	vht = (os_strstr(cmd, " vht") != NULL) || wpa_s->conf->p2p_go_vht ||
@@ -7392,11 +7112,6 @@
 	ht40 = (os_strstr(cmd, " ht40") != NULL) || wpa_s->conf->p2p_go_ht40 ||
 		vht;
 #endif /* CONFIG_BRCM_AUTOMOTIVE  */
-#else
-	vht = (os_strstr(cmd, " vht") != NULL) || wpa_s->conf->p2p_go_vht;
-	ht40 = (os_strstr(cmd, " ht40") != NULL) || wpa_s->conf->p2p_go_ht40 ||
-		vht;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	he = (os_strstr(cmd, " he") != NULL) || wpa_s->conf->p2p_go_he;
 	edmg = (os_strstr(cmd, " edmg") != NULL) || wpa_s->conf->p2p_go_edmg;
 
@@ -7495,7 +7210,6 @@
 #endif /* CONFIG_ACS */
 
 	while ((token = str_token(cmd, " ", &context))) {
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CY_AUTO_SET_BW
 		/*Adding support for channel width configuration while creating AGO or AP */
 		if ((sscanf(token, "freq=%d", &freq) == 1) ||
@@ -7505,12 +7219,7 @@
 		if (sscanf(token, "freq2=%d", &freq2) == 1 ||
 		    sscanf(token, "persistent=%d", &group_id) == 1 ||
 #endif /* CONFIG_CY_AUTO_SET_BW */
-#else
-		if (sscanf(token, "freq2=%d", &freq2) == 1 ||
-		    sscanf(token, "persistent=%d", &group_id) == 1 ||
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		    sscanf(token, "max_oper_chwidth=%d", &chwidth) == 1) {
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 			if (freq) {
 				int res = p2p_parse_channel_width(token, freq, &ht40, &vht);
@@ -7518,7 +7227,6 @@
                                         return -1;
 			}
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 			continue;
 #ifdef CONFIG_ACS
 		} else if (os_strcmp(token, "freq=acs") == 0) {
@@ -7794,7 +7502,6 @@
 	}
 
 	if (os_strcmp(cmd, "ssid_postfix") == 0) {
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 		char *string = NULL;
 
@@ -7812,7 +7519,6 @@
 		else
 			p2p_set_ignore_random_ssid(wpa_s->global->p2p, 0);
 #endif /* CONFIG_BRCM_AUTOMOTIVE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		return p2p_set_ssid_postfix(wpa_s->global->p2p, (u8 *) param,
 					    os_strlen(param));
 	}
@@ -7822,24 +7528,6 @@
 		int count, start, duration;
 		/* GO NoA parameters: count,start_offset(ms),duration(ms) */
 		count = atoi(param);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_DEBUG
-		if (os_strcmp(param, "clear") == 0) {
-			/*
-			 * XXX: Set 'clear' as zero to avoid NoA setting and 'start'
-			 * and 'duration' as non zero value to avoid bad argument error
-			 * in firmware.
-			 */ 
-			count = 0;
-			start = 1;
-			duration = 1;
-			wpa_printf(MSG_DEBUG, "CTRL_IFACE: P2P_SET GO NoA CLEAR: "
-			   "count=%d start=%d duration=%d", count, start, duration);
-			return wpas_p2p_set_noa(wpa_s, count, start, duration);
-		}
-		else {
-#endif /* BRCM_DEBUG */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		pos = os_strchr(param, ',');
 		if (pos == NULL)
 			return -1;
@@ -7850,11 +7538,6 @@
 			return -1;
 		pos++;
 		duration = atoi(pos);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_DEBUG
-		}
-#endif /* BRCM_DEBUG */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		if (count < 0 || count > 255 || start < 0 || duration < 0)
 			return -1;
 		if (count == 0 && duration > 0)
@@ -8988,7 +8671,6 @@
 }
 
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(ANDROID) || defined(BCM_LINUX_BUILD)
 static int wpa_supplicant_driver_cmd(struct wpa_supplicant *wpa_s, char *cmd,
 				     char *buf, size_t buflen)
@@ -9022,7 +8704,7 @@
 				p2p_set_country(p2p, country);
 			}
 		}
-#if defined (CONFIG_BRCM_AUTOMOTIVE) && defined (CONFIG_BRCM_BANDSTEER)
+#if defined(CONFIG_BRCM_AUTOMOTIVE) && defined(CONFIG_BRCM_BANDSTEER)
                 else if (os_strncasecmp(cmd, "BANDSTEER", 9) == 0) {
                         char buf[30];
                         char *token, *context = NULL;
@@ -9081,33 +8763,6 @@
 }
 #endif
 #endif /* ANDROID || BCM_LINUX_BUILD */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-#ifdef ANDROID
-static int wpa_supplicant_driver_cmd(struct wpa_supplicant *wpa_s, char *cmd,
-				     char *buf, size_t buflen)
-{
-	int ret;
-
-	ret = wpa_drv_driver_cmd(wpa_s, cmd, buf, buflen);
-	if (ret == 0) {
-		if (os_strncasecmp(cmd, "COUNTRY", 7) == 0) {
-			struct p2p_data *p2p = wpa_s->global->p2p;
-			if (p2p) {
-				char country[3];
-				country[0] = cmd[8];
-				country[1] = cmd[9];
-				country[2] = 0x04;
-				p2p_set_country(p2p, country);
-			}
-		}
-		ret = os_snprintf(buf, buflen, "%s\n", "OK");
-		if (os_snprintf_error(buflen, ret))
-			ret = -1;
-	}
-	return ret;
-}
-#endif /* ANDROID */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 
 static int wpa_supplicant_vendor_cmd(struct wpa_supplicant *wpa_s, char *cmd,
@@ -9177,7 +8832,6 @@
 	return ret;
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(CONFIG_BRCM_AUTOMOTIVE) && defined(CONFIG_P2P)
 int wifi_interworking_ie_set(struct wpa_supplicant *wpa_s, char *cmd)
 {
@@ -9393,8 +9047,6 @@
 	return 0;
 }
 #endif /* CONFIG_BRCM_AUTOMOTIVE && CONFIG_P2P */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 int wpas_get_ssid(struct wpa_supplicant *wpa_s, char *buf, size_t buflen)
 {
@@ -9454,7 +9106,6 @@
 	return buflen;
 }
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static void wpa_supplicant_ctrl_iface_flush(struct wpa_supplicant *wpa_s)
 {
@@ -9841,7 +9492,6 @@
 	return -1;
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_VIF
 static int wpa_supplicant_iface_create(struct wpa_supplicant *wpa_s, char *cmd)
 {
@@ -9871,7 +9521,6 @@
 	return wpa_drv_if_remove(wpa_s->parent ? wpa_s->parent : wpa_s, WPA_IF_STATION, ifname);
 }
 #endif /* CONFIG_BRCM_VIF */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 void wpas_ctrl_radio_work_flush(struct wpa_supplicant *wpa_s)
 {
@@ -11895,7 +11544,6 @@
 	} else if (os_strncmp(buf, "P2P_GROUP_ADD ", 14) == 0) {
 		if (p2p_ctrl_group_add(wpa_s, buf + 14))
 			reply_len = -1;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_BT_WIFI_HO
 	} else if (os_strncmp(buf, "P2P_GROUP_ADDHO ", 16) == 0) {
 		if (p2p_ctrl_group_add_ho(wpa_s, buf + 16))
@@ -11907,7 +11555,6 @@
 	if (wpa_supplicant_ctrl_iface_connect(wpa_s, buf + 8))
 			reply_len = -1;
 #endif /* CONFIG_BRCM_BT_WIFI_HO */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	} else if (os_strncmp(buf, "P2P_GROUP_MEMBER ", 17) == 0) {
 		reply_len = p2p_ctrl_group_member(wpa_s, buf + 17, reply,
 						  reply_size);
@@ -11926,11 +11573,7 @@
 		if (p2p_ctrl_serv_disc_resp(wpa_s, buf + 19) < 0)
 			reply_len = -1;
 	} else if (os_strcmp(buf, "P2P_SERVICE_UPDATE") == 0) {
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_BRCM_SD_DYNAMIC_CAPA)
-		wpas_p2p_sd_service_update(wpa_s, SRV_UPDATE);
-#else
 		wpas_p2p_sd_service_update(wpa_s);
-#endif /* CONFIG_DRIVER_NL80211_IFX && CONFIG_BRCM_SD_DYNAMIC_CAPA */
 	} else if (os_strncmp(buf, "P2P_SERV_DISC_EXTERNAL ", 23) == 0) {
 		if (p2p_ctrl_serv_disc_external(wpa_s, buf + 23) < 0)
 			reply_len = -1;
@@ -11986,14 +11629,12 @@
 	} else if (os_strcmp(buf, "P2P_LO_STOP") == 0) {
 		if (wpas_p2p_lo_stop(wpa_s))
 			reply_len = -1;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 	} else if (os_strncmp(buf, "P2P_IFACE_RESET", 15) == 0) {
 		if (wpas_p2p_iface_reset(wpa_s->global, buf + 15) < 0) {
 			reply_len = -1;
 		}
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* CONFIG_P2P */
 #ifdef CONFIG_WIFI_DISPLAY
 	} else if (os_strncmp(buf, "WFD_SUBELEM_SET ", 16) == 0) {
@@ -12002,15 +11643,7 @@
 	} else if (os_strncmp(buf, "WFD_SUBELEM_GET ", 16) == 0) {
 		reply_len = wifi_display_subelem_get(wpa_s->global, buf + 16,
 						     reply, reply_size);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#if defined(CONFIG_TDLS) && defined(BRCM_DEBUG)
-	} else if (os_strncmp(buf, "WFD_SET_TDLS_IE ", 16) == 0) {
-		if (wifi_display_update_tdls_wfd_ie(wpa_s, buf + 16) < 0)
-			reply_len = -1;
-#endif /* CONFIG_TDLS && BRCM_DEBUG */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* CONFIG_WIFI_DISPLAY */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 	} else if (os_strncmp(buf, "GET_PSK", 7) == 0) {
 		if ((reply_len = wpas_get_psk(wpa_s, reply, reply_size)) < 0) {
@@ -12025,7 +11658,6 @@
 			reply_len = -1;
 		}
 #endif /* CONFIG_BRCM_AUTOMOTIVE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_INTERWORKING
 	} else if (os_strcmp(buf, "FETCH_ANQP") == 0) {
 		if (interworking_fetch_anqp(wpa_s) < 0)
@@ -12292,19 +11924,11 @@
 	} else if (os_strcmp(buf, "DRIVER_FLAGS2") == 0) {
 		reply_len = wpas_ctrl_iface_driver_flags2(wpa_s, reply,
 							  reply_size);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(ANDROID) || defined(BCM_LINUX_BUILD)
 	} else if (os_strncmp(buf, "DRIVER ", 7) == 0) {
 		reply_len = wpa_supplicant_driver_cmd(wpa_s, buf + 7, reply,
 				      		      reply_size);
 #endif /* ANDROID || BCM_LINUX_BUILD */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-#ifdef ANDROID
-	} else if (os_strncmp(buf, "DRIVER ", 7) == 0) {
-		reply_len = wpa_supplicant_driver_cmd(wpa_s, buf + 7, reply,
-						      reply_size);
-#endif /* ANDROID */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	} else if (os_strncmp(buf, "VENDOR ", 7) == 0) {
 		reply_len = wpa_supplicant_vendor_cmd(wpa_s, buf + 7, reply,
 						      reply_size);
@@ -12408,7 +12032,6 @@
 	} else if (os_strcmp(buf, "FILS_HLP_REQ_FLUSH") == 0) {
 		wpas_flush_fils_hlp_req(wpa_s);
 #endif /* CONFIG_FILS */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_VIF
 	} else if (os_strncmp(buf, "INTERFACE_CREATE ", 17) == 0) {
 		if (wpa_supplicant_iface_create(wpa_s, buf + 17) < 0)
@@ -12417,7 +12040,6 @@
 		if (wpa_supplicant_iface_del(wpa_s, buf + 14) < 0)
 			reply_len = -1;
 #endif /* CONFIG_BRCM_VIF */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_DPP
 	} else if (os_strncmp(buf, "DPP_QR_CODE ", 12) == 0) {
 		int res;
@@ -12866,13 +12488,11 @@
 		"P2P_STOP_FIND",
 		"P2P_LISTEN",
 		"P2P_GROUP_ADD",
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_BT_WIFI_HO
 		"P2P_GROUP_ADDHO",
 		"P2P_GROUP_ADDHO ",
 		"P2P_GC_CONNECT ",
 #endif /* CONFIG_BRCM_BT_WIFI_HO */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		"P2P_GET_PASSPHRASE",
 		"P2P_SERVICE_UPDATE",
 		"P2P_SERVICE_FLUSH",
@@ -12880,11 +12500,9 @@
 		"P2P_CANCEL",
 		"P2P_PRESENCE_REQ",
 		"P2P_EXT_LISTEN",
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 		"P2P_IFACE_RESET",
 #endif /* CONFIG_BRCM_AUTOMOTIVE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_AP
 		"STA-FIRST",
 #endif /* CONFIG_AP */
@@ -12962,7 +12580,6 @@
 #ifdef CONFIG_WIFI_DISPLAY
 	if (global->p2p_init_wpa_s == NULL)
 		return NULL;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 	if (os_strncmp(buf, "WFD_SUBELEM_SET ", 16) == 0 ||
 	    os_strncmp(buf, "WFD_SUBELEM_GET ", 16) == 0
 #ifdef CONFIG_BRCM_AUTOMOTIVE
@@ -12972,10 +12589,6 @@
 			|| os_strncmp(buf, "GET_PSK", 7) == 0
 			|| os_strncmp(buf, "GET_SSID", 8) == 0)
 #endif
-#else /* CONFIG_DRIVER_NL80211_IFX */
-	if (os_strncmp(buf, "WFD_SUBELEM_SET ", 16) == 0 ||
-	    os_strncmp(buf, "WFD_SUBELEM_GET ", 16) == 0)
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		return wpa_supplicant_ctrl_iface_process(global->p2p_init_wpa_s,
 							 buf, resp_len);
 #endif /* CONFIG_WIFI_DISPLAY */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ctrl_iface.h b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ctrl_iface.h
index 86b918d..510668d 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ctrl_iface.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ctrl_iface.h
@@ -11,12 +11,6 @@
 
 #ifdef CONFIG_CTRL_IFACE
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-void wapiap_lib_deinitialize(char *ifname);
-void brcm_wapiap_initialize(void *ctx, int wapiap_tx_sock, struct i802_bss *bss);
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifndef CTRL_IFACE_MAX_LEN
 #define CTRL_IFACE_MAX_LEN 8192
 #endif /* CTRL_IFACE_MAX_LEN */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ctrl_iface_unix.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ctrl_iface_unix.c
index 0406c7b..953fd2c 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ctrl_iface_unix.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/ctrl_iface_unix.c
@@ -178,32 +178,6 @@
 		else
 			reply_len = 2;
 	} else {
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_DEBUG
-		char *ifname, *ifend;
-
-		ifname = os_strstr(buf, "interface=");
-		if (ifname != NULL) {
-			ifend = os_strchr(ifname + 10, ' ');
-			if (ifend != NULL)
-				*ifend++ = '\0';
-			else
-				*(ifname - 1) = '\0';
-			wpa_printf(MSG_DEBUG, "Found %s", ifname);
-			for (wpa_s = wpa_s->global->ifaces; wpa_s; wpa_s = wpa_s->next) {
-				if (os_strcmp(wpa_s->ifname, ifname + 10) == 0)
-					break;
-			}
-			if (wpa_s == NULL) {
-				wpa_printf(MSG_ERROR, "P2P: %s does not exist", ifname);
-				wpa_s = eloop_ctx;
-			}
-			if (ifend != NULL)
-				os_memmove(ifname, ifend, strlen(ifend) + 1);
-			wpa_printf(MSG_INFO, "wpa_s->ifname %s cmd %s", wpa_s ? wpa_s->ifname : "NULL", buf);
-		}
-#endif /* BRCM_DEBUG */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		reply_buf = wpa_supplicant_ctrl_iface_process(wpa_s, buf,
 							      &reply_len);
 		reply = reply_buf;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/defconfig_auto b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/defconfig_auto
index cd47a7a..a119600 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/defconfig_auto
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/defconfig_auto
@@ -485,6 +485,12 @@
 # (depends on CONFIG_IEEE80211N)
 CONFIG_IEEE80211AC=y
 
+# IEEE 802.11ax HE support (mainly for AP mode)
+# Note: This is experimental and work in progress. The definitions are still
+# subject to change and this should not be expected to interoperate with the
+# final IEEE 802.11ax version.
+CONFIG_IEEE80211AX=y
+
 # Wireless Network Management (IEEE Std 802.11v-2011)
 # Note: This is experimental and not complete implementation.
 #CONFIG_WNM=y
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/dpp_supplicant.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/dpp_supplicant.c
index 3e1c009..148cb65 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/dpp_supplicant.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/dpp_supplicant.c
@@ -27,11 +27,9 @@
 #include "scan.h"
 #include "notify.h"
 #include "dpp_supplicant.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 #include "hidl.h"
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 
 static int wpas_dpp_listen_start(struct wpa_supplicant *wpa_s,
@@ -558,11 +556,9 @@
 		wpa_printf(MSG_INFO,
 			   "DPP: No response received from responder - stopping initiation attempt");
 		wpa_msg(wpa_s, MSG_INFO, DPP_EVENT_AUTH_INIT_FAILED);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if !(defined(OREO) || defined(PIE))
 		wpas_notify_dpp_timeout(wpa_s);
 #endif /* !(OREO || PIE) */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		offchannel_send_action_done(wpa_s);
 		wpas_dpp_listen_stop(wpa_s);
 		dpp_auth_deinit(auth);
@@ -657,11 +653,9 @@
 			wpa_printf(MSG_INFO,
 				   "DPP: No response received from responder - stopping initiation attempt");
 			wpa_msg(wpa_s, MSG_INFO, DPP_EVENT_AUTH_INIT_FAILED);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if !(defined(OREO) || defined(PIE))
 			wpas_notify_dpp_timeout(wpa_s);
 #endif /* !(OREO || PIE) */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 			eloop_cancel_timeout(wpas_dpp_reply_wait_timeout,
 					     wpa_s, NULL);
 			offchannel_send_action_done(wpa_s);
@@ -1372,11 +1366,9 @@
 		return -1;
 
 	wpa_msg(wpa_s, MSG_INFO, DPP_EVENT_NETWORK_ID "%d", ssid->id);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if !(defined(OREO) || defined(PIE))
 	wpas_notify_dpp_config_received(wpa_s, ssid);
 #endif /* !(OREO || PIE) */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (wpa_s->conf->dpp_config_processing == 2)
 		ssid->disabled = 0;
 
@@ -1654,16 +1646,12 @@
 #endif /* CONFIG_TESTING_OPTIONS */
 fail:
 	if (status != DPP_STATUS_OK)
-#ifdef CONFIG_DRIVER_NL80211_IFX
 	{
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		wpa_msg(wpa_s, MSG_INFO, DPP_EVENT_CONF_FAILED);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if !(defined(OREO) || defined(PIE))
 		wpas_notify_dpp_configuration_failure(wpa_s);
 #endif /* !(OREO || PIE) */
 	}
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_DPP2
 	if (auth->peer_version >= 2 &&
 	    auth->conf_resp_status == DPP_STATUS_OK) {
@@ -1741,11 +1729,9 @@
 {
 	wpa_printf(MSG_DEBUG, "DPP: Authentication succeeded");
 	wpa_msg(wpa_s, MSG_INFO, DPP_EVENT_AUTH_SUCCESS "init=%d", initiator);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if !(defined(OREO) || defined(PIE))
 	wpas_notify_dpp_auth_success(wpa_s);
 #endif /* !(OREO || PIE) */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_TESTING_OPTIONS
 	if (dpp_test == DPP_TEST_STOP_AT_AUTH_CONF) {
 		wpa_printf(MSG_INFO,
@@ -1802,11 +1788,9 @@
 		if (auth->auth_resp_status == DPP_STATUS_RESPONSE_PENDING) {
 			wpa_printf(MSG_DEBUG,
 				   "DPP: Start wait for full response");
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if !(defined(OREO) || defined(PIE))
 			wpas_notify_dpp_resp_pending(wpa_s);
 #endif /* !(OREO || PIE) */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 			offchannel_send_action_done(wpa_s);
 			wpas_dpp_listen_start(wpa_s, auth->curr_freq);
 			return;
@@ -1849,11 +1833,9 @@
 
 	if (dpp_auth_conf_rx(auth, hdr, buf, len) < 0) {
 		wpa_printf(MSG_DEBUG, "DPP: Authentication failed");
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if !(defined(OREO) || defined(PIE))
 		wpas_notify_dpp_auth_failure(wpa_s);
 #endif /* !(OREO || PIE) */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		return;
 	}
 
@@ -2956,16 +2938,12 @@
 #endif /* CONFIG_DPP2 */
 
 	if (!resp)
-#ifdef CONFIG_DRIVER_NL80211_IFX
 	{
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		wpa_msg(wpa_s, MSG_INFO, DPP_EVENT_CONF_FAILED);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if !(defined(OREO) || defined(PIE))
 		wpas_notify_dpp_configuration_failure(wpa_s);
 #endif /* !(OREO || PIE) */
 	}
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	auth->conf_resp = resp;
 	return resp;
 }
@@ -3018,7 +2996,6 @@
 #endif /* CONFIG_DPP2 */
 	offchannel_send_action_done(wpa_s);
 	wpas_dpp_listen_stop(wpa_s);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 	if (ok) {
 		wpa_msg(wpa_s, MSG_INFO, DPP_EVENT_CONF_SENT);
 #if !(defined(OREO) || defined(PIE))
@@ -3030,12 +3007,6 @@
 		wpas_notify_dpp_configuration_failure(wpa_s);
 #endif /* !(OREO || PIE) */
 	}
-#else /* CONFIG_DRIVER_NL80211_IFX */
-	if (ok)
-		wpa_msg(wpa_s, MSG_INFO, DPP_EVENT_CONF_SENT);
-	else
-		wpa_msg(wpa_s, MSG_INFO, DPP_EVENT_CONF_FAILED);
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	dpp_auth_deinit(wpa_s->dpp_auth);
 	wpa_s->dpp_auth = NULL;
 	wpabuf_free(resp);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/driver_i.h b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/driver_i.h
index c7a2752..e60bada 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/driver_i.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/driver_i.h
@@ -599,7 +599,6 @@
 	return wpa_s->driver->tdls_oper(wpa_s->drv_priv, oper, peer);
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(ANDROID) || defined(BCM_LINUX_BUILD)
 static inline int wpa_drv_driver_cmd(struct wpa_supplicant *wpa_s,
 				     char *cmd, char *buf, size_t buf_len)
@@ -612,17 +611,6 @@
 	return wpa_s->driver->driver_cmd(wpa_s->drv_priv, cmd, buf, buf_len);
 }
 #endif /* ANDROID || BCM_LINUX_BUILD */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-#ifdef ANDROID
-static inline int wpa_drv_driver_cmd(struct wpa_supplicant *wpa_s,
-				     char *cmd, char *buf, size_t buf_len)
-{
-	if (!wpa_s->driver->driver_cmd)
-		return -1;
-	return wpa_s->driver->driver_cmd(wpa_s->drv_priv, cmd, buf, buf_len);
-}
-#endif /* ANDROID */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static inline void wpa_drv_set_rekey_info(struct wpa_supplicant *wpa_s,
 					  const u8 *kek, size_t kek_len,
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/eapol_test.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/eapol_test.c
index f01407e..9f69736 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/eapol_test.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/eapol_test.c
@@ -1449,11 +1449,7 @@
 		return -1;
 	}
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI)
-	if (eloop_init(&wpa_s)) {
-#else
 	if (eloop_init()) {
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI */
 		wpa_printf(MSG_ERROR, "Failed to initialize event loop");
 		return -1;
 	}
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/events.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/events.c
index 77a44c7..0738fd9 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/events.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/events.c
@@ -5,11 +5,7 @@
  * This software may be distributed under the terms of the BSD license.
  * See README for more details.
  */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CONTRIBUTE_COPYRIGHT
 /* Copyright (c) 2012-2013, Broadcom Corporation */
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #include "includes.h"
 
@@ -49,28 +45,18 @@
 #include "bss.h"
 #include "scan.h"
 #include "offchannel.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-#include "wapi/wapi_interface.h"
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #include "interworking.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-#include "wpa_cckm.h"
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #include "mesh.h"
 #include "mesh_mpm.h"
 #include "wmm_ac.h"
+#ifdef CONFIG_DPP
 #include "dpp_supplicant.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
+#endif /* CONFIG_DPP */
 #ifdef BRCM_DHCP_HLP
 #include <net/if.h>
 #include <sys/ioctl.h>
 #include "rsn_supp/wpa_i.h"
 #endif /* BRCM_DHCP_HLP */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 
 #define MAX_OWE_TRANSITION_BSS_SELECT_COUNT 5
@@ -354,12 +340,7 @@
 	wpa_s->ap_ies_from_associnfo = 0;
 	wpa_s->current_ssid = NULL;
 	eapol_sm_notify_config(wpa_s->eapol, NULL, NULL);
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI_AP)
-	if (wpa_s->key_mgmt != WPA_KEY_MGMT_WAPI_PSK)
-		wpa_s->key_mgmt = 0;
-#else
 	wpa_s->key_mgmt = 0;
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI_AP */
 
 	wpas_rrm_reset(wpa_s);
 	wpa_s->wnmsleep_used = 0;
@@ -391,7 +372,6 @@
 		return;
 
 	for (i = 0; i < ie.num_pmkid; i++) {
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_OKC
 		if (wpa_s->current_ssid &&
 		    wpa_s->current_ssid->proactive_key_caching == 1) {
@@ -405,7 +385,6 @@
 		}
 		else
 #endif /* BRCM_OKC */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		pmksa_set = pmksa_cache_set_current(wpa_s->wpa,
 						    ie.pmkid + i * PMKID_LEN,
 						    NULL, NULL, 0, NULL, 0);
@@ -598,12 +577,6 @@
 	struct wpa_ie_data ie;
 	int proto_match = 0;
 	const u8 *rsn_ie, *wpa_ie;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	const u8 *wapi_ie;
-	u8 wapi_ie_len;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	int ret;
 #ifdef CONFIG_WEP
 	int wep_ok;
@@ -612,43 +585,6 @@
 	ret = wpas_wps_ssid_bss_match(wpa_s, ssid, bss);
 	if (ret >= 0)
 		return ret;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	wapi_ie = wpa_bss_get_ie(bss, WLAN_EID_WAPI);
-	if(wapi_ie)
-		wpa_printf(MSG_DEBUG, "%s : get wapi_ie\n",__func__);
-	else
-		wpa_printf(MSG_DEBUG, "%s : wapi is null\n",__func__);
-	while ((ssid->proto & WPA_PROTO_WAPI) && wapi_ie)
-	{
-		proto_match++;
-
-		wapi_ie_len = wapi_ie ? wapi_ie[1] + 2: 0;
-		bss->wapi_ie_len = wapi_ie_len;
-		ssid->wapi_ie_len = wapi_ie_len;
-
-		wpa_printf(MSG_DEBUG, "ssid->wapi=%x, ssid->key_mgmt=%x "
-				      "bss->wapi_ie_len=%d \n"
-				,ssid->wapi, ssid->key_mgmt, (int)bss->wapi_ie_len);
-		wpa_printf(MSG_DEBUG, "wapi_ie:[%02x][%02x][%02x][%02x][%02x][%02x][%02x][%02x][%02x][%02x]\n",
-			   wapi_ie[0], wapi_ie[1], wapi_ie[2], wapi_ie[3], wapi_ie[4],
-			   wapi_ie[5], wapi_ie[6], wapi_ie[7], wapi_ie[8], wapi_ie[9] );
-
-		if ( ((ssid->wapi & 0x04) || (ssid->key_mgmt & WPA_KEY_MGMT_WAPI_PSK)) && (wapi_ie[9] == 2) ) {
-		/* 0x400 ---- 10000000000 */
-			wpa_printf(MSG_DEBUG, "WAPI PSK network is selected based on WAPI IE");
-			return 1;
-		}
-		/* 0x800 ---- 100000000000*/
-		if ( ((ssid->wapi & 0x08)  || (ssid->key_mgmt & WPA_KEY_MGMT_WAPI_CERT)) && (wapi_ie[9] == 1) ) {
-			wpa_printf(MSG_DEBUG, "WAPI CERT network is selected based on WAPI IE");
-			return 1;
-		}
-
-		break;
-	}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_WEP
 	/* Allow TSN if local configuration accepts WEP use without WPA/WPA2 */
@@ -839,13 +775,8 @@
 	}
 #endif /* CONFIG_OWE */
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI)
-	if ((ssid->proto & (WPA_PROTO_WPA | WPA_PROTO_RSN | WPA_PROTO_WAPI)) &&
-	    wpa_key_mgmt_wpa(ssid->key_mgmt) && proto_match == 0) {
-#else
 	if ((ssid->proto & (WPA_PROTO_WPA | WPA_PROTO_RSN)) &&
 	    wpa_key_mgmt_wpa(ssid->key_mgmt) && proto_match == 0) {
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI */
 		if (debug_print)
 			wpa_dbg(wpa_s, MSG_DEBUG,
 				"   skip - no WPA/RSN proto match");
@@ -1150,7 +1081,7 @@
 #endif /* CONFIG_OWE */
 }
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_ANDROID12)
+#if defined(CONFIG_ANDROID12)
 int disabled_freq(struct wpa_supplicant *wpa_s, int freq)
 #else
 static int disabled_freq(struct wpa_supplicant *wpa_s, int freq)
@@ -1693,124 +1624,6 @@
 		wpa_dbg(wpa_s, MSG_DEBUG, "Selecting BSS from priority group %d",
 			group->priority);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	struct wpa_scan_res *selected = NULL;
-	wpa_printf(MSG_DEBUG, " * %s",__func__);
-	struct wpa_ssid *ssid;
-	const u8 *ssid_, *ie;
-	u8 ssid_len, wapi_ie_len;
-	struct wpa_blacklist *e;
-	struct wpa_bss wpa_bss;
-	/* check scan_res */
-
-	if(wpa_s->wapi_scan_res) {
-	/* First, try to find WAPI-enabled AP */
-		wpa_printf(MSG_DEBUG, " * Try to find WAPI-enabled AP");
-		for (i = 0; i < wpa_s->wapi_scan_res->num && !selected; i++) {
-			struct wpa_scan_res *bss = wpa_s->wapi_scan_res->res[i];
-
-			/*
-				wpa_scan_res *bss -> use wpa_scan_get_ie func.
-			*/
-			ie = wpa_scan_get_ie(bss, WLAN_EID_SSID);
-			ssid_ = ie ? ie + 2 : (u8 *) "";
-			ssid_len = ie ? ie[1] : 0;
-
-			const u8 *wapi_ie = wpa_scan_get_ie(bss, WLAN_EID_WAPI);
-			wapi_ie_len = wapi_ie ? wapi_ie[1] + 2: 0;
-			wpa_printf(MSG_DEBUG, "%d: " MACSTR " ssid='%s' wapi_ie_len=%lu caps=0x%x",
-			   	i, MAC2STR(bss->bssid),
-			   	wpa_ssid_txt(ssid_, ssid_len),
-			   	(unsigned long) bss->wapi_ie_len, bss->caps);
-
-			e = wpa_blacklist_get(wpa_s, bss->bssid);
-			if (e && e->count > 1) {
-				wpa_printf(MSG_DEBUG, "   skip - blacklisted");
-				continue;
-			}
-
-
-			if (wapi_ie_len == 0) {
-				wpa_printf(MSG_DEBUG, " * skip - no WAPI IE");
-				continue;
-			}
-			else {
-				wpa_printf(MSG_DEBUG, " * get Wapi via WAPI_IE, wapi_ie_len = %d wapi_ie_len = %d\n",(int)bss->wapi_ie_len, wapi_ie_len);
-			}
-
-			for (ssid = group; ssid; ssid = ssid->pnext) {
-				wpa_printf(MSG_DEBUG, " * Enter for loop\n");
-				if (ssid->disabled) {
-					wpa_printf(MSG_DEBUG, "   skip - disabled");
-					continue;
-				}
-
-#ifdef CONFIG_BRCM_AUTOMOTIVE
-                                if (ssid->bssid_set && ssid->ssid_len == 0 &&
-                                        os_memcmp(bss->bssid, ssid->bssid, ETH_ALEN) != 0) {
-                                        wpa_printf(MSG_DEBUG, "   skip - "
-                                           "BSSID mismatch");
-                                        continue;
-                                }
-
-                                if ((ssid_len != ssid->ssid_len ||
-                                os_memcmp(ssid_, ssid->ssid, ssid_len) != 0)) {
-                                        wpa_printf(MSG_DEBUG, "   skip - "
-                                           "SSID mismatch");
-                                        continue;
-                                }
-#else
-				if (ssid_len != ssid->ssid_len ||
-			    	os_memcmp(ssid_, ssid->ssid, ssid_len) != 0) {
-					wpa_printf(MSG_DEBUG, "   skip - "
-					   "SSID mismatch");
-					continue;
-				}
-#endif /* CONFIG_BRCM_AUTOMOTIVE */
-				if (ssid->bssid_set &&
-			    	os_memcmp(bss->bssid, ssid->bssid, ETH_ALEN) != 0) {
-					wpa_printf(MSG_DEBUG, "   skip - "
-					   "BSSID mismatch");
-					continue;
-				}
-				/* transfer to wpa_bss */
-				os_memset(&wpa_bss,0,sizeof(wpa_bss));
-				wpa_bss.flags = bss->flags;
-				wpa_bss.freq = bss->freq;
-				wpa_bss.beacon_int = bss->beacon_int;
-				wpa_bss.caps = bss->caps;
-				wpa_bss.qual = bss->qual;
-				wpa_bss.noise = bss->noise;
-				wpa_bss.level = bss->level;
-				wpa_bss.tsf = bss->tsf;
-				wpa_bss.ie_len = bss->ie_len;
-				wpa_bss.beacon_ie_len = bss->beacon_ie_len;
-				wpa_bss.wapi_ie_len = bss->wapi_ie_len;
-				os_memcpy(&wpa_bss.bssid,bss->bssid,ETH_ALEN);
-				int debug_print = 0;
-				if (wpa_supplicant_ssid_bss_match(wpa_s, ssid, &wpa_bss, debug_print)) {
-					selected = bss;
-					*selected_ssid = ssid;
-					wpa_printf(MSG_DEBUG, "   selected WAPI AP "
-					   MACSTR " ssid='%s'", MAC2STR(bss->bssid), wpa_ssid_txt(ssid_, ssid_len));
-					break;
-				}
-			}
-		}
-		if (selected) {
-			struct wpa_scan_res *bss = selected;
-			const u8 *ie, *ssid;
-			u8 ssid_len;
-			ie = wpa_scan_get_ie(bss, WLAN_EID_SSID);
-			ssid = ie ? ie + 2 : (u8 *) "";
-			ssid_len = ie ? ie[1] : 0;
-			wpa_printf(MSG_DEBUG, "   selected BSS " MACSTR " ssid='%s'", MAC2STR(bss->bssid), wpa_ssid_txt(ssid, ssid_len));
-			return wpa_bss_get(wpa_s, bss->bssid, ssid, ssid_len);
-		}
-	}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	for (i = 0; i < wpa_s->last_scan_res_used; i++) {
 		struct wpa_bss *bss = wpa_s->last_scan_res[i];
 
@@ -2308,38 +2121,19 @@
 		ret = -1;
 		goto scan_work_done;
 	}
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	if (wpa_s->wapi_scan_res) {
-		wpa_scan_results_free(wpa_s->wapi_scan_res);
-	}
-	wpa_s->wapi_scan_res = wpa_supplicant_get_scan_results(wpa_s,
-                                                   data ? &data->scan_info :
-                                                   NULL, 1);
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifndef CONFIG_NO_RANDOM_POOL
 	num = scan_res->num;
 	if (num > 10)
 		num = 10;
 	for (i = 0; i < num; i++) {
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI)
-		u8 buf[6];
-#else
 		u8 buf[5];
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI */
 		struct wpa_scan_res *res = scan_res->res[i];
 		buf[0] = res->bssid[5];
 		buf[1] = res->qual & 0xff;
 		buf[2] = res->noise & 0xff;
 		buf[3] = res->level & 0xff;
 		buf[4] = res->tsf & 0xff;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-		buf[5] = res->wapi_ie_len & 0xff;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		random_add_randomness(buf, sizeof(buf));
 	}
 #endif /* CONFIG_NO_RANDOM_POOL */
@@ -2910,11 +2704,6 @@
 	const u8 *p;
 	u8 bssid[ETH_ALEN];
 	bool bssid_known;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_DRV_ROAM
-	struct wpa_ie_data ie;
-#endif /* BRCM_DRV_ROAM */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	wpa_dbg(wpa_s, MSG_DEBUG, "Association info event");
 	bssid_known = wpa_drv_get_bssid(wpa_s, bssid) == 0;
@@ -2963,12 +2752,10 @@
 					   data->assoc_info.resp_ies_len,
 					   &resp_elems, 0) != ParseFailed) {
 			wpa_s->connection_set = 1;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_ANDROID12
 			wpa_s->connection_11b_only = supp_rates_11b_only(&req_elems) ||
 		                supp_rates_11b_only(&resp_elems);
 #endif /*CONFIG_ANDROID12 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 			wpa_s->connection_ht = req_elems.ht_capabilities &&
 				resp_elems.ht_capabilities;
 			/* Do not include subset of VHT on 2.4 GHz vendor
@@ -2981,6 +2768,12 @@
 				 BAND_2_4_GHZ);
 			wpa_s->connection_he = req_elems.he_capabilities &&
 				resp_elems.he_capabilities;
+			#ifdef CONFIG_IEEE80211AX
+			if(wpa_s->connection_he) {
+                                wpa_s->ieee80211ax = 1;
+                                wpa_printf(MSG_DEBUG, "HE connection");
+                        }
+			#endif /*CONFIG_IEEE80211AX*/
 		}
 	}
 
@@ -3003,7 +2796,6 @@
 		     (p[0] == WLAN_EID_RSN && p[1] >= 2))) {
 			if (wpa_sm_set_assoc_wpa_ie(wpa_s->wpa, p, len))
 				break;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef WL_SAE
 			if (!(wpa_s->drv_flags & WPA_DRIVER_FLAGS_SME) &&
 			    (wpa_s->drv_flags & WPA_DRIVER_FLAGS_SAE)) {
@@ -3066,7 +2858,6 @@
 				}
 			}
 #endif /* WL_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 			found = 1;
 			wpa_find_assoc_pmkid(wpa_s);
 		}
@@ -3083,72 +2874,6 @@
 	if (!found_x && data->assoc_info.req_ies)
 		wpa_sm_set_assoc_rsnxe(wpa_s->wpa, NULL, 0);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_DRV_ROAM
-	/* The WPA/RSN IE has been updated at this point. Since the Firmware could have roamed
-	 * to a different security type, update the current supplicant configuration to use the AKM
-	 * and pairwise suites from the assoc IE passed by the driver.
-	 */
-	if (wpas_driver_bss_selection(wpa_s)) {
-		if (!(wpa_sm_parse_own_wpa_ie(wpa_s->wpa, &ie) < 0)) {
-			struct wpa_ft_ies parse;
-
-			/* Check for FT reassociation is done by the driver */
-#ifdef CONFIG_IEEE80211R
-			if (wpa_key_mgmt_ft(wpa_s->key_mgmt) && (wpa_s->key_mgmt == ie.key_mgmt)) {
-				if (wpa_ft_parse_ies(data->assoc_info.resp_ies,
-									 data->assoc_info.resp_ies_len, &parse) < 0) {
-					wpa_printf(MSG_DEBUG, "Failed to parse FT IEs");
-					return -1;
-				}
-				if (parse.rsn_pmkid != NULL) {
-					wpa_drv_get_bssid(wpa_s, bssid);
-					os_memcpy(wpa_s->bssid, bssid, ETH_ALEN);
-					wpa_s->assoc_freq = data->assoc_info.freq;
-					wpa_dbg(wpa_s, MSG_DEBUG, "Assume FT reassoc completed by the driver");
-					return -1;
-				}
-			}
-#endif  /* CONFIG_IEEE80211R */
-			/* Check if firmware has roamed to a different security network */
-			if(wpa_s->key_mgmt != ie.key_mgmt) {
-				wpa_dbg(wpa_s, MSG_DEBUG, "Update to AKM suite 0x%x from Assoc IE",
-					ie.key_mgmt);
-				wpa_s->key_mgmt = ie.key_mgmt;
-				wpa_sm_set_param(wpa_s->wpa, WPA_PARAM_KEY_MGMT, wpa_s->key_mgmt);
-
-				if (wpa_key_mgmt_wpa_psk(wpa_s->key_mgmt)) {
-					/* Restore PMK as it can get overwritten if the previous
-					 * association was to 802.1X.
-					 */
-					if ((!(wpa_s->drv_flags & WPA_DRIVER_FLAGS_4WAY_HANDSHAKE)) &&
-						(wpa_s->current_ssid) &&
-						(wpa_s->current_ssid->psk_set)) {
-						wpa_sm_set_pmk(wpa_s->wpa, wpa_s->current_ssid->psk, PMK_LEN, NULL,wpa_s->bssid);
-					}
-#ifdef BRCM_VE
-					/* In case the driver wants to handle re-assocs, pass it down the PMK. */
-					wpa_dbg(wpa_s, MSG_DEBUG, "Pass the PMK to the driver");
-					wpa_sm_install_pmk(wpa_s->wpa);
-#endif /* BRCM_VE */
-				}
-				/* Reconfigure EAPOL state machine if firmware has roamed to 802.1X and supplicant
-				 * is configured for non-802.1X authentication mode.
-				 */
-				if (wpa_key_mgmt_wpa_ieee8021x(wpa_s->key_mgmt)) {
-					wpa_dbg(wpa_s, MSG_DEBUG, "Reset EAPOL state machine");
-					wpa_supplicant_initiate_eapol(wpa_s);
-				}
-			}
-			if(wpa_s->pairwise_cipher != ie.pairwise_cipher) {
-				wpa_dbg(wpa_s, MSG_DEBUG, "Update to pairwise cipher suite 0x%x from Assoc IE",
-					ie.pairwise_cipher);
-				wpa_s->pairwise_cipher = ie.pairwise_cipher;
-				wpa_sm_set_param(wpa_s->wpa, WPA_PARAM_PAIRWISE, wpa_s->pairwise_cipher);
-			}
-		}
-	}
-#endif /* BRCM_DRV_ROAM */
 #ifdef CONFIG_OWE
 	if (wpa_s->key_mgmt == WPA_KEY_MGMT_OWE &&
 	    (!bssid_known ||
@@ -3159,15 +2884,12 @@
 		return -1;
 	}
 #endif /* CONFIG_OWE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_FILS
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_DHCP_HLP
 	wpa_dbg(wpa_s, MSG_DEBUG, "FILS: process HLP container. resp_frame %p", data->assoc_info.resp_frame);
 	/* FILS HLP Container */
 	fils_process_hlp_container(wpa_s->wpa, data->assoc_info.resp_ies, data->assoc_info.resp_ies_len);
 #endif /* BRCM_DHCP_HLP */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_SME
 	if ((wpa_s->sme.auth_alg == WPA_AUTH_ALG_FILS ||
 	     wpa_s->sme.auth_alg == WPA_AUTH_ALG_FILS_SK_PFS) &&
@@ -3186,18 +2908,6 @@
 		wpa_sm_set_reset_fils_completed(wpa_s->wpa, 1);
 #endif /* CONFIG_FILS */
 
-#ifndef CONFIG_DRIVER_NL80211_IFX
-#ifdef CONFIG_OWE
-	if (wpa_s->key_mgmt == WPA_KEY_MGMT_OWE &&
-	    (!bssid_known ||
-	     owe_process_assoc_resp(wpa_s->wpa, bssid,
-				    data->assoc_info.resp_ies,
-				    data->assoc_info.resp_ies_len) < 0)) {
-		wpa_supplicant_deauthenticate(wpa_s, WLAN_REASON_UNSPECIFIED);
-		return -1;
-	}
-#endif /* CONFIG_OWE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_DPP2
 	wpa_sm_set_dpp_z(wpa_s->wpa, NULL);
@@ -3391,14 +3101,12 @@
 	return 0;
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_ROAM_OFFLOAD
 #define IS_OKC_ROAM_OFFLOAD()   (try_okc && (wpa_s->drv_flags & WPA_DRIVER_FLAGS_4WAY_HANDSHAKE) && \
 									wpa_key_mgmt_wpa_ieee8021x(wpa_s->key_mgmt))
 #else
 #define IS_OKC_ROAM_OFFLOAD()   0
 #endif /* BRCM_ROAM_OFFLOAD */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static void wpas_fst_update_mb_assoc(struct wpa_supplicant *wpa_s,
 				     union wpa_event_data *data)
@@ -3448,7 +3156,6 @@
 #if defined(CONFIG_FILS) || defined(CONFIG_MBO)
 	struct wpa_bss *bss;
 #endif /* CONFIG_FILS || CONFIG_MBO */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_ROAM_OFFLOAD
 	int try_okc = 0;
 
@@ -3460,17 +3167,11 @@
 				wpa_s->drv_flags&WPA_DRIVER_FLAGS_4WAY_HANDSHAKE? 1:0);
 	}
 #endif /* BRCM_ROAM_OFFLOAD */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_AP
 	if (wpa_s->ap_iface) {
 		if (!data)
 			return;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-                os_memcpy(wpa_s->ap_iface->bss[0]->ifname, wpa_s->ifname, os_strlen(wpa_s->ifname));
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		hostapd_notif_assoc(wpa_s->ap_iface->bss[0],
 				    data->assoc_info.addr,
 				    data->assoc_info.req_ies,
@@ -3483,53 +3184,7 @@
 	eloop_cancel_timeout(wpas_network_reenabled, wpa_s, NULL);
 	wpa_s->own_reconnect_req = 0;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	MAC_ADDRESS bssid_s;
-	MAC_ADDRESS own_s;
-
-	ft_completed = 0;
-
-	if ( (wpa_s->current_ssid) && (wpa_s->current_ssid->wapi) ) {
-		wpa_printf(MSG_DEBUG,"[WAPI] %s: associated to a wapi network.\n", __FUNCTION__);
-		if (wpa_drv_get_bssid(wpa_s, bssid) >= 0 &&
-		    os_memcmp(bssid, wpa_s->bssid, ETH_ALEN) != 0) {
-			wpa_msg(wpa_s, MSG_DEBUG, "Associated to a new BSS: BSSID="
-				MACSTR, MAC2STR(bssid));
-			os_memcpy(wpa_s->bssid, bssid, ETH_ALEN);
-			os_memset(wpa_s->pending_bssid, 0, ETH_ALEN);
-		}
-
-		os_memset(&bssid_s, 0, sizeof(bssid_s));
-		os_memset(&own_s, 0, sizeof(own_s));
-
-		os_memcpy(bssid_s.v, bssid, sizeof(bssid_s.v));
-		os_memcpy(own_s.v, wpa_s->wapi_own_addr, sizeof(own_s.v));
-		wpa_hexdump(MSG_DEBUG,"bssid",bssid, sizeof(bssid));
-		wpa_hexdump(MSG_DEBUG,"own mac",wpa_s->wapi_own_addr, 6);
-
-		if(wpa_s->ap_wapi_ie_len) {
-			wpa_printf(MSG_DEBUG,"%s: ap_wapi_ie_len is Not Zero, wpa_s->ap_wapi_ie_len=%d\n", __FUNCTION__, wpa_s->ap_wapi_ie_len);
-			WAI_Msg_Input(CONN_ASSOC, &bssid_s, &own_s, wpa_s->ap_wapi_ie,
-				      wpa_s->ap_wapi_ie_len);
-		}
-		else {
-			wpa_printf(MSG_DEBUG,"%s: ap_wapi_ie_len is Zero \n", __FUNCTION__);
-			WAI_Msg_Input(CONN_ASSOC, &bssid_s, &own_s, NULL, 0);
-		}
-
-		wpa_supplicant_cancel_auth_timeout(wpa_s);
-		wpa_supplicant_set_state(wpa_s, WPA_ASSOCIATED);
-#ifdef BRCM_SUPP
-		/* Update assoc frequency in case of wapi */
-		wpa_s->assoc_freq = data->assoc_info.freq;
-#endif /* BRCM_SUPP */
-		wpa_msg(wpa_s, MSG_INFO, "Associated with " MACSTR, MAC2STR(bssid));
-	} else {
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	ft_completed = wpa_ft_is_completed(wpa_s->wpa);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_OKC
 	/* BRCM OKC..
 	 * Commenting this as SSID and BSSID is not yet initialized
@@ -3547,29 +3202,6 @@
 	if (data && wpa_supplicant_event_associnfo(wpa_s, data) < 0)
 		return;
 #endif /* BRCM_OKC */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-	if (data && wpa_supplicant_event_associnfo(wpa_s, data) < 0)
-		return;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_CCX
-	if (wpa_key_mgmt_cckm(wpa_s->key_mgmt)) {
-		if (wpa_drv_get_bssid(wpa_s, bssid) >= 0 &&
-			os_memcmp(bssid, wpa_s->bssid, ETH_ALEN) == 0) {
-			/* redundant assoc event triggered by same roaming */
-			wpa_msg(wpa_s, MSG_INFO, "drop redundant assoc event");
-			return;
-		}
-
-		/* borrow ft_completed variable for CCKM reassoc */
-		if (!ft_completed)
-			ft_completed = wpa_cckm_reassoc_process(wpa_s->wpa,
-				wpa_s->drv_flags & WPA_DRIVER_FLAGS_4WAY_HANDSHAKE);
-
-		wpa_msg(wpa_s, MSG_INFO, "ft_completed = %d", ft_completed);
-	}
-#endif /* BRCM_CCX */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	/*
 	 * FILS authentication can share the same mechanism to mark the
 	 * connection fully authenticated, so set ft_completed also based on
@@ -3585,13 +3217,9 @@
 		return;
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(BRCM_VE) || defined(BRCM_ROAM_OFFLOAD)
 	/* If the old bss is non-NULL & connection is FT then assume driver did the 4-way handshake */
 	if (
-#ifdef BRCM_DRV_ROAM
-		!wpas_driver_bss_selection(wpa_s) &&
-#endif /* BRCM_DRV_ROAM */
 		(wpa_s->wpa_state == WPA_COMPLETED &&
 		(wpa_key_mgmt_ft(wpa_s->key_mgmt) || IS_OKC_ROAM_OFFLOAD())))
 	{
@@ -3606,16 +3234,12 @@
 	}
 	/* For driver based roaming, insert PSK during the initial association */
 	if (
-#ifdef BRCM_DRV_ROAM
-		is_zero_ether_addr(wpa_s->bssid) &&
-#endif /* BRCM_DRV_ROAM */
 		wpa_key_mgmt_wpa_psk(wpa_s->key_mgmt)) {
 	/* In case the driver wants to handle re-assocs, pass it down the PMK. */
 		wpa_dbg(wpa_s, MSG_DEBUG, "Pass the PMK to the driver");
 		wpa_sm_install_pmk(wpa_s->wpa);
 	}
 #endif /* BRCM_VE || BRCM_ROAM_OFFLOAD */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	wpa_supplicant_set_state(wpa_s, WPA_ASSOCIATED);
 	if (os_memcmp(bssid, wpa_s->bssid, ETH_ALEN) != 0) {
 		if (os_reltime_initialized(&wpa_s->session_start)) {
@@ -3639,7 +3263,6 @@
 		if (wpa_supplicant_dynamic_keys(wpa_s) && !ft_completed) {
 			wpa_clear_keys(wpa_s, bssid);
 		}
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ANDROID_P2P
 		if (wpa_s->current_ssid) {
 			struct wpa_bss *bss = NULL;
@@ -3656,7 +3279,6 @@
 				wpa_s->current_bss = bss;
 		}
 #endif /* ANDROID_P2P */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		if (wpa_supplicant_select_config(wpa_s) < 0) {
 			wpa_supplicant_deauthenticate(
 				wpa_s, WLAN_REASON_DEAUTH_LEAVING);
@@ -3672,7 +3294,6 @@
 			wpa_msg(wpa_s, MSG_WARNING,
 				"WPA/RSN IEs not updated");
 	}
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_OKC
 	/* BRCM OKC Moved this calling after supplicant gets the SSID and BSSID */
 	if (wpa_s->current_ssid &&
@@ -3681,11 +3302,9 @@
 			return;
 	}
 #endif /* BRCM_OKC */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	wpas_fst_update_mb_assoc(wpa_s, data);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_OKC
 	/* BRCM OKC Moved this calling after supplicant gets the SSID and BSSID */
 	if (wpa_s->current_ssid &&
@@ -3694,7 +3313,6 @@
 			return;
 	}
 #endif /* BRCM_OKC */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_SME
 	os_memcpy(wpa_s->sme.prev_bssid, bssid, ETH_ALEN);
 	wpa_s->sme.prev_bssid_set = 1;
@@ -3756,11 +3374,6 @@
 		/* Timeout for receiving the first EAPOL packet */
 		wpa_supplicant_req_auth_timeout(wpa_s, 10, 0);
 	}
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	wpa_supplicant_cancel_scan(wpa_s);
 
 	if (ft_completed) {
@@ -3815,7 +3428,7 @@
 		struct os_reltime now, age;
 		os_get_reltime(&now);
 		os_reltime_sub(&now, &wpa_s->pending_eapol_rx_time, &age);
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(BRCM_OKC)
+#if defined(BRCM_OKC)
 		if (age.sec == 0 && age.usec < 900000 &&
 #else
 		if (age.sec == 0 && age.usec < 200000 &&
@@ -3970,50 +3583,6 @@
 
 	authenticating = wpa_s->wpa_state == WPA_AUTHENTICATING;
 	os_memcpy(prev_pending_bssid, wpa_s->pending_bssid, ETH_ALEN);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	MAC_ADDRESS bssid_s;
-	MAC_ADDRESS own_s;
-
-	wpa_printf(MSG_DEBUG, "%s: wpa_s->ap_wapi_ie_len=%d\twpa_s->assoc_wapi_ie_len =%d\n",
-		   __FUNCTION__, wpa_s->ap_wapi_ie_len, wpa_s->assoc_wapi_ie_len);
-	if ( (wpa_s->ap_wapi_ie_len > 0) && (wpa_s->assoc_wapi_ie_len > 0) ) { /* this is a WAPI network */
-		os_memset(&bssid_s, 0, sizeof(bssid_s));
-		os_memset(&own_s, 0, sizeof(own_s));
-
-		os_memcpy(bssid_s.v, wpa_s->bssid, sizeof(bssid_s.v));
-		os_memcpy(own_s.v, wpa_s->wapi_own_addr, sizeof(own_s.v));
-
-		WAI_Msg_Input(CONN_DISASSOC, &bssid_s, &own_s, NULL, 0);
-
-		if (wpa_s->wpa_state >= WPA_ASSOCIATED)
-			wpa_supplicant_req_scan(wpa_s, 0, 100000);
-
-		if (wpa_s->wpa_state >= WPA_AUTHENTICATING) {
-			wpas_connect_work_done(wpa_s);
-		}
-
-		bssid = wpa_s->bssid;
-		if (os_memcmp(bssid, "\x00\x00\x00\x00\x00\x00", ETH_ALEN) == 0)
-			bssid = wpa_s->pending_bssid;
-		wpa_blacklist_add(wpa_s, bssid);
-		wpa_msg(wpa_s, MSG_INFO, WPA_EVENT_DISCONNECTED "- Disconnect event - "
-			"remove keys");
-
-		wpa_supplicant_mark_disassoc(wpa_s);
-
-		wpa_s->ap_wapi_ie_len = 0;
-		wpa_s->assoc_wapi_ie_len = 0;
-		os_memset(wpa_s->ap_wapi_ie, 0, sizeof(wpa_s->ap_wapi_ie));
-		os_memset(wpa_s->assoc_wapi_ie, 0, sizeof(wpa_s->assoc_wapi_ie));
-
-		if (wpa_s->wapi_conf != NULL) {
-			wapi_config_free(wpa_s->wapi_conf);
-			wpa_s->wapi_conf = NULL;
-		}
-	} else {
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	if (wpa_s->key_mgmt == WPA_KEY_MGMT_WPA_NONE) {
 		/*
@@ -4140,11 +3709,6 @@
 		 */
 		wpa_supplicant_req_scan(wpa_s, 0, 100000);
 	}
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-    }
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -4171,11 +3735,6 @@
 	struct os_reltime t;
 
 	wpa_msg(wpa_s, MSG_WARNING, "Michael MIC failure detected");
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	if (!wpa_s->current_ssid->wapi) {
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	pairwise = (data && data->michael_mic_failure.unicast);
 	os_get_reltime(&t);
 	if ((wpa_s->last_michael_mic_error.sec &&
@@ -4258,11 +3817,6 @@
 #endif /* CONFIG_DELAYED_MIC_ERROR_REPORT */
 	}
 	wpa_s->last_michael_mic_error = t;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	wpa_s->mic_errors_seen++;
 }
 
@@ -4341,12 +3895,6 @@
 			break;
 		}
 #endif /* CONFIG_MATCH_IFACE */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-		l2_packet_deinit(wpa_s->l2_wapi);
-		wpa_s->l2_wapi = NULL;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_TERMINATE_ONLASTIF
 		/* check if last interface */
@@ -4386,32 +3934,6 @@
 		break;
 	}
 }
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_DEBUG
-static void wpa_s_tdls_rx_action(struct wpa_supplicant *wpa_s,
-							u8 category, const u8 *data, size_t len, const u8 *sa)
-{
-	char *wfd_ie = NULL;
-	u8 ie_len = 0;
-
-	if(category == WLAN_ACTION_VENDOR_SPECIFIC) {
-		if(len <= 0)
-			return;
-		ie_len = len * 2;
-		wfd_ie = os_zalloc(ie_len + 1);
-		if (!wfd_ie)
-			return;
-
-		wpa_snprintf_hex(wfd_ie, ie_len + 1,
-				 (u8 *)(data), ie_len);
-
-		wpa_msg_global(wpa_s, MSG_INFO, TDLS_EVENT_PEER_FOUND MACSTR
-					" tdls_wfd_ie=%s", MAC2STR(sa), wfd_ie);
-
-	}
-}
-#endif /* BRCM_DEBUG */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* CONFIG_TDLS */
 
 
@@ -4608,7 +4130,6 @@
 	}
 #endif /* CONFIG_P2P */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(WL_SAE) || defined(CONFIG_SAE)
 	if (reason_code == WLAN_REASON_PREV_AUTH_NOT_VALID) {
 		const u8 *bssid = wpa_s->bssid;
@@ -4628,7 +4149,6 @@
 		}
 	}
 #endif /* WL_SAE || CONFIG_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	wpa_supplicant_event_disassoc_finish(wpa_s, reason_code,
 					     locally_generated);
 }
@@ -4882,44 +4402,6 @@
 			MAC2STR(mgmt->sa));
 		return;
 	}
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_DEBUG
-	if(category == WLAN_ACTION_TDLS && plen >=4 &&
-		payload[0] == WLAN_TDLS_SETUP_RESPONSE) {
-		wpa_dbg(wpa_s, MSG_DEBUG,
-			"TDLS: Setup Response Frame from " MACSTR,
-			MAC2STR(mgmt->sa));
-		wpa_msg_global(wpa_s, MSG_INFO, TDLS_PEER_CONNECTED MACSTR,
-			MAC2STR(mgmt->sa));
-		return;
-	}
-	if(category == WLAN_ACTION_TDLS && plen >=4 &&
-		payload[0] == WLAN_TDLS_SETUP_CONFIRM) {
-		wpa_dbg(wpa_s, MSG_DEBUG,
-			"TDLS: Setup Confirmation frame Frame from " MACSTR,
-			MAC2STR(mgmt->sa));
-		wpa_msg_global(wpa_s, MSG_INFO, TDLS_PEER_CONNECTED MACSTR,
-			MAC2STR(mgmt->sa));
-		return;
-	}
-	if(category == WLAN_ACTION_TDLS && plen >=4 &&
-		payload[0] == WLAN_TDLS_TEARDOWN) {
-		wpa_dbg(wpa_s, MSG_DEBUG,
-			"TDLS: Teardown frame Frame from " MACSTR,
-			MAC2STR(mgmt->sa));
-		wpa_msg_global(wpa_s, MSG_INFO, TDLS_PEER_DISCONNECTED MACSTR,
-			MAC2STR(mgmt->sa));
-		return;
-	}
-	if(category == WLAN_ACTION_VENDOR_SPECIFIC && plen >=4) {
-		const u8 *pos = payload + 4;
-		wpa_dbg(wpa_s, MSG_DEBUG,
-			"TDLS: Vendor specific probe Response Frame from " MACSTR,
-			MAC2STR(mgmt->sa));
-		wpa_s_tdls_rx_action(wpa_s, category, pos, (plen - 4), mgmt->sa);
-	}
-#endif /* BRCM_DEBUG */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* CONFIG_TDLS */
 
 #ifdef CONFIG_INTERWORKING
@@ -5222,11 +4704,9 @@
 			" qca_driver_reason=" : "",
 			connect_fail_reason(data->assoc_reject.reason_code));
 	wpa_s->assoc_status_code = data->assoc_reject.status_code;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 	/* android commit:807bc58f wpa_supplicant(hidl): Add timedOut param in assoc reject */
 	wpa_s->assoc_timed_out = data->assoc_reject.timed_out;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_ANDROID12)
+#if defined(CONFIG_ANDROID12)
 	wpas_notify_assoc_status_code(wpa_s, bssid, data->assoc_reject.timed_out,
 			data->assoc_reject.resp_ies, data->assoc_reject.resp_ies_len);
 #else
@@ -5259,10 +4739,6 @@
 #endif /* CONFIG_OWE */
 
 #ifdef CONFIG_DPP2
-	/* Try to follow AP's PFS policy. WLAN_STATUS_ASSOC_DENIED_UNSPEC is
-	 * the status code defined in the DPP R2 tech spec.
-	 * WLAN_STATUS_AKMP_NOT_VALID is addressed in the same manner as an
-	 * interoperability workaround with older hostapd implementation. */
 	if (DPP_VERSION > 1 && wpa_s->current_ssid &&
 	    (wpa_s->current_ssid->key_mgmt == WPA_KEY_MGMT_DPP ||
 	     ((wpa_s->current_ssid->key_mgmt & WPA_KEY_MGMT_DPP) &&
@@ -5354,7 +4830,6 @@
 	}
 #endif /* CONFIG_FILS */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_SAE
 	if(wpa_s->current_ssid &&
 			wpa_key_mgmt_sae(wpa_s->current_ssid->key_mgmt))
@@ -5365,7 +4840,6 @@
 		wpa_sm_pmksa_cache_flush(wpa_s->wpa, wpa_s->current_ssid);
 	}
 #endif /* CONFIG_BRCM_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	wpas_connection_failed(wpa_s, bssid);
 	wpa_supplicant_mark_disassoc(wpa_s);
 }
@@ -5440,7 +4914,6 @@
 #endif /* CONFIG_NO_STDOUT_DEBUG */
 
 	switch (event) {
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_SAE
 	case EVENT_SAE_KEY:
 		memcpy(wpa_s->bssid, data->sae_key_info.peer_mac, ETH_ALEN);
@@ -5448,7 +4921,6 @@
 			data->sae_key_info.pmkid, wpa_s->bssid);
 		break;
 #endif /* CONFIG_BRCM_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	case EVENT_AUTH:
 #ifdef CONFIG_FST
 		if (!wpas_fst_update_mbie(wpa_s, data->auth.ies,
@@ -5555,18 +5027,6 @@
 			wpa_s->scan_start_time.usec = 0;
 			wpa_dbg(wpa_s, MSG_DEBUG, "Scan completed in %ld.%06ld seconds",
 				diff.sec, diff.usec);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_DEBUG
-			if(strncmp(wpa_s->ifname, "p2p", 3) != 0) {
-				/* Avoid for p2p. Otherwise during p2p_find, it will
-				 * clutter the cli with too many event prints
-				 */
-				wpa_msg_global(wpa_s, MSG_INFO, WPA_EVENT_SCAN_RESULTS
-					"Scan completed in %ld.%06ld seconds",
-					diff.sec, diff.usec);
-			}
-#endif /* BRCM_DEBUG */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		}
 		if (wpa_supplicant_event_scan_results(wpa_s, data))
 			break; /* interface may have been removed */
@@ -6045,12 +5505,10 @@
 				wpa_s, WLAN_REASON_DEAUTH_LEAVING, 1);
 		}
 		wpa_supplicant_mark_disassoc(wpa_s);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_10
 		if (!wpa_s->conf->bss_no_flush_when_down)
 			wpa_bss_flush(wpa_s);
 #endif /* ABOVE_10 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		os_reltime_age(&wpa_s->last_scan, &age);
 		if (age.sec >= SCAN_RES_VALID_FOR_CONNECT) {
 			clear_at.sec = SCAN_RES_VALID_FOR_CONNECT;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/hs20_supplicant.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/hs20_supplicant.c
index 0fbbd8b..aa0ce7d 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/hs20_supplicant.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/hs20_supplicant.c
@@ -20,22 +20,18 @@
 #include "driver_i.h"
 #include "config.h"
 #include "scan.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_8_1
 /* android commit:04a9d747 Add notifications for ANQP/HS20 events */
 #include "notify.h"
 #endif /* ABOVE_8_1 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #include "bss.h"
 #include "blacklist.h"
 #include "gas_query.h"
 #include "interworking.h"
 #include "hs20_supplicant.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_HS20
 #include <dirent.h>
 #endif /* CONFIG_BRCM_HS20 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #include "base64.h"
 
 
@@ -490,7 +486,6 @@
 				RX_HS20_ICON MACSTR " %s %u",
 				MAC2STR(sa), icon->file_name,
 				(unsigned int) icon->image_len);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_8_1
 			/* android commit:04a9d747 wpa_supplicant:
 			 * Add notifications for ANQP/HS20 events */
@@ -499,7 +494,6 @@
 							 icon->image,
 							 icon->image_len);
 #endif /* ABOVE_8_1 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 			return 0;
 		}
 	}
@@ -1224,13 +1218,11 @@
 
 int hs20_fetch_osu(struct wpa_supplicant *wpa_s, int skip_scan)
 {
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_HS20
 	char fname[256];
 	DIR *osu_dir;
 	struct dirent *file;
 #endif /* CONFIG_BRCM_HS20 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (wpa_s->wpa_state == WPA_INTERFACE_DISABLED) {
 		wpa_printf(MSG_DEBUG, "HS 2.0: Cannot start fetch_osu - "
 			   "interface disabled");
@@ -1256,7 +1248,6 @@
 			   wpa_s->network_select);
 		return -1;
 	}
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_HS20
 	/*
 	 * By default supplicant will save the retrieved icons with an
@@ -1281,7 +1272,6 @@
 	}
 	closedir(osu_dir);
 #endif /* CONFIG_BRCM_HS20 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	wpa_msg(wpa_s, MSG_INFO, "Starting OSU provisioning information fetch");
 	wpa_s->num_osu_scans = 0;
@@ -1338,12 +1328,10 @@
 			osu_method, url);
 	else
 		wpa_msg(wpa_s, MSG_INFO, HS20_SUBSCRIPTION_REMEDIATION);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_8_1
 	/* android commit:04a9d747 Add notifications for ANQP/HS20 events */
 	wpas_notify_hs20_rx_subscription_remediation(wpa_s, url, osu_method);
 #endif /* ABOVE_8_1 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -1358,12 +1346,10 @@
 	wpa_msg(wpa_s, MSG_INFO, HS20_DEAUTH_IMMINENT_NOTICE "%u %u %s",
 		code, reauth_delay, url);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_8_1
 	/* android commit:04a9d747 Add notifications for ANQP/HS20 events */
 	wpas_notify_hs20_rx_deauth_imminent_notice(wpa_s, code, reauth_delay, url);
 #endif /* ABOVE_8_1 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (code == HS20_DEAUTH_REASON_CODE_BSS) {
 		wpa_printf(MSG_DEBUG, "HS 2.0: Add BSS to blacklist");
 		wpa_blacklist_add(wpa_s, wpa_s->bssid);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/interworking.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/interworking.c
index e2136dd..f68af5f 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/interworking.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/interworking.c
@@ -3151,12 +3151,10 @@
 out:
 	wpa_msg(wpa_s, MSG_INFO, ANQP_QUERY_DONE "addr=" MACSTR " result=%s",
 		MAC2STR(dst), anqp_result);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_8_1
 	/* android commit:04a9d747 Add notifications for ANQP/HS20 events */
 	wpas_notify_anqp_query_done(wpa_s, dst, anqp_result, bss ? bss->anqp : NULL);
 #endif /* ABOVE_8_1 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/main.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/main.c
index c169b40..3bd07a3 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/main.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/main.c
@@ -190,13 +190,9 @@
 		return -1;
 
 	os_memset(&params, 0, sizeof(params));
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_MERGES
 	params.wpa_debug_level = MSG_DEBUG;
 #endif /* CONFIG_BRCM_MERGES */
-#else
-	params.wpa_debug_level = MSG_INFO;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	iface = ifaces = os_zalloc(sizeof(struct wpa_interface));
 	if (ifaces == NULL)
@@ -387,7 +383,6 @@
 			exitcode = -1;
 			break;
 		}
-#ifdef CONFIG_DRIVER_NL80211_IFX
 		/* Support STA+GC on DBDC, SBSC and not on SBDC. */
 		else {
 			char buf[50];
@@ -399,7 +394,6 @@
 			else
 				global->rsdb_flag = 0;
 		}
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	}
 
 #ifdef CONFIG_MATCH_IFACE
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/notify.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/notify.c
index 4d8c85f..bfd8ce2 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/notify.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/notify.c
@@ -24,14 +24,13 @@
 #include "p2p_supplicant.h"
 #include "sme.h"
 #include "notify.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#if defined (CONFIG_HIDL) && defined (CONFIG_ANDROIDQ)
+#if defined(CONFIG_HIDL) && defined(CONFIG_ANDROIDQ)
 #include "hidl/1.2/hidl.h"
-#elif defined (ABOVE_8_1) && defined (PIE)
+#elif defined(ABOVE_8_1) && defined(PIE)
 #include "hidl/1.1/hidl.h"
 #elif defined(CONFIG_ANDROID11)
 #include "hidl/1.3/hidl.h"
-#elif defined (CONFIG_ANDROID12)
+#elif defined(CONFIG_ANDROID12)
 #include "hidl/1.4/hidl.h"
 #else
 #ifdef CONFIG_CTRL_IFACE_HIDL
@@ -99,7 +98,6 @@
     struct wpa_supplicant *wpa_s, const u8 *sta, const u8 *p2p_dev_addr);
 #endif /* CONFIG_HIDL */
 #endif /* CONFIG_CTRL_IFACE_HIDL */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 int wpas_notify_supplicant_initialized(struct wpa_global *global)
 {
@@ -111,19 +109,11 @@
 	}
 #endif /* CONFIG_CTRL_IFACE_DBUS_NEW */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	global->hidl = wpas_hidl_init(global);
 	if (!global->hidl)
 		return -1;
 #endif /* CONFIG_CTRL_IFACE_HIDL */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-#ifdef CONFIG_BINDER
-	global->binder = wpas_binder_init(global);
-	if (!global->binder)
-		return -1;
-#endif /* CONFIG_BINDER */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	return 0;
 }
@@ -136,23 +126,16 @@
 		wpas_dbus_deinit(global->dbus);
 #endif /* CONFIG_CTRL_IFACE_DBUS_NEW */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	if (global->hidl)
 		wpas_hidl_deinit(global->hidl);
 #endif /* CONFIG_CTRL_IFACE_HIDL */
-#else
-#ifdef CONFIG_BINDER
-	if (global->binder)
-		wpas_binder_deinit(global->binder);
-#endif /* CONFIG_BINDER */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
 int wpas_notify_iface_added(struct wpa_supplicant *wpa_s)
 {
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(ABOVE_8_1)
+#if defined(ABOVE_8_1)
 	if (!wpa_s->p2p_mgmt) {
 	    /* linux commit:6a8dee76d: wpa_supplicant: Drop the old D-Bus interface support */
 	    if (wpas_dbus_register_interface(wpa_s))
@@ -167,13 +150,11 @@
 		return -1;
 #endif /*CONFIG_DRIVER_NL80211_IFX && ABOVE_8_1 */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	/* HIDL interface wants to keep track of the P2P mgmt iface. */
 	if (wpas_hidl_register_interface(wpa_s))
 		return -1;
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	return 0;
 }
@@ -181,7 +162,7 @@
 
 void wpas_notify_iface_removed(struct wpa_supplicant *wpa_s)
 {
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(ABOVE_8_1)
+#if defined(ABOVE_8_1)
 	if (!wpa_s->p2p_mgmt) {
 	    /* unregister interface in new DBus ctrl iface */
 	    wpas_dbus_unregister_interface(wpa_s);
@@ -194,12 +175,10 @@
 	wpas_dbus_unregister_interface(wpa_s);
 #endif /*CONFIG_DRIVER_NL80211_IFX && ABOVE_8_1 */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	/* HIDL interface wants to keep track of the P2P mgmt iface. */
 	wpas_hidl_unregister_interface(wpa_s);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -240,11 +219,9 @@
 		     wpa_ssid_txt(wpa_s->current_ssid->ssid,
 				  wpa_s->current_ssid->ssid_len) : "");
 #endif /* ANDROID */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	wpas_hidl_notify_state_changed(wpa_s);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -254,11 +231,9 @@
 		return;
 
 	wpas_dbus_signal_prop_changed(wpa_s, WPAS_DBUS_PROP_DISCONNECT_REASON);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	wpas_hidl_notify_disconnect_reason(wpa_s);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -270,7 +245,7 @@
 	wpas_dbus_signal_prop_changed(wpa_s, WPAS_DBUS_PROP_AUTH_STATUS_CODE);
 }
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_ANDROID12)
+#if defined(CONFIG_ANDROID12)
 void wpas_notify_assoc_status_code(struct wpa_supplicant *wpa_s, const u8 *bssid,
 		                   u8 timed_out, const u8 *assoc_resp_ie,
 				   size_t assoc_resp_ie_len)
@@ -282,7 +257,6 @@
 		return;
 
 	wpas_dbus_signal_prop_changed(wpa_s, WPAS_DBUS_PROP_ASSOC_STATUS_CODE);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	wpas_hidl_notify_assoc_reject(wpa_s
 #ifdef CONFIG_ANDROID12
@@ -290,9 +264,7 @@
 #endif /* CONFIG_ANDROID12 */
 			);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_8_1
 /* android commit:38e96765 wpa_supplicant(hidl):
  * Implement auth timeout callback */
@@ -306,7 +278,6 @@
 #endif /* CONFIG_CTRL_IFACE_HIDL */
 }
 #endif /* ABOVE_8_1 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 
 void wpas_notify_roam_time(struct wpa_supplicant *wpa_s)
@@ -369,11 +340,9 @@
 		return;
 
 	wpas_dbus_signal_prop_changed(wpa_s, WPAS_DBUS_PROP_CURRENT_BSS);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	wpas_hidl_notify_bssid_changed(wpa_s);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -415,11 +384,9 @@
 		return;
 
 	wpas_dbus_signal_network_request(wpa_s, ssid, rtype, default_txt);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	wpas_hidl_notify_network_request(wpa_s, ssid, rtype, default_txt);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -484,13 +451,11 @@
 
 #ifdef CONFIG_WPS
 	wpas_dbus_signal_wps_event_fail(wpa_s, fail);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	wpas_hidl_notify_wps_event_fail(wpa_s, fail->peer_macaddr,
 					fail->config_error,
 					fail->error_indication);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* CONFIG_WPS */
 }
 
@@ -502,11 +467,9 @@
 
 #ifdef CONFIG_WPS
 	wpas_dbus_signal_wps_event_success(wpa_s);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	wpas_hidl_notify_wps_event_success(wpa_s);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* CONFIG_WPS */
 }
 
@@ -517,11 +480,9 @@
 
 #ifdef CONFIG_WPS
 	wpas_dbus_signal_wps_event_pbc_overlap(wpa_s);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	wpas_hidl_notify_wps_event_pbc_overlap(wpa_s);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* CONFIG_WPS */
 }
 
@@ -539,18 +500,14 @@
 	 * regular ones.
 	 */
 	if (!ssid->p2p_group && wpa_s->global->p2p_group_formation != wpa_s)
-#ifdef CONFIG_DRIVER_NL80211_IFX
 	/* android commit:57ffbcfc wpa_supplicant: HIDL implementation (1/2) */
 	{
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		wpas_dbus_register_network(wpa_s, ssid);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 		/* android commit:57ffbcfc wpa_supplicant: HIDL implementation (1/2) */
 #ifdef CONFIG_CTRL_IFACE_HIDL
 		wpas_hidl_register_network(wpa_s, ssid);
 #endif /* CONFIG_CTRL_IFACE_HIDL */
 	}
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -559,11 +516,9 @@
 {
 #ifdef CONFIG_P2P
 	wpas_dbus_register_persistent_group(wpa_s, ssid);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	wpas_hidl_register_network(wpa_s, ssid);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* CONFIG_P2P */
 }
 
@@ -573,11 +528,9 @@
 {
 #ifdef CONFIG_P2P
 	wpas_dbus_unregister_persistent_group(wpa_s, ssid->id);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	wpas_hidl_unregister_network(wpa_s, ssid);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* CONFIG_P2P */
 }
 
@@ -591,18 +544,14 @@
 		wpa_sm_pmksa_cache_flush(wpa_s->wpa, ssid);
 	if (!ssid->p2p_group && wpa_s->global->p2p_group_formation != wpa_s &&
 	    !wpa_s->p2p_mgmt)
-#ifdef CONFIG_DRIVER_NL80211_IFX
 	/* android commit:57ffbcfc wpa_supplicant: HIDL implementation (1/2) */
 	{
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		wpas_dbus_unregister_network(wpa_s, ssid->id);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 		/* android commit:57ffbcfc wpa_supplicant: HIDL implementation (1/2) */
 #ifdef CONFIG_CTRL_IFACE_HIDL
 		wpas_hidl_unregister_network(wpa_s, ssid);
 #endif /* CONFIG_CTRL_IFACE_HIDL */
 	}
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (network_is_persistent_group(ssid))
 		wpas_notify_persistent_group_removed(wpa_s, ssid);
 
@@ -813,18 +762,15 @@
 {
 	/* Notify P2P find has stopped */
 	wpas_dbus_signal_p2p_find_stopped(wpa_s);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	/* android commit:fd2fd660 wpa_supplicant(hidl):
 	 * Implementation of P2p callbacks */
 	wpas_hidl_notify_p2p_find_stopped(wpa_s);
 #endif /* CONFIG_CTRL_IFACE_HIDL */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
 void wpas_notify_p2p_device_found(struct wpa_supplicant *wpa_s,
-#ifdef CONFIG_DRIVER_NL80211_IFX
 	/* android commit:fd2fd660 wpa_supplicant(hidl):
 	 * Implementation of P2p callbacks */
 				  const u8 *addr, const struct p2p_peer_info *info,
@@ -834,23 +780,15 @@
                                   u8 peer_wfd_r2_device_info_len,
 #endif /* CONFIG_ANDROID12 */
 				  int new_device)
-#else /* CONFIG_DRIVER_NL80211_IFX */
-				  const u8 *dev_addr, int new_device)
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 {
 	if (new_device) {
 		/* Create the new peer object */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 		/* android commit:fd2fd660 wpa_supplicant(hidl):
 		 * Implementation of P2p callbacks */
 		wpas_dbus_register_peer(wpa_s, info->p2p_device_addr);
-#else /* CONFIG_DRIVER_NL80211_IFX */
-		wpas_dbus_register_peer(wpa_s, dev_addr);
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	}
 
 	/* Notify a new peer has been detected*/
-#ifdef CONFIG_DRIVER_NL80211_IFX
 	/* android commit:fd2fd660 wpa_supplicant(hidl):
 	 * Implementation of P2p callbacks */
 	wpas_dbus_signal_peer_device_found(wpa_s, info->p2p_device_addr);
@@ -864,9 +802,6 @@
 #endif /* CONFIG_ANDROID12 */
 					  );
 #endif /* CONFIG_CTRL_IFACE_HIDL */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-	wpas_dbus_signal_peer_device_found(wpa_s, dev_addr);
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -877,13 +812,11 @@
 
 	/* Create signal on interface object*/
 	wpas_dbus_signal_peer_device_lost(wpa_s, dev_addr);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	/* android commit:fd2fd660 wpa_supplicant(hidl):
 	 * Implementation of P2p callbacks */
 	wpas_hidl_notify_p2p_device_lost(wpa_s, dev_addr);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -894,13 +827,11 @@
 	wpas_dbus_signal_p2p_group_removed(wpa_s, role);
 
 	wpas_dbus_unregister_p2p_group(wpa_s, ssid);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	/* android commit:fd2fd660 wpa_supplicant(hidl):
 	 * Implementation of P2p callbacks */
 	wpas_hidl_notify_p2p_group_removed(wpa_s, ssid, role);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -908,13 +839,11 @@
 				const u8 *src, u16 dev_passwd_id, u8 go_intent)
 {
 	wpas_dbus_signal_p2p_go_neg_req(wpa_s, src, dev_passwd_id, go_intent);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	/* android commit:fd2fd660 wpa_supplicant(hidl):
 	 * Implementation of P2p callbacks */
 	wpas_hidl_notify_p2p_go_neg_req(wpa_s, src, dev_passwd_id, go_intent);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -922,13 +851,11 @@
 				      struct p2p_go_neg_results *res)
 {
 	wpas_dbus_signal_p2p_go_neg_resp(wpa_s, res);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	/* android commit:fd2fd660 wpa_supplicant(hidl):
 	 * Implementation of P2p callbacks */
 	wpas_hidl_notify_p2p_go_neg_completed(wpa_s, res);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -936,13 +863,11 @@
 				       int status, const u8 *bssid)
 {
 	wpas_dbus_signal_p2p_invitation_result(wpa_s, status, bssid);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	/* android commit:fd2fd660 wpa_supplicant(hidl):
 	 * Implementation of P2p callbacks */
 	wpas_hidl_notify_p2p_invitation_result(wpa_s, status, bssid);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -962,14 +887,12 @@
 {
 	wpas_dbus_signal_p2p_sd_response(wpa_s, sa, update_indic,
 					 tlvs, tlvs_len);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	/* android commit:fd2fd660 wpa_supplicant(hidl):
 	 * Implementation of P2p callbacks */
 	wpas_hidl_notify_p2p_sd_response(wpa_s, sa, update_indic,
 					 tlvs, tlvs_len);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -995,7 +918,6 @@
 	wpas_dbus_signal_p2p_provision_discovery(wpa_s, dev_addr, request,
 						 status, config_methods,
 						 generated_pin);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	/* android commit:fd2fd660 wpa_supplicant(hidl):
 	 * Implementation of P2p callbacks */
@@ -1003,7 +925,6 @@
 						 status, config_methods,
 						 generated_pin);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -1015,13 +936,11 @@
 	wpas_dbus_register_p2p_group(wpa_s, ssid);
 
 	wpas_dbus_signal_p2p_group_started(wpa_s, client, persistent, ip);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	/* android commit:fd2fd660 wpa_supplicant(hidl):
 	 * Implementation of P2p callbacks */
 	wpas_hidl_notify_p2p_group_started(wpa_s, ssid, persistent, client);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -1030,13 +949,11 @@
 {
 	/* Notify a group formation failed */
 	wpas_dbus_signal_p2p_group_formation_failure(wpa_s, reason);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	/* android commit:fd2fd660 wpa_supplicant(hidl):
 	 * Implementation of P2p callbacks */
 	wpas_hidl_notify_p2p_group_formation_failure(wpa_s, reason);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -1054,14 +971,12 @@
 	/* Notify a P2P Invitation Request */
 	wpas_dbus_signal_p2p_invitation_received(wpa_s, sa, go_dev_addr, bssid,
 						 id, op_freq);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	/* android commit:fd2fd660 wpa_supplicant(hidl):
 	 * Implementation of P2p callbacks */
 	wpas_hidl_notify_p2p_invitation_received(wpa_s, sa, go_dev_addr, bssid,
 						 id, op_freq);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 #endif /* CONFIG_P2P */
@@ -1087,13 +1002,11 @@
 
 	/* Notify listeners a new station has been authorized */
 	wpas_dbus_signal_sta_authorized(wpa_s, sta);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	/* android commit:fd2fd660 wpa_supplicant(hidl):
 	 * Implementation of P2p callbacks */
 	wpas_hidl_notify_ap_sta_authorized(wpa_s, sta, p2p_dev_addr);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -1113,13 +1026,11 @@
 	/* Notify listeners a station has been deauthorized */
 	wpas_dbus_signal_sta_deauthorized(wpa_s, sta);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	/* android commit:fd2fd660 wpa_supplicant(hidl):
 	 * Implementation of P2p callbacks */
 	wpas_hidl_notify_ap_sta_deauthorized(wpa_s, sta, p2p_dev_addr);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	/* Unregister the station */
 	wpas_dbus_unregister_sta(wpa_s, sta);
 }
@@ -1198,11 +1109,9 @@
 void wpas_notify_eap_error(struct wpa_supplicant *wpa_s, int error_code)
 {
 	wpa_msg(wpa_s, MSG_ERROR, WPA_EVENT_EAP_ERROR_CODE "%d", error_code);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef VTS_1_0
 	wpas_hidl_notify_eap_error(wpa_s, error_code);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -1242,7 +1151,6 @@
 }
 
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_8_1
 /* android commit:04a9d747 Add notifications for ANQP/HS20 events */
 void wpas_notify_anqp_query_done(struct wpa_supplicant *wpa_s, const u8* bssid,
@@ -1303,7 +1211,6 @@
 #endif /* CONFIG_HS20 */
 }
 #endif /* ABOVE_8_1 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_MESH
 
 void wpas_notify_mesh_group_started(struct wpa_supplicant *wpa_s,
@@ -1348,7 +1255,6 @@
 }
 
 #endif /* CONFIG_MESH */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if !(defined(OREO) || defined(PIE))
 /* android commit:59532857 [DPP] Added support for DPP in hidl */
 /*
@@ -1507,4 +1413,3 @@
 #endif /* CONFIG_CTRL_IFACE_HIDL */
 }
 #endif /* CONFIG_ANDROID11 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/notify.h b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/notify.h
index e23315a..386f643 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/notify.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/notify.h
@@ -10,7 +10,6 @@
 #define NOTIFY_H
 
 #include "p2p/p2p.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_8_1
 /* android commit:04a9d747 Add notifications for ANQP/HS20 events */
 #include "bss.h"
@@ -22,7 +21,6 @@
 /* android commit:126b1702 wifi: implement PMK cache interface and callback */
 #include "rsn_supp/pmksa_cache.h"
 #endif /* CONFIG_ANDROID11 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 struct wps_credential;
 struct wps_event_m2d;
@@ -39,20 +37,16 @@
 void wpas_notify_disconnect_reason(struct wpa_supplicant *wpa_s);
 void wpas_notify_auth_status_code(struct wpa_supplicant *wpa_s);
 void wpas_notify_assoc_status_code(struct wpa_supplicant *wpa_s
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_ANDROID12
 				, const u8 *bssid, u8 timed_out
                                 , const u8 *assoc_resp_ie, size_t assoc_resp_ie_len
 #endif /* CONFIG_ANDROID12 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_8_1
 /* android commit:38e96765 wpa_supplicant(hidl):
  * Implement auth timeout callback */
 void wpas_notify_auth_timeout(struct wpa_supplicant *wpa_s);
 #endif /* ABOVE_8_1 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 void wpas_notify_roam_time(struct wpa_supplicant *wpa_s);
 void wpas_notify_roam_complete(struct wpa_supplicant *wpa_s);
 void wpas_notify_session_length(struct wpa_supplicant *wpa_s);
@@ -121,7 +115,6 @@
 				const u8 *p2p_dev_addr);
 void wpas_notify_p2p_find_stopped(struct wpa_supplicant *wpa_s);
 void wpas_notify_p2p_device_found(struct wpa_supplicant *wpa_s,
-#ifdef CONFIG_DRIVER_NL80211_IFX
 				/* android commit:fd2fd660 wpa_supplicant(hidl):
 				 * Implementation of P2p callbacks */
 				 const u8 *addr, const struct p2p_peer_info *info,
@@ -131,9 +124,6 @@
                                  u8 peer_wfd_r2_device_info_len,
 #endif /* CONFIG_ANDROID12 */
 				 int new_device);
-#else /* CONFIG_DRIVER_NL80211_IFX */
-				  const u8 *dev_addr, int new_device);
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 void wpas_notify_p2p_device_lost(struct wpa_supplicant *wpa_s,
 				 const u8 *dev_addr);
 void wpas_notify_p2p_group_removed(struct wpa_supplicant *wpa_s,
@@ -195,7 +185,6 @@
 				     const u8 *peer_addr);
 void wpas_notify_mesh_peer_disconnected(struct wpa_supplicant *wpa_s,
 					const u8 *peer_addr, u16 reason_code);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_8_1
 /* android commit:04a9d747 Add notifications for ANQP/HS20 events */
 void wpas_notify_anqp_query_done(struct wpa_supplicant *wpa_s, const u8* bssid,
@@ -230,6 +219,5 @@
                                  struct rsn_pmksa_cache_entry *entry);
 #endif /* CONFIG_ANDROID11 */
 #endif /* !(OREO || PIE) */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #endif /* NOTIFY_H */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/p2p_supplicant.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/p2p_supplicant.c
index eb2588f..b28308b 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/p2p_supplicant.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/p2p_supplicant.c
@@ -163,7 +163,6 @@
 			     enum wpas_p2p_channel_update_trig trig);
 static void wpas_p2p_reconsider_moving_go(void *eloop_ctx, void *timeout_ctx);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_BT_WIFI_HO
 static int wpas_p2p_select_go_freq(struct wpa_supplicant *wpa_s, int freq);
 static int wpas_p2p_init_go_params(struct wpa_supplicant *wpa_s,
@@ -172,7 +171,6 @@
                                    int vht, int max_oper_chwidth, int he,
                                    const struct p2p_channels *channels);
 #endif /* CONFIG_BRCM_BT_WIFI_HO */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 /*
  * Get the number of concurrent channels that the HW can operate, but that are
@@ -402,7 +400,7 @@
 }
 
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_BRCM_RSDB)
+#if defined(CONFIG_BRCM_RSDB)
 static int wpas_p2p_scan(void *ctx, enum p2p_scan_type type, int *freq,
 			 unsigned int num_req_dev_types,
 			 const u8 *req_dev_types, const u8 *dev_id, u16 pw_id)
@@ -469,14 +467,13 @@
 		params->freqs = os_calloc(2, sizeof(int));
 		if (params->freqs == NULL)
 			goto fail;
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_BRCM_RSDB)
+#if defined(CONFIG_BRCM_RSDB)
 		params->freqs[0] = freq[0];
 #else
 		params->freqs[0] = freq;
 #endif /* CONFIG_DRIVER_NL80211_IFX && CONFIG_BRCM_RSDB */
 		params->freqs[1] = 0;
 		break;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_RSDB
 		case P2P_SCAN_SOCIAL_PLUS_5G:
 			params->freqs = os_malloc(8 * sizeof(int));
@@ -491,7 +488,6 @@
 			params->freqs[i+3] = 0;
 			break;
 #endif /* CONFIG_BRCM_RSDB */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	case P2P_SCAN_SOCIAL_PLUS_ONE:
 		params->freqs = os_calloc(ARRAY_SIZE(social_channels_freq) + 2,
 					  sizeof(int));
@@ -503,7 +499,7 @@
 				params->freqs[num_channels++] =
 					social_channels_freq[i];
 		}
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_BRCM_RSDB)
+#if defined(CONFIG_BRCM_RSDB)
 		if (p2p_supported_freq(wpa_s->global->p2p, freq[0]))
 			params->freqs[num_channels++] = freq[0];
 #else
@@ -1232,13 +1228,11 @@
 	s->pbss = ssid->pbss;
 	s->pairwise_cipher = ssid->pbss ? WPA_CIPHER_GCMP : WPA_CIPHER_CCMP;
 	s->export_keys = 1;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 	/* Fix for persistent GC connection to GO */
 	s->vht = ssid->vht;
 	s->ht40 = ssid->ht40;
 #endif /* CONFIG_BRCM_AUTOMOTIVE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (ssid->passphrase) {
 		os_free(s->passphrase);
 		s->passphrase = os_strdup(ssid->passphrase);
@@ -2195,11 +2189,9 @@
 	d->disassoc_low_ack = s->disassoc_low_ack;
 	d->disable_scan_offload = s->disable_scan_offload;
 	d->passive_scan = s->passive_scan;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_RSN_CNTRS
 	d->replay_cntrs = s->replay_cntrs;
 #endif /* CONFIG_BRCM_RSN_CNTRS */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	if (s->wps_nfc_dh_privkey && s->wps_nfc_dh_pubkey &&
 	    !d->wps_nfc_pw_from_config) {
@@ -2295,7 +2287,6 @@
 	return 0;
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_BT_WIFI_HO
 int wpas_p2p_group_remove_ho(struct wpa_supplicant *wpa_s)
 {
@@ -2454,7 +2445,6 @@
 	return 0;
 }
 #endif /* CONFIG_BRCM_BT_WIFI_HO */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static void wpas_p2p_remove_pending_group_interface(
 	struct wpa_supplicant *wpa_s)
@@ -2706,7 +2696,6 @@
 			   const struct p2p_peer_info *info,
 			   int new_device)
 {
-#ifdef CONFIG_DRIVER_NL80211_IFX
 	/* android commit:fd2fd660 wpa_supplicant(hidl):
 	 * Implementation of P2p callbacks */
 	u8 *wfd_dev_info = NULL;
@@ -2715,20 +2704,16 @@
 	u8 *wfd_r2_dev_info = NULL;
 	u8 wfd_r2_dev_info_len = 0;
 #endif /* CONFIG_ANDROID12 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifndef CONFIG_NO_STDOUT_DEBUG
 	struct wpa_supplicant *wpa_s = ctx;
 	char devtype[WPS_DEV_TYPE_BUFSIZE];
 	char *wfd_dev_info_hex = NULL;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_ANDROID12
 	char *wfd_r2_dev_info_hex = NULL;
 #endif /* CONFIG_ANDROID12 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_WIFI_DISPLAY
 	wfd_dev_info_hex = wifi_display_subelem_hex(info->wfd_subelems,
 						    WFD_SUBELEM_DEVICE_INFO);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 	/* android commit:fd2fd660 wpa_supplicant(hidl):
 	 * Implementation of P2p callbacks */
 	if (wfd_dev_info_hex) {
@@ -2748,7 +2733,6 @@
                hexstr2bin(wfd_r2_dev_info_hex, wfd_r2_dev_info, wfd_r2_dev_info_len);
        }
 #endif /* CONFIG_ANDROID12 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* CONFIG_WIFI_DISPLAY */
 
 	if (info->p2ps_instance) {
@@ -2800,7 +2784,7 @@
 	wpa_msg_global(wpa_s, MSG_INFO, P2P_EVENT_DEVICE_FOUND MACSTR
 		       " p2p_dev_addr=" MACSTR
 		       " pri_dev_type=%s name='%s' config_methods=0x%x "
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_ANDROID12)
+#if defined(CONFIG_ANDROID12)
 		       "dev_capab=0x%x group_capab=0x%x%s%s%s%s%s new=%d",
 #else
 		       "dev_capab=0x%x group_capab=0x%x%s%s%s new=%d",
@@ -2812,7 +2796,7 @@
 		       info->dev_capab, info->group_capab,
 		       wfd_dev_info_hex ? " wfd_dev_info=0x" : "",
 		       wfd_dev_info_hex ? wfd_dev_info_hex : "",
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_ANDROID12)
+#if defined(CONFIG_ANDROID12)
 		       wfd_r2_dev_info_hex ? " wfd_r2_dev_info=0x" : "",
 		       wfd_r2_dev_info_hex ? wfd_r2_dev_info_hex : "",
 #endif /* CONFIG_DRIVER_NL80211_IFX && CONFIG_ANDROID12 */
@@ -2821,14 +2805,11 @@
 
 done:
 	os_free(wfd_dev_info_hex);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_ANDROID12
 	os_free(wfd_r2_dev_info_hex);
 #endif /* CONFIG_ANDROID12 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* CONFIG_NO_STDOUT_DEBUG */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 	/* android commit:fd2fd660 wpa_supplicant(hidl):
 	 * Implementation of P2p callbacks */
 	wpas_notify_p2p_device_found(ctx, addr, info, wfd_dev_info,
@@ -2838,9 +2819,6 @@
 #endif /* CONFIG_ANDROID12 */
 				     new_device);
 	os_free(wfd_dev_info);
-#else
-	wpas_notify_p2p_device_found(ctx, info->p2p_device_addr, new_device);
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -3061,7 +3039,7 @@
 		os_memset(empty_dev_type, 0, sizeof(empty_dev_type));
 		pri_dev_type = empty_dev_type;
 	}
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_BRCM_AUTOMOTIVE)
+#if defined(CONFIG_BRCM_AUTOMOTIVE)
 	 res = os_snprintf(params, sizeof(params), " rx_freq=%d p2p_dev_addr=" MACSTR
                           " pri_dev_type=%s name='%s' config_methods=0x%x "
                           "dev_capab=0x%x group_capab=0x%x%s%s",
@@ -4853,15 +4831,11 @@
 	if (wpa_s->conf->p2p_device_random_mac_addr == 0)
 		return 0;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_10
 	if (wpa_s->conf->ssid == NULL) {
 #else /* ABOVE_10 */
 	if (!wpa_s->conf->ssid) {
 #endif /* ABOVE_10 */
-#else
-	if (!wpa_s->conf->ssid) {
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		if (random_mac_addr(addr) < 0) {
 			wpa_msg(wpa_s, MSG_INFO,
 				"Failed to generate random MAC address");
@@ -5958,34 +5932,6 @@
 }
 
 
-/**
- * wpas_p2p_connect - Request P2P Group Formation to be started
- * @wpa_s: Pointer to wpa_supplicant data from wpa_supplicant_add_iface()
- * @peer_addr: Address of the peer P2P Device
- * @pin: PIN to use during provisioning or %NULL to indicate PBC mode
- * @persistent_group: Whether to create a persistent group
- * @auto_join: Whether to select join vs. GO Negotiation automatically
- * @join: Whether to join an existing group (as a client) instead of starting
- *	Group Owner negotiation; @peer_addr is BSSID in that case
- * @auth: Whether to only authorize the connection instead of doing that and
- *	initiating Group Owner negotiation
- * @go_intent: GO Intent or -1 to use default
- * @freq: Frequency for the group or 0 for auto-selection
- * @freq2: Center frequency of segment 1 for the GO operating in VHT 80P80 mode
- * @persistent_id: Persistent group credentials to use for forcing GO
- *	parameters or -1 to generate new values (SSID/passphrase)
- * @pd: Whether to send Provision Discovery prior to GO Negotiation as an
- *	interoperability workaround when initiating group formation
- * @ht40: Start GO with 40 MHz channel width
- * @vht:  Start GO with VHT support
- * @vht_chwidth: Channel width supported by GO operating with VHT support
- *	(CHANWIDTH_*).
- * @group_ssid: Specific Group SSID for join or %NULL if not set
- * @group_ssid_len: Length of @group_ssid in octets
- * Returns: 0 or new PIN (if pin was %NULL) on success, -1 on unspecified
- *	failure, -2 on failure due to channel not currently available,
- *	-3 if forced channel is not supported
- */
 int wpas_p2p_connect(struct wpa_supplicant *wpa_s, const u8 *peer_addr,
 		     const char *pin, enum p2p_wps_method wps_method,
 		     int persistent_group, int auto_join, int join, int auth,
@@ -6889,13 +6835,11 @@
 	p2p_go_params(wpa_s->global->p2p, &params);
 	params.persistent_group = persistent_group;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AGO_PASSPHRASE
 		if (wpa_s->conf->ago_passphrase)
 			os_memcpy((char *)&params.passphrase, wpa_s->conf->ago_passphrase,
 					strlen(wpa_s->conf->ago_passphrase));
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	wpa_s = wpas_p2p_get_group_iface(wpa_s, 0, 1);
 	if (wpa_s == NULL)
 		return -1;
@@ -8112,8 +8056,7 @@
 			wpa_printf(MSG_ERROR, "P2P: Own oper channel update "
 				   "failed: %d", ret);
 	}
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#if defined (CONFIG_BRCM_RSDB)
+#if defined(CONFIG_BRCM_RSDB)
 	if (wpa_s->conf->changed_parameters & CFG_CHANGED_P2P_FREQ_2G_5G) {
 		wpa_s->global->p2p_pref_freq_5g = wpa_s->conf->p2p_pref_freq_5g;
 		wpa_s->global->p2p_pref_freq_2g = wpa_s->conf->p2p_pref_freq_2g;
@@ -8124,7 +8067,6 @@
 		}
 	}
 #endif /* CONFIG_BRCM_RSDB */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	if (wpa_s->conf->changed_parameters & CFG_CHANGED_P2P_PREF_CHAN) {
 		if (p2p_set_pref_chan(p2p, wpa_s->conf->num_p2p_pref_chan,
@@ -8141,13 +8083,11 @@
 
 	if (wpa_s->conf->changed_parameters & CFG_CHANGED_P2P_PASSPHRASE_LEN)
 		p2p_set_passphrase_len(p2p, wpa_s->conf->p2p_passphrase_len);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AGO_PASSPHRASE
 	if (wpa_s->conf->changed_parameters & CFG_CHANGED_AGO_PASSPHRASE) {
 		wpa_printf(MSG_ERROR, "P2P: AGO passphrase has been changed");
 	}
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/p2p_supplicant.h b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/p2p_supplicant.h
index f98c619..be878ef 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/p2p_supplicant.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/p2p_supplicant.h
@@ -41,7 +41,6 @@
 		     const u8 *group_ssid, size_t group_ssid_len);
 int wpas_p2p_handle_frequency_conflicts(struct wpa_supplicant *wpa_s,
                                           int freq, struct wpa_ssid *ssid);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_BT_WIFI_HO
 #define MAX_SSID_LEN   32
 #define MAX_PASSPHRASE_LEN 63
@@ -68,7 +67,6 @@
                         int freq, int ht40,
                         const struct p2p_channels *channels);
 #endif /* CONFIG_BRCM_BT_WIFI_HO */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 int wpas_p2p_group_add(struct wpa_supplicant *wpa_s, int persistent_group,
 		       int freq, int vht_center_freq2, int ht40, int vht,
 		       int max_oper_chwidth, int he, int edmg);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/preauth_test.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/preauth_test.c
index 998657c..de49948 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/preauth_test.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/preauth_test.c
@@ -313,11 +313,7 @@
 		return -1;
 	}
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI)
-        if (eloop_init(&wpa_s)) {
-#else
 	if (eloop_init()) {
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI */
 		wpa_printf(MSG_ERROR, "Failed to initialize event loop");
 		return -1;
 	}
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/rrm.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/rrm.c
index 31e0848..8ba3dd2 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/rrm.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/rrm.c
@@ -52,73 +52,6 @@
 	wpas_clear_beacon_rep_data(wpa_s);
 }
 
-#ifndef CONFIG_DRIVER_NL80211_IFX
-/*
- * wpas_rrm_notify_neighbor_rep - Notify received neighbor report
- * @wpa_s: Pointer to wpa_supplicant
- * @neighbor_rep: Pointer to neighbor report elements
- */
-void wpas_rrm_notify_neighbor_rep(struct wpa_supplicant *wpa_s,
-				  struct wpabuf *neighbor_rep)
-{
-	size_t len;
-	const u8 *data;
-
-	/*
-	 * Neighbor Report element (IEEE Std 802.11-2016: 9.4.2.37)
-	 * Element ID[1]
-	 * Length[1]
-	 * BSSID[6]
-	 * BSSID Information[4]
-	 * Operating Class[1]
-	 * Channel Number[1]
-	 * PHY Type[1]
-	 * Optional Subelements[variable]
-	 */
-#define NR_IE_MIN_LEN (ETH_ALEN + 4 + 1 + 1 + 1)
-
-	if (wpabuf_len(neighbor_rep) == 0) {
-		wpa_msg(wpa_s, MSG_INFO, RRM_EVENT_NEIGHBOR_REP_RXED
-			"No neighbors of the associated AP");
-		goto out;
-	}
-
-	data = wpabuf_head_u8(neighbor_rep);
-	len = wpabuf_len(neighbor_rep);
-
-	while (len >= 2 + NR_IE_MIN_LEN) {
-		const u8 *nr;
-		u8 nr_len = data[1];
-		const u8 *pos = data, *end;
-
-		if ((pos[0] != WLAN_EID_NEIGHBOR_REPORT) ||
-		    (nr_len < NR_IE_MIN_LEN) ||
-		    (2U + nr_len > len)) {
-			wpa_dbg(wpa_s, MSG_DEBUG,
-				"RRM: Invalid Neighbor Report element: "
-				"id=%u len=%zu nr_len=%u",
-				data[0], len, nr_len);
-			goto out;
-		}
-
-		pos += 2;
-		end = pos + nr_len;
-		nr = pos;
-
-		wpa_msg(wpa_s, MSG_INFO, RRM_EVENT_NEIGHBOR_REP_RXED
-			"bssid=" MACSTR
-			" info=0x%x op_class=%u chan=%u phy_type=%u",
-			MAC2STR(nr), WPA_GET_LE32(nr + ETH_ALEN),
-			nr[ETH_ALEN + 4], nr[ETH_ALEN + 5], nr[ETH_ALEN + 6]);
-
-		data = end;
-		len -= 2 + nr_len;
-	}
-
-out:
-	wpabuf_free(neighbor_rep);
-}
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 /*
  * wpas_rrm_process_neighbor_rep - Handle incoming neighbor report
@@ -135,19 +68,6 @@
 	if (report_len < 1)
 		return;
 
-#ifndef CONFIG_DRIVER_NL80211_IFX
-	if (wpa_s->rrm.notify_neighbor_rep) {
-		if (report[0] != wpa_s->rrm.next_neighbor_rep_token - 1) {
-			wpa_printf(MSG_DEBUG,
-				   "RRM: Discarding neighbor report with token "
-				   "%d (expected %d)", report[0],
-				   wpa_s->rrm.next_neighbor_rep_token - 1);
-			return;
-		}
-
-		eloop_cancel_timeout(wpas_rrm_neighbor_rep_timeout_handler,
-				     &wpa_s->rrm, NULL);
-#else /* CONFIG_DRIVER_NL80211_IFX */
 	if (report[0] != wpa_s->rrm.next_neighbor_rep_token - 1) {
 		wpa_printf(MSG_DEBUG,
 			   "RRM: Discarding neighbor report with token %d (expected %d)",
@@ -161,7 +81,6 @@
 	if (!wpa_s->rrm.notify_neighbor_rep) {
 		wpa_msg(wpa_s, MSG_INFO, "RRM: Unexpected neighbor report");
 		return;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	}
 
 	/* skipping the first byte, which is only an id (dialog token) */
@@ -174,24 +93,13 @@
 	wpa_dbg(wpa_s, MSG_DEBUG, "RRM: Notifying neighbor report (token = %d)",
 		report[0]);
 
-#ifndef CONFIG_DRIVER_NL80211_IFX
-	if (wpa_s->rrm.notify_neighbor_rep) {
-		wpa_s->rrm.notify_neighbor_rep(wpa_s->rrm.neighbor_rep_cb_ctx,
-					       neighbor_rep);
-		wpa_s->rrm.notify_neighbor_rep = NULL;
-		wpa_s->rrm.neighbor_rep_cb_ctx = NULL;
-	} else
-		wpas_rrm_notify_neighbor_rep(wpa_s, neighbor_rep);
-#else /* CONFIG_DRIVER_NL80211_IFX */
 	wpa_s->rrm.notify_neighbor_rep(wpa_s->rrm.neighbor_rep_cb_ctx,
 				       neighbor_rep);
 	wpa_s->rrm.notify_neighbor_rep = NULL;
 	wpa_s->rrm.neighbor_rep_cb_ctx = NULL;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 #if defined(__CYGWIN__) || defined(CONFIG_NATIVE_WINDOWS)
-/* Workaround different, undefined for Windows, error codes used here */
 #ifndef ENOTCONN
 #define ENOTCONN -1
 #endif
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/scan.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/scan.c
index 1e35519..a551ebb 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/scan.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/scan.c
@@ -987,7 +987,6 @@
 	}
 
 #ifdef CONFIG_P2P
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_ANDROID12
        if (wpa_s->global->p2p_go_found_external_scan &&
            (wpa_s->p2p_group_interface == P2P_GROUP_INTERFACE_CLIENT) &&
@@ -1000,7 +999,6 @@
                }
        }
 #endif /* CONFIG_ANDROID12 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	if ((wpa_s->p2p_in_provisioning || wpa_s->show_group_started) &&
 	    wpa_s->go_params && !wpa_s->conf->passive_scan) {
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/sme.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/sme.c
index f3cf6c3..d926b77 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/sme.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/sme.c
@@ -1170,14 +1170,12 @@
 		wpa_s->sme.sae.state = SAE_NOTHING;
 		wpa_s->sme.sae.send_confirm = 0;
 		wpa_s->sme.sae_group_index = 0;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef WL_SAE
 		if ((is_zero_ether_addr(wpa_s->pending_bssid) &&
 			wpa_s->wpa_state == WPA_COMPLETED)) {
 			os_memcpy(&wpa_s->pending_bssid, data->external_auth.bssid, ETH_ALEN);
 		}
 #endif /* WL_SAE */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		if (sme_handle_external_auth_start(wpa_s, data) < 0)
 			sme_send_external_auth_status(wpa_s,
 					      WLAN_STATUS_UNSPECIFIED_FAILURE);
@@ -2279,11 +2277,6 @@
 void sme_disassoc_while_authenticating(struct wpa_supplicant *wpa_s,
 				       const u8 *prev_pending_bssid)
 {
-	/*
-	 * mac80211-workaround to force deauth on failed auth cmd,
-	 * requires us to remain in authenticating state to allow the
-	 * second authentication attempt to be continued properly.
-	 */
 	wpa_dbg(wpa_s, MSG_DEBUG, "SME: Allow pending authentication "
 		"to proceed after disconnection event");
 	wpa_supplicant_set_state(wpa_s, WPA_AUTHENTICATING);
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_cli.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_cli.c
index c5252a6..8f89c78 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_cli.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_cli.c
@@ -78,14 +78,12 @@
 static void update_stations(struct wpa_ctrl *ctrl);
 static void update_ifnames(struct wpa_ctrl *ctrl);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(CONFIG_BRCM_AUTOMOTIVE) && defined(CONFIG_P2P)
 static int wpa_cli_cmd_set_interworking_ie(struct wpa_ctrl *ctrl, int argc,
 		char *argv[]);
 static int wpa_cli_cmd_p2p_iface_reset(struct wpa_ctrl *ctrl, int argc,
 		char *argv[]);
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static void usage(void)
 {
@@ -229,12 +227,8 @@
 
 static void wpa_cli_msg_cb(char *msg, size_t len)
 {
-#ifdef CONFIG_DRIVER_NL80211_IFX
 	/* For Debugging purpose */
 	printf("%s %zu\n", msg, len);
-#else
-	printf("%s\n", msg);
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 }
 
 
@@ -608,11 +602,9 @@
 		"p2p_search_delay", "mac_addr", "rand_addr_lifetime",
 		"preassoc_mac_addr", "key_mgmt_offload", "passive_scan",
 		"reassoc_same_bss_optim", "extended_key_id"
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_RSDB
 		"p2p_pref_freq_5g","p2p_pref_freq_2g",
 #endif /* CONFIG_BRCM_RSDB */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	};
 	int i, num_fields = ARRAY_SIZE(fields);
 
@@ -2711,7 +2703,6 @@
 }
 #endif /* CONFIG_INTERWORKING */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 static int wpa_cli_cmd_set_interworking_ie(struct wpa_ctrl *ctrl, int argc,
         char *argv[])
@@ -2787,7 +2778,6 @@
 	return wpa_ctrl_command(ctrl, cmd);
 }
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifdef CONFIG_HS20
 
@@ -2985,21 +2975,12 @@
 }
 
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined ANDROID || defined(BCM_LINUX_BUILD)
 static int wpa_cli_cmd_driver(struct wpa_ctrl *ctrl, int argc, char *argv[])
 {
 	return wpa_cli_cmd(ctrl, "DRIVER", 1, argc, argv);
 }
 #endif /* ANDROID || BCM_LINUX_BUILD */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-#ifdef ANDROID
-static int wpa_cli_cmd_driver(struct wpa_ctrl *ctrl, int argc, char *argv[])
-{
-	return wpa_cli_cmd(ctrl, "DRIVER", 1, argc, argv);
-}
-#endif /* ANDROID */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 
 static int wpa_cli_cmd_vendor(struct wpa_ctrl *ctrl, int argc, char *argv[])
@@ -3726,13 +3707,11 @@
 	{ "p2p_remove_client", wpa_cli_cmd_p2p_remove_client,
 	  wpa_cli_complete_p2p_peer, cli_cmd_flag_none,
 	  "<address|iface=address> = remove a peer from all groups" },
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 		{ "p2p_iface_reset", wpa_cli_cmd_p2p_iface_reset, NULL,
 		  cli_cmd_flag_none,
 		 "reset p2p group index" },
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* CONFIG_P2P */
 	{ "vendor_elem_add", wpa_cli_cmd_vendor_elem_add, NULL,
 	  cli_cmd_flag_none,
@@ -3746,7 +3725,6 @@
 	  cli_cmd_flag_none,
 	  "<frame id> <hexdump of elem(s)> = remove vendor specific IE(s) in frame(s)\n"
 	  VENDOR_ELEM_FRAME_ID },
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 		{ "get_psk", wpa_cli_cmd_get_psk,
 		  NULL, cli_cmd_flag_none,
@@ -3755,7 +3733,6 @@
 		  NULL, cli_cmd_flag_none,
 		  "get ssid of currently active p2p group/softAP" },
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifdef CONFIG_WIFI_DISPLAY
 	{ "wfd_subelem_set", wpa_cli_cmd_wfd_subelem_set, NULL,
 	  cli_cmd_flag_none,
@@ -3846,13 +3823,11 @@
 	{ "signal_monitor", wpa_cli_cmd_signal_monitor, NULL,
 	  cli_cmd_flag_none,
 	  "= set signal monitor parameters" },
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 		{ "interworking_ie", wpa_cli_cmd_set_interworking_ie, NULL,
 		  cli_cmd_flag_none,
 		 "<interworking_ie><add/del> <elements>" },
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	{ "pktcnt_poll", wpa_cli_cmd_pktcnt_poll, NULL,
 	  cli_cmd_flag_none,
 	  "= get TX/RX packet counters" },
@@ -3875,17 +3850,10 @@
 	  "<params..> = Sent unprocessed command" },
 	{ "flush", wpa_cli_cmd_flush, NULL, cli_cmd_flag_none,
 	  "= flush wpa_supplicant state" },
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined ANDROID || defined(BCM_LINUX_BUILD)
 	{ "driver", wpa_cli_cmd_driver, NULL, cli_cmd_flag_none,
 	  "<command> = driver private commands" },
 #endif /* ANDROID || BCM_LINUX_BUILD */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-#ifdef ANDROID
-	{ "driver", wpa_cli_cmd_driver, NULL, cli_cmd_flag_none,
-	  "<command> = driver private commands" },
-#endif /* ANDROID */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	{ "radio_work", wpa_cli_cmd_radio_work, NULL, cli_cmd_flag_none,
 	  "= radio_work <show/add/done>" },
 	{ "vendor", wpa_cli_cmd_vendor, NULL, cli_cmd_flag_none,
@@ -5000,11 +4968,7 @@
 	if (interactive)
 		printf("%s\n\n%s\n\n", wpa_cli_version, cli_license);
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI)
-        if (eloop_init(NULL))
-#else
 	if (eloop_init())
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI */
 		return -1;
 
 	if (global && wpa_cli_open_global_ctrl() < 0)
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_priv.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_priv.c
index c7249cc..c5d7168 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_priv.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_priv.c
@@ -1250,11 +1250,7 @@
 
 	wpa_printf(MSG_DEBUG, "wpa_priv control directory: '%s'", ctrl_dir);
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI)
-        if (eloop_init(NULL)) {
-#else
 	if (eloop_init()) {
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI */
 		wpa_printf(MSG_ERROR, "Failed to initialize event loop");
 		goto out2;
 	}
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_supplicant.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_supplicant.c
index ea82294..97b27ba 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_supplicant.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_supplicant.c
@@ -57,43 +57,26 @@
 #include "autoscan.h"
 #include "bss.h"
 #include "scan.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-#include "wapi/wapi_asue_i.h"
-#include "wapi/wapi_interface.h"
-#include "wapi/wapi_config.h"
-#ifdef ANDROID
-#include "keystore_get.h"
-#endif /* ANDROID */
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #include "offchannel.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_OKC
 #include "rsn_supp/wpa_i.h"
 #endif /* BRCM_OKC */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #include "hs20_supplicant.h"
 #include "wnm_sta.h"
 #include "wpas_kay.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-#define KEYSTORE_MESSAGE_SIZE 65535
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #include "mesh.h"
+#ifdef CONFIG_DPP
 #include "dpp_supplicant.h"
+#endif /* CONFIG_DPP */
 #ifdef CONFIG_MESH
 #include "ap/ap_config.h"
 #include "ap/hostapd.h"
 #endif /* CONFIG_MESH */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 /* Support STA+GC on DBDC, SBSC and not on SBDC. */
 #define P2P             1
 #define NON_P2P		0
 #define TIE_BREAKER     P2P
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 const char *const wpa_supplicant_version =
 "wpa_supplicant v" VERSION_STR "\n"
 "Copyright (c) 2003-2019, Jouni Malinen <j@w1.fi> and contributors";
@@ -253,13 +236,11 @@
 	wpa_supplicant_deauthenticate(wpa_s, WLAN_REASON_DEAUTH_LEAVING);
 	wpa_s->reassociate = 1;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_8_1
 	/* android commit:38e96765 wpa_supplicant(hidl):
 	 * Implement auth timeout callback */
 	wpas_notify_auth_timeout(wpa_s);
 #endif /* ABOVE_8_1 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	/*
 	 * If we timed out, the AP or the local radio may be busy.
 	 * So, wait a second until scanning again.
@@ -556,14 +537,6 @@
 	eapol_sm_register_scard_ctx(wpa_s->eapol, NULL);
 	l2_packet_deinit(wpa_s->l2);
 	wpa_s->l2 = NULL;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        l2_packet_deinit(wpa_s->l2_wapi);
-        wpa_s->l2_wapi = NULL;
-        os_free(wpa_s->wapi_scan_res);
-        wpa_s->wapi_scan_res = NULL;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (wpa_s->l2_br) {
 		l2_packet_deinit(wpa_s->l2_br);
 		wpa_s->l2_br = NULL;
@@ -807,73 +780,6 @@
 	wpa_s->keys_cleared = (u32) -1;
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-int wpa_state_to_wapi_state(enum wpa_states wpa_state)
-{
-        wpa_printf(MSG_DEBUG, "%s wpa_state : %d change to wapi_state",__FUNCTION__ ,wpa_state);
-        switch (wpa_state)
-        {
-        case WPA_DISCONNECTED:
-                return WAPI_DISCONNECTED;
-        case WPA_INACTIVE:
-                return WAPI_INACTIVE;
-        case WPA_SCANNING:
-                return WAPI_SCANNING;
-        case WPA_ASSOCIATING:
-                return WAPI_ASSOCIATING;
-        case WPA_ASSOCIATED:
-                return WAPI_ASSOCIATED;
-        case WPA_COMPLETED:
-                return WAPI_COMPLETED;
-        case WPA_INTERFACE_DISABLED:
-                return WAPI_UNDEFINED_1;
-        case WPA_AUTHENTICATING:
-                return WAPI_UNDEFINED_2;
-        default:
-                return -1;
-        }
-        return -1;
-}
-
-int wapi_state_to_wpa_state(int wapi_state)
-{
-        switch (wapi_state) {
-        case WAPI_DISCONNECTED:
-                return WPA_DISCONNECTED;
-        case WAPI_INACTIVE:
-                return WPA_INACTIVE;
-        case WAPI_SCANNING:
-                return WPA_SCANNING;
-        case WAPI_ASSOCIATING:
-                return WPA_ASSOCIATING;
-        case WAPI_ASSOCIATED:
-                return WPA_ASSOCIATED;
-        case WAPI_AUTHENICATING:
-                return WAPI_SPECIFIC;
-        case WAPI_CERT_HANDSHAKE:
-                return WAPI_SPECIFIC;
-        case WAPI_3WAY_HANDSHAKE:
-                return WPA_4WAY_HANDSHAKE;
-        case WAPI_3WAYING:
-                return WAPI_SPECIFIC;
-        case WAPI_GROUP_HANDSHAKE:
-                return WPA_GROUP_HANDSHAKE;
-        case WAPI_GROUPING:
-                return WAPI_SPECIFIC;
-        case WAPI_COMPLETED:
-                return WPA_COMPLETED;
-    case WAPI_UNDEFINED_1:
-                return WPA_INTERFACE_DISABLED;
-        case WAPI_UNDEFINED_2:
-                return WPA_AUTHENTICATING;
-        default:
-                return -1;
-        }
-        return -1;
-}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 /**
  * wpa_supplicant_state_txt - Get the connection state name as a text string
@@ -1095,7 +1001,6 @@
 		wpa_s->consecutive_conn_failures = 0;
 		wpa_s->new_connection = 0;
 		wpa_drv_set_operstate(wpa_s, 1);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef BRCM_OKC
 		if (wpa_s->current_ssid &&
 		    wpa_s->current_ssid->proactive_key_caching == 1) {
@@ -1125,7 +1030,6 @@
 			}
 		}
 #endif /* BRCM_OKC */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #ifndef IEEE8021X_EAPOL
 		wpa_drv_set_supp_port(wpa_s, 1);
 #endif /* IEEE8021X_EAPOL */
@@ -1167,12 +1071,6 @@
 	if (state == WPA_DISCONNECTED || state == WPA_INACTIVE)
 		wpa_supplicant_start_autoscan(wpa_s);
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        wpa_s->wapi_state = wpa_state_to_wapi_state(wpa_s->wpa_state);
-        wpa_printf(MSG_DEBUG, "%s wapi_state : %d\n",__FUNCTION__ ,wpa_s->wapi_state);
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	if (old_state >= WPA_ASSOCIATED && wpa_s->wpa_state < WPA_ASSOCIATED)
 		wmm_ac_notify_disassoc(wpa_s);
 
@@ -1621,17 +1519,11 @@
 		sel &= ~(WPA_KEY_MGMT_SAE | WPA_KEY_MGMT_FT_SAE);
 #endif /* CONFIG_SAE */
 #ifdef CONFIG_IEEE80211R
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifndef BRCM_VE
 	if (!(wpa_s->drv_flags & (WPA_DRIVER_FLAGS_SME |
 				  WPA_DRIVER_FLAGS_UPDATE_FT_IES)))
 		sel &= ~WPA_KEY_MGMT_FT;
 #endif /* BRCM_VE */
-#else
-	if (!(wpa_s->drv_flags & (WPA_DRIVER_FLAGS_SME |
-				  WPA_DRIVER_FLAGS_UPDATE_FT_IES)))
-		sel &= ~WPA_KEY_MGMT_FT;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* CONFIG_IEEE80211R */
 	wpa_dbg(wpa_s, MSG_DEBUG,
 		"WPA: AP key_mgmt 0x%x network profile key_mgmt 0x%x; available key_mgmt 0x%x",
@@ -2100,366 +1992,6 @@
 	return 2 + len;
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-int wapi_merge_cert_files(char *wapi_as_cert, char *wapi_user_cert, char *cert_name)
-{
-        char strBeginCert[] = "-----BEGIN CERTIFICATE-----";
-        char strEndCert[] = "-----END CERTIFICATE-----";
-        char strBeginASCert[] = "-----BEGIN ASU CERTIFICATE-----";
-        char strEndASCert[] = "-----END ASU CERTIFICATE-----";
-        char strBeginUserCert[] = "-----BEGIN USER CERTIFICATE-----";
-        char strEndUserCert[] = "-----END USER CERTIFICATE-----";
-        FILE *fpSrc;
-        FILE *fpDesc;
-        char line[512];
-        int iSearchBegin = 1;
-#ifdef ANDROID
-        int keystore = 0, length;
-        char *pCert, *pBegin, *pEnd;
-#if defined(JB_MR2) || defined(KK)
-        uint8_t *value = NULL;
-
-        if (wapi_as_cert && strncmp("keystore://", wapi_as_cert, 11) == 0) {
-                value = NULL;
-                if ((length = keystore_get(&wapi_as_cert[11], strlen(wapi_as_cert)-11, &value)) == -1) {
-                        wpa_printf(MSG_ERROR, "%s: Could not open %s\n", __FUNCTION__, wapi_as_cert);
-                        goto err;
-                }
-                keystore = 1;
-        } else
-#else
-        char value[KEYSTORE_MESSAGE_SIZE];
-
-        if (wapi_as_cert && strncmp("keystore://", wapi_as_cert, 11) == 0) {
-                memset(value, 0, KEYSTORE_MESSAGE_SIZE);
-                if ((length = keystore_get(&wapi_as_cert[11], strlen(wapi_as_cert)-11, (uint8_t**)&value)) == -1) {
-                        wpa_printf(MSG_ERROR, "%s: Could not open %s\n", __FUNCTION__, wapi_as_cert);
-                        goto err;
-                }
-                keystore = 1;
-        } else
-#endif /* JB_MR2 || KK */
-#endif /* ANDROID */
-        if ((fpSrc = fopen(wapi_as_cert, "r")) == NULL) {
-                wpa_printf(MSG_ERROR, "%s: Could not open %s\n", __FUNCTION__, wapi_as_cert);
-                goto err;
-        }
-
-        if ((fpDesc = fopen(cert_name, "w")) == NULL) {
-                wpa_printf(MSG_ERROR, "%s: Could not open %s\n", __FUNCTION__, cert_name);
-#ifdef ANDROID
-                if (!keystore)
-#endif /* ANDROID */
-                fclose(fpSrc);
-                goto err;
-        }
-
-#ifdef ANDROID
-        if (keystore) {
-                pCert = (char *)value;
-                pBegin = strstr(pCert, strBeginCert);
-                if (pBegin) {
-                        if (pBegin > pCert) {
-                                fwrite(pCert, 1, pBegin - pCert, fpDesc);
-                                pCert = pBegin;
-                                length -= (pBegin - pCert);
-                        }
-                        fwrite(strBeginASCert, 1, strlen(strBeginASCert), fpDesc);
-                        pCert += strlen(strBeginCert);
-                        length -= strlen(strBeginCert);
-                } else {
-                        wpa_printf(MSG_ERROR, "%s: Could not find begin in %s\n", __FUNCTION__, wapi_as_cert);
-                }
-                pEnd = strstr(pCert, strEndCert);
-                if (pEnd) {
-                        if (pEnd > pCert) {
-                                fwrite(pCert, 1, pEnd - pCert, fpDesc);
-                                pCert = pEnd;
-                                length -= (pEnd - pCert);
-                        }
-                        fwrite(strEndASCert, 1, strlen(strEndASCert), fpDesc);
-                        pCert += strlen(strEndCert);
-                        length -= strlen(strEndCert);
-                } else {
-                        wpa_printf(MSG_ERROR, "%s: Could not find end in %s\n", __FUNCTION__, wapi_as_cert);
-                }
-                if (length > 0) {
-                        fwrite(pCert, 1, length, fpDesc);
-                }
-        } else
-#endif /* ANDROID */
-        /* copy the AS file */
-        while ((fgets(line, sizeof(line), fpSrc)) != NULL) {
-                if (iSearchBegin == 1) {
-                        if (strstr(line, strBeginCert) != 0){
-                                fputs(strBeginASCert, fpDesc);
-                                iSearchBegin = 0;
-                        }
-                } else {
-                        if (strstr(line, strEndCert) != 0) {
-                                fputs(strEndASCert, fpDesc);
-                        } else {
-                                fputs(line, fpDesc);
-                        }
-                }
-        }
-
-#ifdef ANDROID
-#if defined(JB_MR2) || defined(KK)
-        if (NULL != value)
-                free(value);
-#endif /* JB_MR2 || KK */
-        if (!keystore)
-#endif /* ANDROID */
-        fclose(fpSrc);
-
-        /* open the user file */
-        iSearchBegin = 1;
-
-#ifdef ANDROID
-        keystore = 0;
-
-        if (wapi_user_cert && strncmp("keystore://", wapi_user_cert, 11) == 0) {
-#if defined(JB_MR2) || defined(KK)
-                value = NULL;
-                if ((length = keystore_get(&wapi_user_cert[11], strlen(wapi_user_cert)-11, &value)) == -1) {
-#else
-                memset(value, 0, KEYSTORE_MESSAGE_SIZE);
-                if ((length = keystore_get(&wapi_user_cert[11], strlen(wapi_user_cert)-11, (uint8_t**)&value)) == -1) {
-#endif /* JB_MR2 || KK */
-                        wpa_printf(MSG_ERROR, "%s: Could not open %s\n", __FUNCTION__, wapi_user_cert);
-                        fclose(fpDesc);
-                        goto err;
-                }
-                keystore = 1;
-        } else
-#endif /* ANDROID */
-        if ((fpSrc = fopen(wapi_user_cert, "r")) == NULL) {
-                wpa_printf(MSG_ERROR, "%s: Could not open %s\n", __FUNCTION__, wapi_user_cert);
-                fclose(fpDesc);
-                goto err;
-        }
-
-#ifdef ANDROID
-        if (keystore) {
-                pCert = (char *)value;
-                pBegin = strstr(pCert, strBeginCert);
-                if (pBegin) {
-                        if (pBegin > pCert) {
-                                fwrite(pCert, 1, pBegin - pCert, fpDesc);
-                                pCert = pBegin;
-                                length -= (pBegin - pCert);
-                        }
-                        fwrite(strBeginUserCert, 1, strlen(strBeginUserCert), fpDesc);
-                        pCert += strlen(strBeginCert);
-                        length -= strlen(strBeginCert);
-                } else {
-                        wpa_printf(MSG_ERROR, "%s: Could not find begin in %s\n", __FUNCTION__, wapi_user_cert);
-                }
-                pEnd = strstr(pCert, strEndCert);
-                if (pEnd) {
-                        if (pEnd > pCert) {
-                                fwrite(pCert, 1, pEnd - pCert, fpDesc);
-                                pCert = pEnd;
-                                length -= (pEnd - pCert);
-                        }
-                        fwrite(strEndUserCert, 1, strlen(strEndUserCert), fpDesc);
-                        pCert += strlen(strEndCert);
-                        length -= strlen(strEndCert);
-                } else {
-                        wpa_printf(MSG_ERROR, "%s: Could not find end in %s\n", __FUNCTION__, wapi_user_cert);
-                }
-                if (length > 0) {
-                        fwrite(pCert, 1, length, fpDesc);
-                }
-        } else
-#endif /* ANDROID */
-        /* copy the user file */
-        while ((fgets(line, sizeof(line), fpSrc)) != NULL) {
-                if (iSearchBegin == 1) {
-                        if (strstr(line, strBeginCert) != 0){
-                                fputs(strBeginUserCert, fpDesc);
-                                iSearchBegin = 0;
-                        }
-                } else {
-                        if (strstr(line, strEndCert) != 0){
-                                fputs(strEndUserCert, fpDesc);
-                        } else {
-                                fputs(line, fpDesc);
-                        }
-                }
-        }
-
-        fflush(fpDesc);
-
-#ifdef ANDROID
-        if (!keystore)
-#endif /* ANDROID */
-        fclose(fpSrc);
-        fclose(fpDesc);
-        return 0;
-
-err:
-#ifdef ANDROID
-#if defined(JB_MR2) || defined(KK)
-        if (NULL != value)
-                free(value);
-#endif /* JB_MR2 || KK */
-#endif /* ANDROID */
-        return -1;
-}
-
-/* initialize the wapi_config structure from a wpa_ssid structure */
-struct wapi_config * wapi_config_init(struct wpa_ssid *ssid, struct wpa_supplicant *wpa_s)
-{
-        struct wapi_config *config = NULL;
-        CNTAP_PARA lib_param;
-        u8 psk_type = 0;
-        struct wpa_global *eloop = (struct wpa_global *)eloop_get_user_data();
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef CONFIG_BRCM_AUTOMOTIVE
-        int check_ssid;
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
-
-        wpa_printf(MSG_DEBUG, "wapi_config_init: Enter\n");
-        if(eloop->ifaces != NULL)
-                wpa_printf(MSG_DEBUG, "eloop->iface: %p\n",eloop->ifaces);
-        //if(eloop->ifaces->next != NULL) {
-        //        eloop->ifaces = eloop->ifaces->next;
-        //        wpa_printf(MSG_DEBUG, "eloop->iface->next: %p\n",eloop->ifaces);
-       // }
-        wpa_printf(MSG_DEBUG, "Entering %s...", __FUNCTION__);
-
-        config = os_malloc(sizeof(*config));
-        if (config == NULL)
-                return NULL;
-
-        os_memset(config, 0, sizeof(*config));
-
-        /* Get Authentication and Key Management Suites */
-        config->wapi_policy = ssid->wapi;
-
-        wpa_printf(MSG_DEBUG, "wapi_policy '%d'", config->wapi_policy);
-
-        if (config->wapi_policy & 0x08)
-        {
-                wpa_printf(MSG_DEBUG, " AUTH_TYPE_WAPI");
-                lib_param.authType = AUTH_TYPE_WAPI;
-        } else if (config->wapi_policy & 0x04)
-        {
-                wpa_printf(MSG_DEBUG, " AUTH_TYPE_WAPI_PSK");
-                lib_param.authType = AUTH_TYPE_WAPI_PSK;
-        } else {
-                wpa_printf(MSG_DEBUG, " AUTH_TYPE_NONE_WAPI");
-                lib_param.authType = AUTH_TYPE_NONE_WAPI;
-        }
-
-        if (config->wapi_policy != 0)
-        {
-                config->group_cipher = WAPI_CIPHER_SMS4;
-                config->pairwise_cipher = WAPI_CIPHER_SMS4;
-        }
-
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_BRCM_AUTOMOTIVE)
-        if (ssid->bssid_set && ssid->ssid_len == 0)
-                check_ssid = 0;
-        else
-                check_ssid = 1;
-
-        if (check_ssid) {
-                config->ssid_len = ssid->ssid_len;
-                config->ssid = (u8 *)os_strdup((const char *)ssid->ssid);
-        }
-#else
-        config->ssid_len = ssid->ssid_len;
-        config->ssid = (u8 *)os_strdup((const char *)ssid->ssid);
-#endif /* CONFIG_DRIVER_NL80211_IFX && CONFIG_BRCM_AUTOMOTIVE */
-
-        wpa_hexdump_ascii(MSG_DEBUG, " SSID:", config->ssid, config->ssid_len);
-        wpa_printf(MSG_DEBUG, "SSID '%s'", config->ssid);
-
-        eloop->cert_info.config.used_cert = ssid->cert_index; /* 1:x509 2:GBW */
-        wpa_printf(MSG_DEBUG, "cert_index %d", eloop->cert_info.config.used_cert);
-        wpa_printf(MSG_DEBUG, "ssid->cert_index=%d", ssid->cert_index);
-        wpa_printf(MSG_DEBUG, "ssid->wapi_as_cert=%s", ssid->wapi_as_cert);
-        wpa_printf(MSG_DEBUG, "ssid->wapi_user_cert=%s", ssid->wapi_user_cert);
-
-        if (config->wapi_policy & 0x08) {
-                if ((ssid->wapi_as_cert) && (ssid->wapi_user_cert))
-                {
-                        wpa_printf(MSG_DEBUG, "ssid->wapi_as_cert=%s", ssid->wapi_as_cert);
-                        wpa_printf(MSG_DEBUG, "ssid->wapi_user_cert=%s", ssid->wapi_user_cert);
-
-                        wpa_printf(MSG_DEBUG, "%s: the final mixed cert filename = %s\n",
-                                   __FUNCTION__, ssid->cert_name);
-                        if (wapi_merge_cert_files(ssid->wapi_as_cert, ssid->wapi_user_cert, ssid->cert_name)) {
-                                wpa_printf(MSG_ERROR, "%s: wapi_merge_cert_files() failed, exit...\n", __FUNCTION__);
-                                wapi_config_free(config);
-                                return NULL;
-                        }
-
-                        /* merge the as.cer with user.cer to make a mixed.cer */
-                        strcpy(eloop->cert_info.config.cert_name, ssid->cert_name);
-                        wpa_printf(MSG_DEBUG, "CERT_NAME '%s'", eloop->cert_info.config.cert_name);
-                        change_cert_format(eloop->cert_info.config.cert_name,
-                                           lib_param.para.user, 2048,
-                                           lib_param.para.as, 2048);
-                }
-                else {
-                        wpa_printf(MSG_ERROR, "wapi cert files not present");
-                        wapi_config_free(config);
-                        return NULL;
-                }
-        }
-
-        if (config->wapi_policy & WAPI_KEY_MGMT_PSK)
-        { /* bit 2:PSK */
-                psk_type = ssid->psk_key_type;
-                wpa_printf(MSG_DEBUG, "%s: PSK_KEY_TYPE '%d'", __FUNCTION__, psk_type);
-                wpa_printf(MSG_DEBUG, "%s: psk (%d)", __FUNCTION__, ssid->psk_set);
-                wpa_printf(MSG_DEBUG, "%s: PSK'%s'", __FUNCTION__, ssid->psk);
-                wpa_printf(MSG_DEBUG, "%s: passphrase'%s'", __FUNCTION__, ssid->passphrase);
-
-                lib_param.para.kt = psk_type;
-                if (ssid->passphrase != NULL) {
-                        wpa_printf(MSG_DEBUG, "%s: ssid->passphrase != NULL, use ssid->passphrase:%s\n",
-                                   __FUNCTION__, ssid->passphrase);
-                        lib_param.para.kl = strlen(ssid->passphrase);
-                        memcpy(lib_param.para.kv, ssid->passphrase, lib_param.para.kl);
-                }
-                else if (ssid->psk_set) {
-                        wpa_printf(MSG_DEBUG, "%s: ssid->passphrase == NULL, use ssid->psk: %s\n",
-                                   __FUNCTION__, ssid->psk);
-                        lib_param.para.kl = os_strlen((const char *)ssid->psk);
-
-                        memcpy(lib_param.para.kv, ssid->psk, lib_param.para.kl);
-                } else {
-                        wpa_printf(MSG_ERROR, "%s: passphrase and psk both NULL. Skip assoc.\n",
-                                   __FUNCTION__);
-                        wapi_config_free(config);
-                        return NULL;
-                }
-        }
-
-        /* do it after the wpa_s has been attached to global */
-        if (WAI_CNTAPPARA_SET(&lib_param, wpa_s->ifname) != 0) {
-                wpa_printf(MSG_DEBUG, "%s: WAI_CNTAPPARA_SET error\n", __FUNCTION__);
-                wapi_config_free(config);
-                if ((config->wapi_policy & 0x08) &&
-                    (ssid->wapi_as_cert) &&
-                    (ssid->wapi_user_cert)) {
-                        wpa_msg(eloop->ifaces, MSG_INFO, "WAPI: certificate initialization failed");
-                }
-                return NULL;
-        }
-
-        wpa_printf(MSG_DEBUG, "%s: leave\n", __FUNCTION__);
-        return config;
-}
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static int wpas_valid_bss(struct wpa_supplicant *wpa_s,
 			  struct wpa_bss *test_bss)
@@ -2584,7 +2116,6 @@
 	return wpas_update_random_addr(wpa_s, wpa_s->conf->preassoc_mac_addr);
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 /* Support STA+GC on DBDC, SBSC and not on SBDC. */
 int sta_p2p_check(struct wpa_supplicant *wpa_s, struct wpa_bss *bss,struct wpa_ssid *ssid)
 {
@@ -2697,7 +2228,6 @@
 	}
 	return 1;
 }
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 static void wpa_s_setup_sae_pt(struct wpa_config *conf, struct wpa_ssid *ssid)
 {
@@ -2773,13 +2303,11 @@
 	wpa_s->own_disconnect_req = 0;
 	wpa_s->own_reconnect_req = 0;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 /* Support STA+GC on DBDC, SBSC and not on SBDC. */
 	if(wpa_s->global->rsdb_flag == 1) {
 		if(sta_p2p_check(wpa_s,bss,ssid) == -1)
 		return;
 	}
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	/*
 	 * If we are starting a new connection, any previously pending EAPOL
 	 * RX cannot be valid anymore.
@@ -4077,13 +3605,6 @@
 
 static void wpas_start_assoc_cb(struct wpa_radio_work *work, int deinit)
 {
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	static u8 ssid_buf[SSID_MAX_LEN+1];
-        u8 *wapi_ie;
-        u8 wapi_ie_len;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	struct wpa_connect_work *cwork = work->ctx;
 	struct wpa_bss *bss = cwork->bss;
 	struct wpa_ssid *ssid = cwork->ssid;
@@ -4180,133 +3701,6 @@
 		wpa_supplicant_cancel_sched_scan(wpa_s);
 
 	wpa_supplicant_cancel_scan(wpa_s);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        if ( (ssid->wapi) || (ssid->proto & WPA_PROTO_WAPI) || (ssid->key_mgmt == WPA_KEY_MGMT_WAPI_PSK ) ||
-                (ssid->key_mgmt == WPA_KEY_MGMT_WAPI_CERT)) {
-                /* associating to a WAPI network */
-                wpa_printf(MSG_DEBUG, "[WAPI] ssid->wapi %d "
-                        "ssid->proto %d ssid->key_mgmt %d \n",
-                        ssid->wapi, ssid->proto, ssid->key_mgmt);
-
-                if (ssid->wapi == 0) {
-                        if (ssid->key_mgmt == WPA_KEY_MGMT_WAPI_PSK) {
-                                ssid->wapi = 7;
-                        }
-                        else if (ssid->key_mgmt == WPA_KEY_MGMT_WAPI_CERT) {
-                                ssid->wapi = 11;
-                        }
-                        else {
-                                wpa_printf(MSG_ERROR, "[WAPI] Unknown key mgmt type. Abort assoc.");
-                                wpas_connect_work_done(wpa_s);
-                                return;
-                        }
-                }
-                if (ssid->key_mgmt == WPA_KEY_MGMT_WAPI_PSK) {
-                                params.key_mgmt_suite = WPA_KEY_MGMT_WAPI_PSK;
-                } else if (ssid->key_mgmt == WPA_KEY_MGMT_WAPI_CERT) {
-                                params.key_mgmt_suite = WPA_KEY_MGMT_WAPI_CERT;
-                } else {
-                        params.key_mgmt_suite = WPA_KEY_MGMT_NONE;
-                }
-
-                wpa_s->wapi_conf = wapi_config_init(ssid, wpa_s);
-                if (wpa_s->wapi_conf == NULL) {
-                        wpa_printf(MSG_ERROR, "[WAPI] Initialize wapi_conf failed. Abort assoc.\n");
-                        wpas_connect_work_done(wpa_s);
-                        return;
-                }
-                if (bss) {
-                        u8 *ie = (u8 *)wpa_bss_get_ie(bss, WLAN_EID_SSID);
-                        if(ie) {
-                                wpa_printf(MSG_DEBUG, "[WAPI] WLAN_EID_SSID Get ie: "
-                                        "[%02x][%02x][%02x][%02x][%02x][%02x][%02x][%02x][%02x][%02x]\n",
-                                           ie[0], ie[1], ie[2], ie[3], ie[4],
-                                           ie[5], ie[6], ie[7], ie[8], ie[9] );
-
-                                wpa_printf(MSG_DEBUG, "[WAPI] bss ie[1]=%d\n", ie[1]);
-                                params.bssid = bss->bssid;
-                                params.ssid = ssid_buf;
-
-                                if ( ie[1] >  SSID_MAX_LEN ) {
-                                        wpa_printf(MSG_ERROR, "[WAPI] ssid length is over %d, strip it!", SSID_MAX_LEN);
-                                }
-
-                                snprintf((char *) params.ssid,
-                                        ((ie[1]>SSID_MAX_LEN)? SSID_MAX_LEN:ie[1])+1, "%s",
-                                        ie ? wpa_ssid_txt(ie + 2, ie[1]) : "");
-
-
-                                params.ssid_len = os_strlen((const char *)params.ssid);
-
-                                params.freq.freq= bss->freq;
-                                wpa_printf(MSG_DEBUG, "[WAPI] params.ssid=%s\n", params.ssid);
-                                wpa_printf(MSG_DEBUG, "[WAPI] params.bssid=%s\n", params.bssid);
-                                wpa_printf(MSG_DEBUG, "[WAPI] params.key_mgmt=0x%x\n", params.key_mgmt_suite);
-                                wpa_printf(MSG_DEBUG, "[WAPI] bss done\n");
-                                wpa_sm_set_ap_wapi_ie(wpa_s->wpa, ie, ie ? 2 + ie[1] : 0);
-                        }
-                }
-                else {
-                        params.ssid = ssid->ssid;
-                        params.ssid_len = ssid->ssid_len;
-                }
-
-                if (ssid->mode == 1 && ssid->frequency > 0 && params.freq.freq == 0) {
-                        params.freq.freq = ssid->frequency; /* Initial channel for IBSS */
-                }
-                wpa_printf(MSG_DEBUG, "%s: params.freq=%d.\n", __FUNCTION__, params.freq.freq);
-                params.mode = ssid->mode;
-                wpa_printf(MSG_DEBUG, "%s: params.mode=%d...\n", __FUNCTION__, params.mode);
-
-                if (bss) {
-                        wpa_s->ap_wapi_ie_len =bss->wapi_ie_len;
-                        if (bss->wapi_ie_len) {
-                                wpa_printf(MSG_DEBUG, "%s: bss->wapi_ie_len..\n", __FUNCTION__);
-                                memcpy(wpa_s->ap_wapi_ie, wpa_bss_get_ie(bss, WLAN_EID_WAPI), bss->wapi_ie_len);
-                                wpa_hexdump(MSG_DEBUG, "wpa_s->ap_wapi_ie", wpa_s->ap_wapi_ie, wpa_s->ap_wapi_ie_len);
-                        }
-                }
-
-                /* set wpa_s->assoc_wapi_ie and wpa_s->assoc_wapi_ie */
-                params.wpa_ie_len = wpa_s->assoc_wapi_ie_len;
-                wpa_printf(MSG_DEBUG, "%s: params.wpa_ie_len=%d\n",
-                        __FUNCTION__, (int)params.wpa_ie_len);
-                /* to do: do I have to manually copy the contents into params.wpa_ie? */
-                params.wpa_ie = wpa_s->assoc_wapi_ie;
-
-                wpa_printf(MSG_DEBUG, "wapi_ie: [%02x][%02x][%02x][%02x]\n",
-                        params.wpa_ie[0], params.wpa_ie[1], params.wpa_ie[2], params.wpa_ie[3]);
-
-                if(bss) {
-                        u8 *ap_wapi_ie = (u8 *)wpa_bss_get_ie(bss, WLAN_EID_WAPI);
-                        if(ap_wapi_ie) {
-                                params.ap_wapi_ie = ap_wapi_ie;
-                                params.ap_wapi_ie_len = ap_wapi_ie ? ap_wapi_ie[1] + 2: 0;
-                                wpa_printf(MSG_DEBUG, "%s: params.ap_wapi_ie_len = %zu\n", __FUNCTION__,
-                                        params.ap_wapi_ie_len);
-                                wpa_printf(MSG_DEBUG, "%s: params.ap_wapi_ie_len: [%02x][%02x][%02x][%02x]\n",
-                            __FUNCTION__, params.ap_wapi_ie[0], params.ap_wapi_ie[1],
-                            params.ap_wapi_ie[2], params.ap_wapi_ie[3]);
-                        }
-                }
-               if (!memcmp(wpa_s->bssid, "\x00\x00\x00\x00\x00\x00", ETH_ALEN)) {
-
-                        /* Timeout for IEEE 802.11 authentication and association */
-                        wpa_supplicant_req_auth_timeout(wpa_s, 20, 0);
-
-                        wpa_supplicant_set_state(wpa_s, WPA_ASSOCIATING);
-                        if (wpa_drv_associate(wpa_s, &params)) {
-                                wpas_connection_failed(wpa_s, wpa_s->pending_bssid);
-                                wpa_printf(MSG_ERROR, "[WAPI] wpa_drv_associate() failed\n");
-                        }
-                } else {
-                        wpa_printf(MSG_ERROR, "[WAPI] Skipping drv_associate call for wapi");
-                }
-        }
-        else {
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	/* Starting new association, so clear the possibly used WPA IE from the
 	 * previous association. */
@@ -4505,12 +3899,7 @@
 	    (params.key_mgmt_suite == WPA_KEY_MGMT_IEEE8021X ||
 	     params.key_mgmt_suite == WPA_KEY_MGMT_IEEE8021X_SHA256 ||
 	     params.key_mgmt_suite == WPA_KEY_MGMT_IEEE8021X_SUITE_B ||
-#ifndef CONFIG_DRIVER_NL80211_IFX
-	     params.key_mgmt_suite == WPA_KEY_MGMT_IEEE8021X_SUITE_B_192 ||
-	     params.key_mgmt_suite == WPA_KEY_MGMT_FT_IEEE8021X))
-#else /* CONFIG_DRIVER_NL80211_IFX */
 	     params.key_mgmt_suite == WPA_KEY_MGMT_IEEE8021X_SUITE_B_192))
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		params.req_handshake_offload = 1;
 
 	if (wpa_s->conf->key_mgmt_offload) {
@@ -4668,7 +4057,7 @@
 			timeout = ssid->mode == WPAS_MODE_IBSS ? 10 : 5;
 		} else if (wpa_s->conf->ap_scan == 1) {
 			/* give IBSS a bit more time */
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(CONFIG_SAE)
+#if defined(CONFIG_SAE)
 			timeout = ssid->mode == WPAS_MODE_IBSS ? 20 : 25;
 #else
 			timeout = ssid->mode == WPAS_MODE_IBSS ? 20 : 10;
@@ -4692,11 +4081,6 @@
 		 */
 		eapol_sm_invalidate_cached_session(wpa_s->eapol);
 	}
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        }
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	old_ssid = wpa_s->current_ssid;
 	wpa_s->current_ssid = ssid;
 
@@ -5667,12 +5051,7 @@
 	    eapol_sm_rx_eapol(wpa_s->eapol, src_addr, buf, len) > 0)
 		return;
 	wpa_drv_poll(wpa_s);
-#ifndef CONFIG_DRIVER_NL80211_IFX
-	if (!(wpa_key_mgmt_wpa_psk(wpa_s->key_mgmt) &&
-	      (wpa_s->drv_flags & WPA_DRIVER_FLAGS_4WAY_HANDSHAKE_PSK)))
-#else /* CONFIG_DRIVER_NL80211_IFX */
 	if (!(wpa_s->drv_flags & WPA_DRIVER_FLAGS_4WAY_HANDSHAKE_PSK))
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		wpa_sm_rx_eapol(wpa_s->wpa, src_addr, buf, len);
 	else if (wpa_key_mgmt_wpa_ieee8021x(wpa_s->key_mgmt)) {
 		/*
@@ -5698,18 +5077,6 @@
 	if ((!wpa_s->p2p_mgmt ||
 	     !(wpa_s->drv_flags & WPA_DRIVER_FLAGS_DEDICATED_P2P_DEVICE)) &&
 	    !(wpa_s->drv_flags & WPA_DRIVER_FLAGS_P2P_DEDICATED_INTERFACE)) {
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-                wpa_printf(MSG_DEBUG, "%s : wpa_s->driver->send_eapol ",__FUNCTION__);
-
-		l2_packet_deinit(wpa_s->l2_wapi);
-                wpa_s->l2_wapi = l2_packet_init(wpa_s->ifname,
-                                                wpa_drv_get_mac_addr(wpa_s),
-                                                ETH_P_WAI,
-                                                wapi_asue_rx_wai, wpa_s, 0);
-                wpa_printf(MSG_DEBUG, "wpa_s->l2_wapi = %p ", wpa_s->l2_wapi);
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		l2_packet_deinit(wpa_s->l2);
 		wpa_s->l2 = l2_packet_init(wpa_s->ifname,
 					   wpa_drv_get_mac_addr(wpa_s),
@@ -5717,11 +5084,7 @@
 					   wpas_eapol_needs_l2_packet(wpa_s) ?
 					   wpa_supplicant_rx_eapol : NULL,
 					   wpa_s, 0);
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI)
-                if (!(wpa_s->l2 && wpa_s->l2_wapi))
-#else
 		if (wpa_s->l2 == NULL)
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI */
 			return -1;
 
 		if (l2_packet_set_packet_filter(wpa_s->l2,
@@ -5734,42 +5097,11 @@
 				"Failed to get own L2 address");
 			return -1;
 		}
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI)
-	} else {
-                const u8 *addr = wpa_drv_get_mac_addr(wpa_s);
-                if (addr)
-                        os_memcpy(wpa_s->own_addr, addr, ETH_ALEN);
-                wpa_printf(MSG_DEBUG, "%s : wpa_s->driver->send_eapol ", __FUNCTION__);
-
-                if (!wpa_s->p2p_mgmt) {
-			l2_packet_deinit(wpa_s->l2_wapi);
-                        wpa_s->l2_wapi = l2_packet_init(wpa_s->ifname,
-                                                wpa_drv_get_mac_addr(wpa_s),
-                                                ETH_P_WAI,
-                                                wapi_asue_rx_wai, wpa_s, 0);
-                        wpa_printf(MSG_DEBUG, "wpa_s->l2_wapi = %p ", wpa_s->l2_wapi);
-
-                        wpa_s->l2 = l2_packet_init(wpa_s->ifname,
-                                           wpa_drv_get_mac_addr(wpa_s),
-                                           ETH_P_EAPOL,
-                                           wpa_supplicant_rx_eapol, wpa_s, 0);
-                        if ( !(wpa_s->l2 && wpa_s->l2_wapi) )
-                                return -1;
-                }
-        }
-        if (wpa_s->l2_wapi && l2_packet_get_own_addr(wpa_s->l2_wapi, wpa_s->wapi_own_addr)) {
-                wpa_printf(MSG_ERROR, "Failed to get own WAPI L2 address");
-                return -1;
-        }
-        wpa_printf(MSG_ERROR, "Own WAPI MAC address: " MACSTR,
-                MAC2STR(wpa_s->wapi_own_addr));
-#else
 	} else {
 		const u8 *addr = wpa_drv_get_mac_addr(wpa_s);
 		if (addr)
 			os_memcpy(wpa_s->own_addr, addr, ETH_ALEN);
 	}
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI */
 
 	wpa_sm_set_own_addr(wpa_s->wpa, wpa_s->own_addr);
 	wpas_wps_update_mac_addr(wpa_s);
@@ -5963,12 +5295,6 @@
 	wpa_s->p2pdev = wpa_s->parent;
 	wpa_s->sched_scanning = 0;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        wpa_s->ap_wapi_ie_len = 0;
-        wpa_s->assoc_wapi_ie_len = 0;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	dl_list_init(&wpa_s->bss_tmp_disallowed);
 	dl_list_init(&wpa_s->fils_hlp_req);
 #ifdef CONFIG_TESTING_OPTIONS
@@ -7162,20 +6488,6 @@
 		wpa_s->confname = os_strdup(iface->confname);
 #endif /* CONFIG_BACKEND_FILE */
 		wpa_s->conf = wpa_config_read(wpa_s->confname, NULL);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-                wpa_printf(MSG_ERROR, "interface  %s\n",iface->ifname);
-                if ((!strncmp(iface->ifname,"eth",3) || !strncmp(iface->ifname,"wlan",4))
-                        && !wpa_s->global->wapi_initialized) {
-                        wpa_s->global->wapi_initialized = 1;
-                        wpa_printf(MSG_ERROR, " WIFI_lib_init WIFI_lib_init WIFI_lib_init WIFI_lib_init \n");
-                        if (WIFI_lib_init()) {
-                                wpa_printf(MSG_ERROR, "##### Failed to initialize WAPI lib, exit #####\n");
-                                return -1;
-                        }
-                }
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 		if (wpa_s->conf == NULL) {
 			wpa_printf(MSG_ERROR, "Failed to read or parse "
 				   "configuration '%s'.", wpa_s->confname);
@@ -7723,7 +7035,6 @@
 		return NULL;
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 	/* Notify the control interfaces about new iface */
 	if (wpas_notify_iface_added(wpa_s)) {
 		wpa_supplicant_deinit_iface(wpa_s, 1, 0);
@@ -7736,28 +7047,14 @@
 		for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next)
 			wpas_notify_network_added(wpa_s, ssid);
 	}
-#else /* CONFIG_DRIVER_NL80211_IFX */
-	if (iface->p2p_mgmt == 0) {
-		/* Notify the control interfaces about new iface */
-		if (wpas_notify_iface_added(wpa_s)) {
-			wpa_supplicant_deinit_iface(wpa_s, 1, 0);
-			return NULL;
-		}
-
-		for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next)
-			wpas_notify_network_added(wpa_s, ssid);
-	}
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	wpa_s->next = global->ifaces;
 	global->ifaces = wpa_s;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined CONFIG_BRCM_RSDB
 		wpa_s->conf->p2p_pref_freq_5g = global->p2p_pref_freq_5g;
 		wpa_s->conf->p2p_pref_freq_2g = global->p2p_pref_freq_2g;
 #endif /* CONFIG_BRCM_RSDB */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	wpa_dbg(wpa_s, MSG_DEBUG, "Added interface %s", wpa_s->ifname);
 	wpa_supplicant_set_state(wpa_s, WPA_DISCONNECTED);
 
@@ -7799,12 +7096,6 @@
 	struct wpa_supplicant *parent = wpa_s->parent;
 #endif /* CONFIG_MESH */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-        if (wpa_s->key_mgmt == WPA_KEY_MGMT_WAPI_PSK)
-                wapiap_lib_deinitialize(wpa_s->ifname);
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	/* Remove interface from the global list of interfaces */
 	prev = global->ifaces;
 	if (prev == wpa_s) {
@@ -8026,11 +7317,7 @@
 
 	wpa_printf(MSG_DEBUG, "wpa_supplicant v%s", VERSION_STR);
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(WAPI)
-        if (eloop_init(global)) {
-#else
 	if (eloop_init()) {
-#endif /* CONFIG_DRIVER_NL80211_IFX && WAPI */
 		wpa_printf(MSG_ERROR, "Failed to initialize event loop");
 		wpa_supplicant_deinit(global);
 		return NULL;
@@ -8135,11 +7422,6 @@
 #ifdef CONFIG_WIFI_DISPLAY
 	wifi_display_deinit(global);
 #endif /* CONFIG_WIFI_DISPLAY */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-	WIFI_lib_exit();
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	while (global->ifaces)
 		wpa_supplicant_remove_iface(global, global->ifaces, 1);
@@ -8322,7 +7604,6 @@
 		return;
 	}
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef ABOVE_10
 	if (wpa_s->auto_reconnect_disabled) {
 		wpa_dbg(wpa_s, MSG_DEBUG, "Ignore connection failure "
@@ -8330,7 +7611,6 @@
 		return;
 	}
 #endif /* ABOVE_10 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	/*
 	 * Add the failed BSSID into the blacklist and speed up next scan
 	 * attempt if there could be other APs that could accept association.
@@ -8440,8 +7720,8 @@
 }
 
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#if defined(CONFIG_CTRL_IFACE) || defined(CONFIG_CTRL_IFACE_DBUS_NEW) || defined (CONFIG_CTRL_IFACE_HIDL)
+#if defined(CONFIG_CTRL_IFACE) || defined(CONFIG_CTRL_IFACE_DBUS_NEW) || \
+	defined(CONFIG_CTRL_IFACE_HIDL)
 int wpa_supplicant_ctrl_iface_ctrl_rsp_handle(struct wpa_supplicant *wpa_s,
 					      struct wpa_ssid *ssid,
 					      const char *field,
@@ -8572,104 +7852,6 @@
 #endif /* IEEE8021X_EAPOL */
 }
 #endif /* CONFIG_CTRL_IFACE || CONFIG_CTRL_IFACE_DBUS_NEW || CONFIG_CTRL_IFACE_HIDL */
-#else /* CONFIG_DRIVER_NL80211_IFX */
-#if defined(CONFIG_CTRL_IFACE) || defined(CONFIG_CTRL_IFACE_DBUS_NEW)
-int wpa_supplicant_ctrl_iface_ctrl_rsp_handle(struct wpa_supplicant *wpa_s,
-					      struct wpa_ssid *ssid,
-					      const char *field,
-					      const char *value)
-{
-#ifdef IEEE8021X_EAPOL
-	struct eap_peer_config *eap = &ssid->eap;
-
-	wpa_printf(MSG_DEBUG, "CTRL_IFACE: response handle field=%s", field);
-	wpa_hexdump_ascii_key(MSG_DEBUG, "CTRL_IFACE: response value",
-			      (const u8 *) value, os_strlen(value));
-
-	switch (wpa_supplicant_ctrl_req_from_string(field)) {
-	case WPA_CTRL_REQ_EAP_IDENTITY:
-		os_free(eap->identity);
-		eap->identity = (u8 *) os_strdup(value);
-		eap->identity_len = os_strlen(value);
-		eap->pending_req_identity = 0;
-		if (ssid == wpa_s->current_ssid)
-			wpa_s->reassociate = 1;
-		break;
-	case WPA_CTRL_REQ_EAP_PASSWORD:
-		bin_clear_free(eap->password, eap->password_len);
-		eap->password = (u8 *) os_strdup(value);
-		eap->password_len = os_strlen(value);
-		eap->pending_req_password = 0;
-		if (ssid == wpa_s->current_ssid)
-			wpa_s->reassociate = 1;
-		break;
-	case WPA_CTRL_REQ_EAP_NEW_PASSWORD:
-		bin_clear_free(eap->new_password, eap->new_password_len);
-		eap->new_password = (u8 *) os_strdup(value);
-		eap->new_password_len = os_strlen(value);
-		eap->pending_req_new_password = 0;
-		if (ssid == wpa_s->current_ssid)
-			wpa_s->reassociate = 1;
-		break;
-	case WPA_CTRL_REQ_EAP_PIN:
-		str_clear_free(eap->cert.pin);
-		eap->cert.pin = os_strdup(value);
-		eap->pending_req_pin = 0;
-		if (ssid == wpa_s->current_ssid)
-			wpa_s->reassociate = 1;
-		break;
-	case WPA_CTRL_REQ_EAP_OTP:
-		bin_clear_free(eap->otp, eap->otp_len);
-		eap->otp = (u8 *) os_strdup(value);
-		eap->otp_len = os_strlen(value);
-		os_free(eap->pending_req_otp);
-		eap->pending_req_otp = NULL;
-		eap->pending_req_otp_len = 0;
-		break;
-	case WPA_CTRL_REQ_EAP_PASSPHRASE:
-		str_clear_free(eap->cert.private_key_passwd);
-		eap->cert.private_key_passwd = os_strdup(value);
-		eap->pending_req_passphrase = 0;
-		if (ssid == wpa_s->current_ssid)
-			wpa_s->reassociate = 1;
-		break;
-	case WPA_CTRL_REQ_SIM:
-		str_clear_free(eap->external_sim_resp);
-		eap->external_sim_resp = os_strdup(value);
-		eap->pending_req_sim = 0;
-		break;
-	case WPA_CTRL_REQ_PSK_PASSPHRASE:
-		if (wpa_config_set(ssid, "psk", value, 0) < 0)
-			return -1;
-		ssid->mem_only_psk = 1;
-		if (ssid->passphrase)
-			wpa_config_update_psk(ssid);
-		if (wpa_s->wpa_state == WPA_SCANNING && !wpa_s->scanning)
-			wpa_supplicant_req_scan(wpa_s, 0, 0);
-		break;
-	case WPA_CTRL_REQ_EXT_CERT_CHECK:
-		if (eap->pending_ext_cert_check != PENDING_CHECK)
-			return -1;
-		if (os_strcmp(value, "good") == 0)
-			eap->pending_ext_cert_check = EXT_CERT_CHECK_GOOD;
-		else if (os_strcmp(value, "bad") == 0)
-			eap->pending_ext_cert_check = EXT_CERT_CHECK_BAD;
-		else
-			return -1;
-		break;
-	default:
-		wpa_printf(MSG_DEBUG, "CTRL_IFACE: Unknown field '%s'", field);
-		return -1;
-	}
-
-	return 0;
-#else /* IEEE8021X_EAPOL */
-	wpa_printf(MSG_DEBUG, "CTRL_IFACE: IEEE 802.1X not included");
-	return -1;
-#endif /* IEEE8021X_EAPOL */
-}
-#endif /* CONFIG_CTRL_IFACE || CONFIG_CTRL_IFACE_DBUS_NEW */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 
 int wpas_network_disabled(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid)
@@ -8986,7 +8168,6 @@
 				WPA_FREQ_USED_BY_P2P_CLIENT :
 				WPA_FREQ_USED_BY_INFRA_STATION;
 		}
-#ifdef CONFIG_DRIVER_NL80211_IFX
 /* Support STA+GC on DBDC and SBDC */
 		else if (ifs->current_ssid->mode == WPAS_MODE_AP) {
 			freqs_data[i].flags |= WPA_FREQ_USED_BY_SOFTAP;
@@ -8994,7 +8175,6 @@
 		else if (ifs->current_ssid->mode == WPAS_MODE_P2P_GO) {
 			freqs_data[i].flags |= WPA_FREQ_USED_BY_P2P_GO;
 		}
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	}
 
 	dump_freq_data(wpa_s, "completed iteration", freqs_data, idx);
@@ -9384,7 +8564,6 @@
 	return scan_res;
 }
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
 void wpas_get_chwidth_params(struct wpa_supplicant *wpa_s, int *ht40, int *vht)
 {
@@ -9407,4 +8586,3 @@
 	}
 }
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_supplicant_conf.mk b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_supplicant_conf.mk
index 4d4aafc..4293976 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_supplicant_conf.mk
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_supplicant_conf.mk
@@ -18,7 +18,6 @@
 LOCAL_MODULE_TAGS := optional
 LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc/wifi
 
-
 include $(BUILD_SYSTEM)/base_rules.mk
 
 WPA_SUPPLICANT_CONF_TEMPLATE := $(LOCAL_PATH)/wpa_supplicant_template.conf
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_supplicant_i.h b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_supplicant_i.h
index 4c4f02f..4728c12 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_supplicant_i.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_supplicant_i.h
@@ -5,11 +5,6 @@
  * This software may be distributed under the terms of the BSD license.
  * See README for more details.
  */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef BRCM_FEATURES_COPYRIGHT
-/* Copyright (c) 2012-2013, Broadcom Corporation */
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 #ifndef WPA_SUPPLICANT_I_H
 #define WPA_SUPPLICANT_I_H
@@ -20,12 +15,6 @@
 #include "common/sae.h"
 #include "common/wpa_ctrl.h"
 #include "wps/wps_defs.h"
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-#include "wapi_asue.h"
-#include "wapi_config.h"
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #include "config_ssid.h"
 #include "wmm_ac.h"
 
@@ -39,13 +28,8 @@
 extern const char *const wpa_supplicant_full_license5;
 #endif /* CONFIG_NO_STDOUT_DEBUG */
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if !defined(OREO) && !defined(PIE) && !defined(ABOVE_10)
-#ifdef WAPI
-struct wapi_asue_st *wpa_s;
 #endif
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 struct wpa_sm;
 struct wpa_supplicant;
 struct ibss_rsn;
@@ -299,20 +283,11 @@
 	struct wpa_params params;
 	struct ctrl_iface_global_priv *ctrl_iface;
 	struct wpas_dbus_priv *dbus;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_HIDL
 	struct wpas_hidl_priv *hidl;
 #endif
-#else
-	struct wpas_binder_priv *binder;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	void **drv_priv;
 	size_t drv_count;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        struct _asue_cert_info cert_info;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	struct os_time suspend_time;
 	struct p2p_data *p2p;
 	struct wpa_supplicant *p2p_init_wpa_s;
@@ -323,11 +298,9 @@
 	struct dl_list p2p_srv_bonjour; /* struct p2p_srv_bonjour */
 	struct dl_list p2p_srv_upnp; /* struct p2p_srv_upnp */
 	int p2p_disabled;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined CONFIG_BRCM_RSDB
 		int p2p_pref_freq_5g, p2p_pref_freq_2g;
 #endif /* CONFIG_BRCM_RSDB */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	int cross_connection;
 	int p2p_long_listen; /* remaining time in long Listen state in ms */
 	struct wpa_freq_range_list p2p_disallow_freq;
@@ -342,11 +315,9 @@
 	unsigned int p2p_24ghz_social_channels:1;
 	unsigned int pending_p2ps_group:1;
 	unsigned int pending_group_iface_for_p2ps:1;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_ANDROID12
 	unsigned int p2p_go_found_external_scan:1;
 #endif /* CONFIG_ANDROID12 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	unsigned int pending_p2ps_group_freq;
 
 #ifdef CONFIG_WIFI_DISPLAY
@@ -356,13 +327,8 @@
 #endif /* CONFIG_WIFI_DISPLAY */
 
 	struct psk_list_entry *add_psk; /* From group formation */
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        unsigned int wapi_initialized;
-#endif /* WAPI */
 /* Support STA+GC on DBDC, SBSC and not on SBDC. */
 	int rsdb_flag;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 };
 
 
@@ -459,11 +425,9 @@
 
 #define WPA_FREQ_USED_BY_INFRA_STATION BIT(0)
 #define WPA_FREQ_USED_BY_P2P_CLIENT BIT(1)
-#ifdef CONFIG_DRIVER_NL80211_IFX
 /* Support STA+GC on DBDC, SBSC and not on SBDC. */
 #define WPA_FREQ_USED_BY_P2P_GO		BIT(2)
 #define WPA_FREQ_USED_BY_SOFTAP		BIT(3)
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 struct wpa_used_freq_data {
 	int freq;
@@ -581,23 +545,12 @@
 	struct wpa_supplicant *p2pdev;
 	struct wpa_supplicant *next;
 	struct l2_packet_data *l2;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        struct l2_packet_data *l2_wapi;
-        struct wpa_scan_results *wapi_scan_res;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	struct l2_packet_data *l2_br;
 	struct os_reltime roam_start;
 	struct os_reltime roam_time;
 	struct os_reltime session_start;
 	struct os_reltime session_length;
 	unsigned char own_addr[ETH_ALEN];
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        unsigned char wapi_own_addr[ETH_ALEN];
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	unsigned char perm_addr[ETH_ALEN];
 	char ifname[100];
 #ifdef CONFIG_MATCH_IFACE
@@ -613,11 +566,9 @@
 #ifdef CONFIG_CTRL_IFACE_BINDER
 	const void *binder_object_key;
 #endif /* CONFIG_CTRL_IFACE_BINDER */
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_CTRL_IFACE_HIDL
 	const void *hidl_object_key;
 #endif /* CONFIG_CTRL_IFACE_HIDL */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	char bridge_ifname[16];
 
 	char *confname;
@@ -625,11 +576,9 @@
 
 	struct wpa_config *conf;
 	int countermeasures;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_BRCM_AUTOMOTIVE
         int rx_freq;
 #endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	struct os_reltime last_michael_mic_error;
 	u8 bssid[ETH_ALEN];
 	u8 pending_bssid[ETH_ALEN]; /* If wpa_state == WPA_ASSOCIATING, this
@@ -810,32 +759,6 @@
 	unsigned int suitable_network;
 	unsigned int no_suitable_network;
 
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI
-        struct wapi_config *wapi_conf;
-        int wai_received;
-        struct wapi_state_machine *wapi_sm;
-        int ctrl_sock; /* UNIX domain socket for control interface or -1 if
-                        * not used */
-        int cgi_sock; /* UNIX domain socket for control interface or -1 if
-                        * not used */
-        int rxfragstamp;
-        struct wapi_rxfrag *rxfrag;
-        u16 rxseq;
-        u16 txseq;
-
-
-        int wapi_state;
-        unsigned char last_wai_src[ETH_ALEN];
-        u8 pad;
-        u8 flag;
-        struct _resendbuf_st *buf;
-        u8 assoc_wapi_ie[256]; /* Own WAPI/RSN IE from (Re)AssocReq */
-        u8 ap_wapi_ie[256];
-        u8 ap_wapi_ie_len;
-        u8 assoc_wapi_ie_len;
-#endif /* WAPI */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	u64 drv_flags;
 	u64 drv_flags2;
 	unsigned int drv_enc;
@@ -887,19 +810,15 @@
 	unsigned int connection_ht:1;
 	unsigned int connection_vht:1;
 	unsigned int connection_he:1;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(CONFIG_ANDROID11) || defined(CONFIG_ANDROID12)
 	unsigned int connection_max_nss_rx:4;
 	unsigned int connection_max_nss_tx:4;
 	unsigned int connection_channel_bandwidth:5;
 #endif /* defined(CONFIG_ANDROID11) || defined(CONFIG_ANDROID12) */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	unsigned int disable_mbo_oce:1;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_ANDROID12
         unsigned int connection_11b_only:1;
 #endif /* CONFIG_ANDROID12 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	struct os_reltime last_mac_addr_change;
 	int last_mac_addr_style;
@@ -1185,11 +1104,9 @@
 
 	/* WLAN_STATUS_* status codes from (Re)Association Response frame. */
 	u16 assoc_status_code;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 	/* android commit:807bc58f wpa_supplicant(hidl): Add timedOut param in assoc reject */
 	/* Indicates if the previous association request timed out. */
 	u8 assoc_timed_out;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	struct ext_password_data *ext_pw;
 
@@ -1236,20 +1153,16 @@
 	u8 coloc_intf_auto_report;
 	u8 coloc_intf_timeout;
 #ifdef CONFIG_MBO
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(CONFIG_ANDROID11) || defined(CONFIG_ANDROID12)
 	unsigned int wnm_mbo_cell_pref_present:1;
 	unsigned int wnm_mbo_assoc_retry_delay_present:1;
 #endif /* defined(CONFIG_ANDROID11) || defined(CONFIG_ANDROID12) */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	unsigned int wnm_mbo_trans_reason_present:1;
 	u8 wnm_mbo_transition_reason;
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #if defined(CONFIG_ANDROID11) || defined(CONFIG_ANDROID12)
 	u8 wnm_mbo_cell_preference;
 	u16 wnm_mbo_assoc_retry_delay_sec;
 #endif /* defined(CONFIG_ANDROID11) || defined(CONFIG_ANDROID12) */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* CONFIG_MBO */
 #endif /* CONFIG_WNM */
 
@@ -1449,6 +1362,9 @@
 #ifdef CONFIG_FILS
 	unsigned int disable_fils:1;
 #endif /* CONFIG_FILS */
+#ifdef CONFIG_IEEE80211AX
+	unsigned int ieee80211ax:1;
+#endif
 	unsigned int ieee80211ac:1;
 	unsigned int enabled_4addr_mode:1;
 	unsigned int multi_bss_support:1;
@@ -1458,13 +1374,6 @@
 	unsigned int multi_ap_fronthaul:1;
 	struct robust_av_data robust_av;
 	bool mscs_setup_done;
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#ifdef WAPI_AP
-        int wapi_tx_sock;
-        int wapi_sock;
-        struct i802_bss *wapi_bss;
-#endif
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 };
 
 
@@ -1663,8 +1572,8 @@
 					      struct wpa_ssid *ssid,
 					      const char *field,
 					      const char *value);
-#ifdef CONFIG_DRIVER_NL80211_IFX
-#if defined(CONFIG_CTRL_IFACE) || defined(CONFIG_CTRL_IFACE_DBUS_NEW) || defined (CONFIG_CTRL_IFACE_HIDL)
+#if defined(CONFIG_CTRL_IFACE) || defined(CONFIG_CTRL_IFACE_DBUS_NEW) || \
+	defined(CONFIG_CTRL_IFACE_HIDL)
 /**
  * wpa_supplicant_ctrl_rsp_handle - Handle a control response
  * @wpa_s: Pointer to wpa_supplicant data
@@ -1680,7 +1589,6 @@
 				   enum wpa_ctrl_req_type rtype,
 				   const char *value, int len);
 #endif /* CONFIG_CTRL_IFACE || CONFIG_CTRL_IFACE_DBUS_NEW || CONFIG_CTRL_IFACE_HIDL */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 void ibss_mesh_setup_freq(struct wpa_supplicant *wpa_s,
 			  const struct wpa_ssid *ssid,
@@ -1803,9 +1711,7 @@
 				       size_t len);
 void wpas_handle_assoc_resp_mscs(struct wpa_supplicant *wpa_s, const u8 *bssid,
 				 const u8 *ies, size_t ies_len);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 #ifdef CONFIG_ANDROID12
 int disabled_freq(struct wpa_supplicant *wpa_s, int freq);
 #endif /* CONFIG_ANDROID12 */
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #endif /* WPA_SUPPLICANT_I_H */
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpas_glue.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpas_glue.c
index ddfac9a..d309b8b 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpas_glue.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpas_glue.c
@@ -12,9 +12,6 @@
 #include "eapol_supp/eapol_supp_sm.h"
 #include "eap_peer/eap.h"
 #include "rsn_supp/wpa.h"
-#ifndef CONFIG_DRIVER_NL80211_IFX
-#include "rsn_supp/wpa_i.h"
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 #include "eloop.h"
 #include "config.h"
 #include "l2_packet/l2_packet.h"
@@ -287,9 +284,6 @@
 				    void *ctx)
 {
 	struct wpa_supplicant *wpa_s = ctx;
-#ifndef CONFIG_DRIVER_NL80211_IFX
-	struct wpa_sm *sm = wpa_s->wpa;
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 	int res, pmk_len;
 	u8 pmk[PMK_LEN];
 
@@ -313,7 +307,7 @@
 		ieee802_1x_notify_create_actor(wpa_s, wpa_s->last_eapol_src);
 	}
 
-#if defined(CONFIG_DRIVER_NL80211_IFX) && defined(BRCM_VE)
+#if defined(BRCM_VE)
 	/* Always try and pass down the PMK/XXKey to the driver. */
 	if (result != EAPOL_SUPP_RESULT_SUCCESS)
 #else
@@ -329,49 +323,6 @@
 		   "handshake");
 
 	pmk_len = PMK_LEN;
-#ifndef CONFIG_DRIVER_NL80211_IFX
-	if (sm->cur_pmksa) {
-		pmk_len = sm->pmk_len;
-		os_memcpy(pmk, sm->pmk, pmk_len);
-	} else {
-		if (wpa_key_mgmt_ft(wpa_s->key_mgmt)) {
-#ifdef CONFIG_IEEE80211R
-			u8 buf[2 * PMK_LEN];
-			wpa_printf(MSG_DEBUG, "RSN: Use FT XXKey as PMK for "
-				   "driver-based 4-way hs and FT");
-			res = eapol_sm_get_key(eapol, buf, 2 * PMK_LEN);
-			if (res == 0) {
-				os_memcpy(pmk, buf + PMK_LEN, PMK_LEN);
-				os_memset(buf, 0, sizeof(buf));
-			}
-#else /* CONFIG_IEEE80211R */
-			res = -1;
-#endif /* CONFIG_IEEE80211R */
-		} else {
-			res = eapol_sm_get_key(eapol, pmk, PMK_LEN);
-			if (res) {
-				/*
-				 * EAP-LEAP is an exception from other EAP
-				 * methods: it uses only 16-byte PMK.
-				 */
-				res = eapol_sm_get_key(eapol, pmk, 16);
-				pmk_len = 16;
-			}
-		}
-
-		if (res) {
-			wpa_printf(MSG_DEBUG, "Failed to get PMK from EAPOL "
-				   "state machines");
-			return;
-		}
-
-		sm->pmk_len = pmk_len;
-		os_memcpy(sm->pmk, pmk, pmk_len);
-		pmksa_cache_add(sm->pmksa, pmk, pmk_len, NULL, NULL, 0,
-				sm->bssid, sm->own_addr,
-				sm->network_ctx, sm->key_mgmt, NULL);
-	}
-#else /* CONFIG_DRIVER_NL80211_IFX */
 	if (wpa_key_mgmt_ft(wpa_s->key_mgmt)) {
 #ifdef CONFIG_IEEE80211R
 		u8 buf[2 * PMK_LEN];
@@ -402,7 +353,6 @@
 			   "machines");
 		return;
 	}
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 
 	wpa_hexdump_key(MSG_DEBUG, "RSN: Configure PMK for driver-based 4-way "
 			"handshake", pmk, pmk_len);
@@ -1520,6 +1470,8 @@
 				wpa_bss_get_fils_cache_id(wpa_s->current_bss);
 #endif /* CONFIG_FILS */
 		conf.beacon_prot = ssid->beacon_prot;
+		/* Refer commit ed56a660: Suppress deauth for PMKSA caching disabled */
+		conf.suppress_deauth_no_pmksa = ssid->suppress_deauth_no_pmksa;
 	}
 	wpa_sm_set_config(wpa_s->wpa, ssid ? &conf : NULL);
 }
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wps_supplicant.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wps_supplicant.c
index cdaaf38..c6205c6 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wps_supplicant.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wps_supplicant.c
@@ -2283,13 +2283,9 @@
 #ifdef CONFIG_WPS_NFC
 
 #ifdef CONFIG_WPS_ER
-#ifdef CONFIG_DRIVER_NL80211_IFX
 /* android commit:8894db2d wpa_supplicant(hidl):
  * New EAP phase 2 params and NFC methods */
 struct wpabuf *
-#else
-static struct wpabuf *
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 wpas_wps_network_config_token(struct wpa_supplicant *wpa_s, int ndef,
 			      struct wpa_ssid *ssid)
 {
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wps_supplicant.h b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wps_supplicant.h
index 82a6c9f..b9c4c77 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wps_supplicant.h
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wps_supplicant.h
@@ -63,12 +63,10 @@
 int wpas_wps_terminate_pending(struct wpa_supplicant *wpa_s);
 void wpas_wps_update_config(struct wpa_supplicant *wpa_s);
 void wpas_wps_update_mac_addr(struct wpa_supplicant *wpa_s);
-#ifdef CONFIG_DRIVER_NL80211_IFX
 /* android commit:8894db2d wpa_supplicant(hidl):
  * New EAP phase 2 params and NFC methods */
 struct wpabuf * wpas_wps_network_config_token(struct wpa_supplicant *wpa_s,
 					  int ndef, struct wpa_ssid * ssid);
-#endif /* CONFIG_DRIVER_NL80211_IFX */
 struct wpabuf * wpas_wps_nfc_config_token(struct wpa_supplicant *wpa_s,
 					  int ndef, const char *id_str);
 struct wpabuf * wpas_wps_nfc_token(struct wpa_supplicant *wpa_s, int ndef);