qcacld-3.0: Wait for RSO stop response from firmware
Firmware doesn't expect any vdev commands from host while RSO stop is happening. It sends a response to the RSO_STOP command once it's done with cleanup. Host needs to run a timer after sending RSO stop command to firmware and wait for a maximum of 6 seconds for the response. Host can stop the timer and allow the commands to firmware in the below cases, 1. RSO_STOP response with success status 2. RSO_STOP response with HO_FAIL status followed by HO_FAIL event: Host needs to wait till HO_FAIL event is received If firmware doesn't send any response in the 6 seconds wait, issue a recovery to help to check the firmware state. Also, set WMI_ROAM_SCAN_MODE_FLAG_REPORT_STATUS always when MLO is supported while sending RSO_STOP to firmware. It's sent only in case of wpa_supplicant disabled roaming currently. Change-Id: I8182e60beb9288dba23cc72e978dc781c8ab1707 CRs-Fixed: 3106023
This commit is contained in:

committed by
Madan Koyyalamudi

parent
2bd5e660c5
commit
db3c1a98e5
@@ -2575,6 +2575,8 @@ wmi_convert_fw_notif_to_cm_notif(uint32_t fw_notif)
|
||||
return CM_ROAM_NOTIF_DEAUTH_RECV;
|
||||
case WMI_ROAM_NOTIF_DISASSOC_RECV:
|
||||
return CM_ROAM_NOTIF_DISASSOC_RECV;
|
||||
case WMI_ROAM_NOTIF_SCAN_MODE_SUCCESS_WITH_HO_FAIL:
|
||||
return CM_ROAM_NOTIF_HO_FAIL;
|
||||
case WMI_ROAM_NOTIF_SCAN_END:
|
||||
return CM_ROAM_NOTIF_SCAN_END;
|
||||
default:
|
||||
@@ -4032,6 +4034,23 @@ wmi_fill_rso_start_scan_tlv(struct wlan_roam_scan_offload_params *rso_req,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
static void
|
||||
wmi_set_rso_stop_report_status(wmi_roam_scan_mode_fixed_param *rso_fp)
|
||||
{
|
||||
/**
|
||||
* Set the REPORT status flag always, so that firmware sends RSO stop
|
||||
* status always
|
||||
*/
|
||||
rso_fp->flags |= WMI_ROAM_SCAN_MODE_FLAG_REPORT_STATUS;
|
||||
}
|
||||
#else
|
||||
static void
|
||||
wmi_set_rso_stop_report_status(wmi_roam_scan_mode_fixed_param *rso_fp)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* send_roam_scan_offload_mode_cmd_tlv() - send roam scan mode request to fw
|
||||
* @wmi_handle: wmi handle
|
||||
@@ -4101,6 +4120,8 @@ send_roam_scan_offload_mode_cmd_tlv(
|
||||
roam_scan_mode_fp->flags |=
|
||||
WMI_ROAM_SCAN_MODE_FLAG_REPORT_STATUS;
|
||||
goto send_roam_scan_mode_cmd;
|
||||
} else {
|
||||
wmi_set_rso_stop_report_status(roam_scan_mode_fp);
|
||||
}
|
||||
|
||||
/* Fill in scan parameters suitable for roaming scan */
|
||||
|
Reference in New Issue
Block a user