Browse Source

qcacld-3.0: Stop ap_ecsa_timer once TX success of CSA count 1 is received

According to current host logic, host still start 100ms ap_ecsa_timer
when CSA count is reduced to 1. So even if TX successful indication
for CSA count 1 is received, host will have to do vdev restart till
ap_ecsa_timer time out. Per CERT case VHT-4.2.16h, wlan cannot send
any more frames once beacon frame of CSA count 1 send out. But in FW
side, as long as sap doesn't vdev do restart yet, it still periodically
send fils discovery action frame, which cause cert case VHT-4.2.16h
failed.
Due to CSA is implemented in host, FW don't know current CSA count of
beacon template. So add the fix from host side.

Change-Id: I969494aa6e8c9df2cc4284169561f347fd4bd3ab
CRs-Fixed: 3352882
Qun Zhang 2 years ago
parent
commit
65018ab347
1 changed files with 4 additions and 4 deletions
  1. 4 4
      core/mac/src/pe/lim/lim_send_sme_rsp_messages.c

+ 4 - 4
core/mac/src/pe/lim/lim_send_sme_rsp_messages.c

@@ -2515,10 +2515,10 @@ lim_process_beacon_tx_success_ind(struct mac_context *mac_ctx, uint16_t msgType,
 		return;
 	csa_tx_offload = wlan_psoc_nif_fw_ext_cap_get(mac_ctx->psoc,
 						WLAN_SOC_CEXT_CSA_TX_OFFLOAD);
-	if (session->dfsIncludeChanSwIe &&
-	    (session->gLimChannelSwitch.switchCount ==
-	    mac_ctx->sap.SapDfsInfo.sap_ch_switch_beacon_cnt) &&
-	    !csa_tx_offload)
+	if (session->dfsIncludeChanSwIe && !csa_tx_offload &&
+	    ((session->gLimChannelSwitch.switchCount ==
+	      mac_ctx->sap.SapDfsInfo.sap_ch_switch_beacon_cnt) ||
+	     (session->gLimChannelSwitch.switchCount == 1)))
 		lim_process_ap_ecsa_timeout(session);