Browse Source

Merge "qcacld-3.0: Avoid pkt drop in DFS CAC for SAP dual band mode" into wlan-cld3.driver.lnx.2.0

CNSS_WLAN Service 7 years ago
parent
commit
a3c14f4ade
1 changed files with 9 additions and 1 deletions
  1. 9 1
      core/mac/src/pe/lim/lim_process_message_queue.c

+ 9 - 1
core/mac/src/pe/lim/lim_process_message_queue.c

@@ -898,6 +898,8 @@ lim_handle80211_frames(tpAniSirGlobal pMac, struct scheduler_msg *limMsg,
 	tpPESession psessionEntry = NULL;
 	uint8_t sessionId;
 	bool isFrmFt = false;
+	uint8_t channel;
+	bool is_hw_sbs_capable = false;
 
 	*pDeferMsg = false;
 	lim_get_b_dfrom_rx_packet(pMac, limMsg->bodyptr,
@@ -905,9 +907,15 @@ lim_handle80211_frames(tpAniSirGlobal pMac, struct scheduler_msg *limMsg,
 
 	pHdr = WMA_GET_RX_MAC_HEADER(pRxPacketInfo);
 	isFrmFt = WMA_GET_RX_FT_DONE(pRxPacketInfo);
+	channel = WMA_GET_RX_CH(pRxPacketInfo);
 	fc = pHdr->fc;
 
-	if (pMac->sap.SapDfsInfo.is_dfs_cac_timer_running) {
+	is_hw_sbs_capable =
+		policy_mgr_is_hw_sbs_capable(pMac->psoc);
+	if (IS_5G_CH(channel) &&
+	   (!is_hw_sbs_capable ||
+	   (is_hw_sbs_capable && wlan_reg_is_dfs_ch(pMac->pdev, channel))) &&
+	    pMac->sap.SapDfsInfo.is_dfs_cac_timer_running) {
 		psessionEntry = pe_find_session_by_bssid(pMac,
 					pHdr->bssId, &sessionId);
 		if (psessionEntry &&