qcacld-3.0: Convert SME code legacy channel ID usage
1) Change hdd_parse_plm_cmd's code to populate frequency
list instead of channel ID list into struct
plm_req_params.
2) Use frequencies instead of channel IDs in the following
APIs' parameter/code:
sme_set_plm_request
csr_is_supported_channel
3) Stop populating channel freq list in function
wma_plm_start, as the frequency list will be included
in struct plm_req_params automatically.
Change-Id: I6704752317248ac4cfe800629d777f4a127e7be7
CRs-Fixed: 2560088
diff --git a/core/hdd/src/wlan_hdd_ioctl.c b/core/hdd/src/wlan_hdd_ioctl.c
index 9cb5b7f..71403cc 100644
--- a/core/hdd/src/wlan_hdd_ioctl.c
+++ b/core/hdd/src/wlan_hdd_ioctl.c
@@ -2399,8 +2399,9 @@
content > WNI_CFG_CURRENT_CHANNEL_STAMAX)
return QDF_STATUS_E_FAILURE;
- req->plm_ch_list[count] = content;
- hdd_debug(" ch- %d", req->plm_ch_list[count]);
+ req->plm_ch_freq_list[count] =
+ cds_chan_to_freq(content);
+ hdd_debug(" ch-freq- %d", req->plm_ch_freq_list[count]);
}
}
/* If PLM START */
diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c
index 5a593a0..6606163 100644
--- a/core/sme/src/common/sme_api.c
+++ b/core/sme/src/common/sme_api.c
@@ -1466,11 +1466,12 @@
QDF_STATUS status;
bool ret = false;
struct mac_context *mac = MAC_CONTEXT(mac_handle);
- uint8_t ch_list[CFG_VALID_CHANNEL_LIST_LEN] = { 0 };
+ uint32_t ch_freq_list[CFG_VALID_CHANNEL_LIST_LEN] = { 0 };
uint8_t count, valid_count = 0;
struct scheduler_msg msg = {0};
struct csr_roam_session *session;
struct plm_req_params *body;
+ uint32_t ch_freq;
if (!req)
return QDF_STATUS_E_FAILURE;
@@ -1507,20 +1508,20 @@
goto send_plm_start;
/* validating channel numbers */
for (count = 0; count < body->plm_num_ch; count++) {
- uint8_t ch = body->plm_ch_list[count];
-
- ret = csr_is_supported_channel(mac, ch);
+ ch_freq = body->plm_ch_freq_list[count];
+ ret = csr_is_supported_channel(mac, ch_freq);
if (!ret) {
/* Not supported, ignore the channel */
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
- FL("Unsupported channel %d ignored for PLM"),
- ch);
+ FL("Unsupported freq %d ignored for PLM"),
+ ch_freq);
continue;
}
- if (ch > 14) {
+ if (ch_freq > 2477) {
enum channel_state state =
- wlan_reg_get_channel_state(mac->pdev, ch);
+ wlan_reg_get_channel_state_for_freq(
+ mac->pdev, ch_freq);
if (state == CHANNEL_STATE_DFS) {
/* DFS channel is provided, no PLM bursts can be
@@ -1529,17 +1530,17 @@
QDF_TRACE(QDF_MODULE_ID_SME,
QDF_TRACE_LEVEL_DEBUG,
FL("DFS channel %d ignored for PLM"),
- ch);
+ ch_freq);
continue;
}
}
- ch_list[valid_count++] = ch;
+ ch_freq_list[valid_count++] = ch_freq;
} /* End of for () */
/* Copying back the valid channel list to plm struct */
- qdf_mem_zero(body->plm_ch_list, body->plm_num_ch);
+ qdf_mem_zero(body->plm_ch_freq_list, body->plm_num_ch);
if (valid_count)
- qdf_mem_copy(body->plm_ch_list, ch_list, valid_count);
+ qdf_mem_copy(body->plm_ch_freq_list, ch_freq_list, valid_count);
/* All are invalid channels, FW need to send the PLM
* report with "incapable" bit set.
*/
diff --git a/core/sme/src/csr/csr_api_scan.c b/core/sme/src/csr/csr_api_scan.c
index eaa169e..49a3b7a 100644
--- a/core/sme/src/csr/csr_api_scan.c
+++ b/core/sme/src/csr/csr_api_scan.c
@@ -849,14 +849,13 @@
qdf_mem_free(ch_info_start);
}
-bool csr_is_supported_channel(struct mac_context *mac, uint8_t channelId)
+bool csr_is_supported_channel(struct mac_context *mac, uint32_t chan_freq)
{
bool fRet = false;
uint32_t i;
for (i = 0; i < mac->scan.base_channels.numChannels; i++) {
- if (wlan_reg_chan_to_freq(mac->pdev, channelId) ==
- mac->scan.base_channels.channel_freq_list[i]) {
+ if (chan_freq == mac->scan.base_channels.channel_freq_list[i]) {
fRet = true;
break;
}
diff --git a/core/sme/src/csr/csr_inside_api.h b/core/sme/src/csr/csr_inside_api.h
index d5ac0e0..e96ff4e 100644
--- a/core/sme/src/csr/csr_inside_api.h
+++ b/core/sme/src/csr/csr_inside_api.h
@@ -51,7 +51,7 @@
#define CSR_MAX_BSSID_COUNT (SME_ACTIVE_LIST_CMD_TIMEOUT_VALUE/5000) - 1
#define CSR_CUSTOM_CONC_GO_BI 100
extern uint8_t csr_wpa_oui[][CSR_WPA_OUI_SIZE];
-bool csr_is_supported_channel(struct mac_context *mac, uint8_t channelId);
+bool csr_is_supported_channel(struct mac_context *mac, uint32_t chan_freq);
enum csr_scancomplete_nextcommand {
eCsrNextScanNothing,
diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c
index f4d6b83..4a2a5db 100644
--- a/core/wma/src/wma_scan_roam.c
+++ b/core/wma/src/wma_scan_roam.c
@@ -3654,31 +3654,11 @@
static QDF_STATUS wma_plm_start(tp_wma_handle wma,
struct plm_req_params *params)
{
- uint32_t num_channels;
- uint32_t *channel_list = NULL;
- uint32_t i;
QDF_STATUS status;
WMA_LOGD("PLM Start");
- num_channels = params->plm_num_ch;
-
- if (num_channels) {
- channel_list = qdf_mem_malloc(sizeof(uint32_t) * num_channels);
- if (!channel_list)
- return QDF_STATUS_E_FAILURE;
-
- for (i = 0; i < num_channels; i++) {
- channel_list[i] = params->plm_ch_list[i];
-
- if (channel_list[i] < WMA_NLO_FREQ_THRESH)
- channel_list[i] =
- cds_chan_to_freq(channel_list[i]);
- }
- }
- status = wmi_unified_plm_start_cmd(wma->wmi_handle, params,
- channel_list);
- qdf_mem_free(channel_list);
+ status = wmi_unified_plm_start_cmd(wma->wmi_handle, params);
if (QDF_IS_STATUS_ERROR(status))
return status;