Merge "[BugFix][API-1205]fix sta no disconnect event when sta disconnected phone hostap" into GSW3.0-No-Connman
diff --git a/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/Makefile b/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/Makefile
index 00b81ea..ea2fdf2 100755
--- a/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/Makefile
+++ b/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/Makefile
@@ -149,6 +149,7 @@
 # Set PM 2 always regardless suspend/resume
 DHDCFLAGS += -DSUPPORT_PM2_ONLY
 
+DHDCFLAGS += -DDISABLE_FW_ROAM
 # FT roam
 DHDCFLAGS += -DWLFBT -DGTK_OFFLOAD_SUPPORT
 DHDCFLAGS += -DBCMCCX
diff --git a/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/dhd_linux.c b/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/dhd_linux.c
index c020db9..1d0bdc4 100755
--- a/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/dhd_linux.c
+++ b/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/dhd_linux.c
@@ -10327,7 +10327,11 @@
 	wl_el_tag_params_t *el_tag = NULL;
 #endif /* DHD_8021X_DUMP */
 #ifdef ROAM_ENABLE
+#ifdef DISABLE_FW_ROAM
+        uint roamvar = 1;
+#else
 	uint roamvar = 0;
+#endif
 	int roam_trigger[2] = {CUSTOM_ROAM_TRIGGER_SETTING, WLC_BAND_ALL};
 	int roam_scan_period[2] = {10, WLC_BAND_ALL};
 	int roam_delta[2] = {CUSTOM_ROAM_DELTA_SETTING, WLC_BAND_ALL};
diff --git a/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/wl_cfg80211.c b/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/wl_cfg80211.c
index 5735440..dab598c 100755
--- a/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/wl_cfg80211.c
+++ b/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/wl_cfg80211.c
@@ -177,6 +177,7 @@
 #endif /* WL_FW_OCE_AP_SELECT && (ROAM_ENABLE || BCMFW_ROAM_ENABLE) */
 module_param(fw_ap_select, uint, 0660);
 /* this flag enable triggerrs bgscan method from supplicant */
+
 uint us_ap_select = false;
 module_param(us_ap_select, uint, 0660);
 
@@ -2443,6 +2444,13 @@
 				/* Enable buffering of PTK key till EAPOL 4/4 is sent out */
 				wldev_iovar_setint(ndev, "buf_key_b4_m4", 1);
 			}
+/*change for fix sta no disconnect event by IFX patch @20230823*/
+#ifdef DISABLE_FW_ROAM
+			if (wl_iftype == WL_IF_TYPE_STA){
+				wldev_iovar_setint(ndev,"roam_off", 1);
+			}
+#endif
+
 			break;
 
 		default:
@@ -16597,9 +16605,10 @@
 
 	if (!profile)
 		return WL_INVALID;
+/*change for fix sta no disconnect event by IFX patch,change by qs.xiong @20230823*/
+//	if (!us_ap_select)
+//		return 0;
 
-	if (!us_ap_select)
-		return 0;
 
 	WL_DBG(("Enter: event %d (%d), status=%d\n",
 		ntoh32(e->event_type), ntoh32(e->status), ntoh32(e->reason)));
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/.config b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/.config
index 0199bde..afa24ab 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/.config
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/.config
@@ -511,7 +511,7 @@
 #CONFIG_MATCH_IFACE=y
 
 # Disable roaming in wpa_supplicant
-#CONFIG_NO_ROAMING=y
+CONFIG_NO_ROAMING=y
 
 # AP mode operations with wpa_supplicant
 # This can be used for controlling AP mode operations with wpa_supplicant. It