|
@@ -1787,6 +1787,7 @@ QDF_STATUS hdd_hostapd_sap_event_cb(struct sap_event *sap_event,
|
|
|
struct hdd_context *hdd_ctx;
|
|
|
struct iw_michaelmicfailure msg;
|
|
|
uint8_t ignoreCAC = 0;
|
|
|
+ eSapDfsCACState_t cac_state = eSAP_DFS_DO_NOT_SKIP_CAC;
|
|
|
struct hdd_config *cfg = NULL;
|
|
|
struct wlan_dfs_info dfs_info;
|
|
|
uint8_t cc_len = WLAN_SVC_COUNTRY_CODE_LEN;
|
|
@@ -1883,12 +1884,16 @@ QDF_STATUS hdd_hostapd_sap_event_cb(struct sap_event *sap_event,
|
|
|
hdd_ctx->psoc, adapter->vdev_id))
|
|
|
ignoreCAC = true;
|
|
|
|
|
|
+ wlansap_get_dfs_cac_state(mac_handle, &cac_state);
|
|
|
+
|
|
|
/* DFS requirement: DO NOT transmit during CAC. */
|
|
|
if (CHANNEL_STATE_DFS !=
|
|
|
wlan_reg_get_channel_state_for_freq(
|
|
|
- hdd_ctx->pdev, ap_ctx->operating_chan_freq)
|
|
|
- || ignoreCAC
|
|
|
- || hdd_ctx->dev_dfs_cac_status == DFS_CAC_ALREADY_DONE)
|
|
|
+ hdd_ctx->pdev, ap_ctx->operating_chan_freq) ||
|
|
|
+ ignoreCAC ||
|
|
|
+ (hdd_ctx->dev_dfs_cac_status ==
|
|
|
+ DFS_CAC_ALREADY_DONE) ||
|
|
|
+ (eSAP_DFS_SKIP_CAC == cac_state))
|
|
|
ap_ctx->dfs_cac_block_tx = false;
|
|
|
else
|
|
|
ap_ctx->dfs_cac_block_tx = true;
|