|
@@ -26,6 +26,7 @@
|
|
|
#include "sme_inside.h"
|
|
|
#include "sme_api.h"
|
|
|
#include "cfg_api.h"
|
|
|
+#include "cds_regdomain.h"
|
|
|
|
|
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT
|
|
|
#include "host_diag_core_event.h"
|
|
@@ -869,6 +870,7 @@ QDF_STATUS sme_rrm_process_beacon_report_req_ind(tpAniSirGlobal pMac,
|
|
|
tpSirBeaconReportReqInd pBeaconReq = (tpSirBeaconReportReqInd) pMsgBuf;
|
|
|
tpRrmSMEContext pSmeRrmContext = &pMac->rrm.rrmSmeContext;
|
|
|
uint32_t len = 0, i = 0;
|
|
|
+ uint8_t temp = 0;
|
|
|
|
|
|
sme_debug("Received Beacon report request ind Channel = %d",
|
|
|
pBeaconReq->channelInfo.channelNum);
|
|
@@ -886,7 +888,19 @@ QDF_STATUS sme_rrm_process_beacon_report_req_ind(tpAniSirGlobal pMac,
|
|
|
}
|
|
|
csr_get_cfg_valid_channels(pMac, pSmeRrmContext->channelList.
|
|
|
ChannelList, &len);
|
|
|
- pSmeRrmContext->channelList.numOfChannels = (uint8_t) len;
|
|
|
+
|
|
|
+ for (i = 0; i < len; i++) {
|
|
|
+ if (wlan_reg_dmn_get_opclass_from_channel(
|
|
|
+ pMac->scan.countryCodeCurrent,
|
|
|
+ pSmeRrmContext->channelList.ChannelList[i],
|
|
|
+ BWALL) ==
|
|
|
+ pBeaconReq->channelInfo.regulatoryClass) {
|
|
|
+ pSmeRrmContext->channelList.ChannelList[temp] =
|
|
|
+ pSmeRrmContext->channelList.ChannelList[i];
|
|
|
+ temp++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ pSmeRrmContext->channelList.numOfChannels = (uint8_t)temp;
|
|
|
} else {
|
|
|
len = 0;
|
|
|
pSmeRrmContext->channelList.numOfChannels = 0;
|