From 5a8e94dad0de4c987ed9ded536f32a2dfba76814 Mon Sep 17 00:00:00 2001 From: lihual Date: Mon, 19 Apr 2021 14:23:13 +0800 Subject: [PATCH] qcacld-3.0: Restart roam for LFR2 when there is no candidate When the AP channel is changed, fw reports a suitable AP. But it's skipped by host as it has same bssid as the one currently associated. The same process repeats continually, which result in fail to reconnect with the AP. To avoid this, send BMISS indication to upper layer and restart roam. Change-Id: Idfcb69f81ce72a4ab7ef0c105f3af40cb92c53d5 CRs-Fixed: 2913663 --- .../mlme/connection_mgr/core/src/wlan_cm_roam_offload.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/components/umac/mlme/connection_mgr/core/src/wlan_cm_roam_offload.c b/components/umac/mlme/connection_mgr/core/src/wlan_cm_roam_offload.c index c6af9d6190..4a2c80b441 100644 --- a/components/umac/mlme/connection_mgr/core/src/wlan_cm_roam_offload.c +++ b/components/umac/mlme/connection_mgr/core/src/wlan_cm_roam_offload.c @@ -2503,9 +2503,10 @@ cm_roam_restart_req(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id, * and WMI_ROAM_REASON_SUITABLE_AP event was received earlier, * now it is time to call it heartbeat failure. */ - if (reason == REASON_PREAUTH_FAILED_FOR_ALL - && mlme_get_roam_reason_better_ap(vdev)) { - mlme_err("Sending heartbeat failure after preauth failures"); + if ((reason == REASON_PREAUTH_FAILED_FOR_ALL || + reason == REASON_NO_CAND_FOUND_OR_NOT_ROAMING_NOW) && + mlme_get_roam_reason_better_ap(vdev)) { + mlme_err("Sending heartbeat failure, reason %d", reason); wlan_cm_send_beacon_miss(vdev_id, mlme_get_hb_ap_rssi(vdev)); mlme_set_roam_reason_better_ap(vdev, false); }