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