Forráskód Böngészése

qcacld-3.0: Send btm offload disable to FW during RSO Stop

Currently btm offload command is sent to FW as part of RSO Start
for all type of roam req reason and btm offload disable command is
sent to the FW as part of RSO STOP. In case of STA+STA concurrency
case, while btm offload is enabled for the 2nd
STA after UPDATE_CFG sent for STA1, the FW asserts because it has btm
offload enabled for STA 1 while UPDATE_CFG and has not deconfigured
it yet. Send btm offload enable command as part of RSO Start in case
of roam_req->reason == REASON_CTX_INIT only to the FW so that it
configures btm for the currently enabled STA only in case of INIT
and re-configures for the second STA without assertion.

Change-Id: Ib146072c7cd0543ea82122702d6585d1d2a2e2d1
CRs-Fixed: 2493122
Abhinav Kumar 5 éve
szülő
commit
ce2b928f72
2 módosított fájl, 11 hozzáadás és 5 törlés
  1. 2 1
      core/sme/src/common/sme_api.c
  2. 9 4
      core/wma/src/wma_scan_roam.c

+ 2 - 1
core/sme/src/common/sme_api.c

@@ -6401,8 +6401,9 @@ QDF_STATUS sme_stop_roaming(mac_handle_t mac_handle, uint8_t session_id,
 	else
 		csr_roam_reset_roam_params(mac_ctx);
 
-	/* Disable offload_11k_params for current vdev */
+	/* Disable offload_11k_params and btm_offload_config for current vdev */
 	req->offload_11k_params.offload_11k_bitmask = 0;
+	req->btm_offload_config = 0;
 	req->offload_11k_params.vdev_id = session_id;
 
 	wma_msg.type = WMA_ROAM_SCAN_OFFLOAD_REQ;

+ 9 - 4
core/wma/src/wma_scan_roam.c

@@ -1782,10 +1782,15 @@ QDF_STATUS wma_process_roaming_config(tp_wma_handle wma_handle,
 			WMA_LOGE("Sending start for roam scan filter failed");
 			break;
 		}
-		qdf_status = wma_roam_scan_btm_offload(wma_handle, roam_req);
-		if (qdf_status != QDF_STATUS_SUCCESS) {
-			WMA_LOGE("Sending BTM config to fw failed");
-			break;
+
+		/* Send BTM config as disabled during RSO Stop */
+		if (roam_req->reason == REASON_CTX_INIT) {
+			qdf_status = wma_roam_scan_btm_offload(wma_handle,
+							       roam_req);
+			if (QDF_IS_STATUS_ERROR(qdf_status)) {
+				WMA_LOGE("Sending BTM config to fw failed");
+				break;
+			}
 		}
 
 		/*