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
This commit is contained in:
lihual
2021-04-19 14:23:13 +08:00
committed by Madan Koyyalamudi
parent 00d622448a
commit 5a8e94dad0

View File

@@ -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, * and WMI_ROAM_REASON_SUITABLE_AP event was received earlier,
* now it is time to call it heartbeat failure. * now it is time to call it heartbeat failure.
*/ */
if (reason == REASON_PREAUTH_FAILED_FOR_ALL if ((reason == REASON_PREAUTH_FAILED_FOR_ALL ||
&& mlme_get_roam_reason_better_ap(vdev)) { reason == REASON_NO_CAND_FOUND_OR_NOT_ROAMING_NOW) &&
mlme_err("Sending heartbeat failure after preauth failures"); 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)); wlan_cm_send_beacon_miss(vdev_id, mlme_get_hb_ap_rssi(vdev));
mlme_set_roam_reason_better_ap(vdev, false); mlme_set_roam_reason_better_ap(vdev, false);
} }