diff options
| -rw-r--r-- | core/sap/src/sap_fsm.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/core/sap/src/sap_fsm.c b/core/sap/src/sap_fsm.c index 84640768137d..a57088a78a3a 100644 --- a/core/sap/src/sap_fsm.c +++ b/core/sap/src/sap_fsm.c @@ -1829,6 +1829,8 @@ static void sap_mark_dfs_channels(ptSapContext sapContext, uint8_t *channels, uint8_t nRegDomainDfsChannels; tHalHandle hHal; tpAniSirGlobal pMac; + uint64_t time_elapsed_since_last_radar; + uint64_t time_when_radar_found; hHal = CDS_GET_HAL_CB(sapContext->p_cds_gctx); if (NULL == channels) @@ -1858,13 +1860,20 @@ static void sap_mark_dfs_channels(ptSapContext sapContext, uint8_t *channels, if (!(psapDfsChannelNolList[j].dfs_channel_number == channels[i])) continue; + + time_when_radar_found = + psapDfsChannelNolList[j].radar_found_timestamp; + time_elapsed_since_last_radar = time - + time_when_radar_found; /* * If channel is already in NOL, don't update it again. * This is useful when marking bonding channels which * are already unavailable. */ - if (psapDfsChannelNolList[j].radar_status_flag == - eSAP_DFS_CHANNEL_UNAVAILABLE) { + if ((psapDfsChannelNolList[j].radar_status_flag == + eSAP_DFS_CHANNEL_UNAVAILABLE) && + (time_elapsed_since_last_radar < + SAP_DFS_NON_OCCUPANCY_PERIOD)) { QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH, FL("Channel=%d already in NOL"), |
