mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 06:09:23 -04:00
qcacld-3.0: Replace channel with frequency in wlan_mlme_reg
Replace channel ID with frequency in struct wlan_mlme_reg. Change-Id: I71fcec5014e451cf912f187c79a1939d2d7e54ad CRs-Fixed: 2518897
This commit is contained in:
parent
82f55edc88
commit
d1d0db9db2
11 changed files with 90 additions and 45 deletions
|
|
@ -2270,6 +2270,9 @@ static void mlme_init_reg_cfg(struct wlan_objmgr_psoc *psoc,
|
|||
struct wlan_mlme_reg *reg)
|
||||
{
|
||||
qdf_size_t valid_channel_list_num = 0;
|
||||
uint8_t channel_list[CFG_VALID_CHANNEL_LIST_LEN];
|
||||
uint8_t i;
|
||||
struct wlan_objmgr_pdev *pdev = NULL;
|
||||
|
||||
reg->self_gen_frm_pwr = cfg_get(psoc, CFG_SELF_GEN_FRM_PWR);
|
||||
reg->etsi13_srd_chan_in_master_mode =
|
||||
|
|
@ -2281,10 +2284,23 @@ static void mlme_init_reg_cfg(struct wlan_objmgr_psoc *psoc,
|
|||
CFG_ENABLE_11D_IN_WORLD_MODE);
|
||||
reg->scan_11d_interval = cfg_get(psoc, CFG_SCAN_11D_INTERVAL);
|
||||
qdf_uint8_array_parse(cfg_default(CFG_VALID_CHANNEL_LIST),
|
||||
reg->valid_channel_list,
|
||||
channel_list,
|
||||
CFG_VALID_CHANNEL_LIST_LEN,
|
||||
&valid_channel_list_num);
|
||||
reg->valid_channel_list_num = (uint8_t)valid_channel_list_num;
|
||||
|
||||
pdev = wlan_objmgr_get_pdev_by_id(psoc, 0, WLAN_MLME_NB_ID);
|
||||
if (!pdev) {
|
||||
mlme_legacy_err("null pdev");
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < valid_channel_list_num; i++)
|
||||
reg->valid_channel_freq_list[i] =
|
||||
wlan_reg_chan_to_freq(pdev, channel_list[i]);
|
||||
|
||||
wlan_objmgr_pdev_release_ref(pdev, WLAN_MLME_NB_ID);
|
||||
|
||||
qdf_str_lcopy(reg->country_code, cfg_default(CFG_COUNTRY_CODE),
|
||||
sizeof(reg->country_code));
|
||||
reg->country_code_len = (uint8_t)sizeof(reg->country_code);
|
||||
|
|
|
|||
|
|
@ -2040,7 +2040,7 @@ struct wlan_mlme_mwc {
|
|||
* @restart_beaconing_on_ch_avoid: restart beaconing on ch avoid
|
||||
* @indoor_channel_support: indoor channel support
|
||||
* @scan_11d_interval: scan 11d interval
|
||||
* @valid_channel_list: array for valid channel list
|
||||
* @valid_channel_freq_list: array for valid channel list
|
||||
* @valid_channel_list_num: valid channel list number
|
||||
* @country_code: country code
|
||||
* @country_code_len: country code length
|
||||
|
|
@ -2056,7 +2056,7 @@ struct wlan_mlme_reg {
|
|||
restart_beaconing_on_ch_avoid;
|
||||
bool indoor_channel_support;
|
||||
uint32_t scan_11d_interval;
|
||||
uint8_t valid_channel_list[CFG_VALID_CHANNEL_LIST_LEN];
|
||||
uint32_t valid_channel_freq_list[CFG_VALID_CHANNEL_LIST_LEN];
|
||||
uint8_t valid_channel_list_num;
|
||||
uint8_t country_code[CFG_COUNTRY_CODE_LEN + 1];
|
||||
uint8_t country_code_len;
|
||||
|
|
|
|||
|
|
@ -3732,7 +3732,8 @@ ucfg_mlme_get_scan_11d_interval(struct wlan_objmgr_psoc *psoc,
|
|||
uint32_t *value);
|
||||
|
||||
/**
|
||||
* ucfg_mlme_get_valid_channel_list() - get valid channel list
|
||||
* ucfg_mlme_get_valid_channel_freq_list() - get valid channel
|
||||
* list
|
||||
* @psoc: pointer to psoc object
|
||||
* @channel_list: pointer to return channel list
|
||||
* @channel_list_num: pointer to return channel list number
|
||||
|
|
@ -3740,9 +3741,9 @@ ucfg_mlme_get_scan_11d_interval(struct wlan_objmgr_psoc *psoc,
|
|||
* Return: QDF Status
|
||||
*/
|
||||
QDF_STATUS
|
||||
ucfg_mlme_get_valid_channel_list(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t *channel_list,
|
||||
uint32_t *channel_list_num);
|
||||
ucfg_mlme_get_valid_channel_freq_list(struct wlan_objmgr_psoc *psoc,
|
||||
uint32_t *channel_list,
|
||||
uint32_t *channel_list_num);
|
||||
|
||||
#ifdef FEATURE_LFR_SUBNET_DETECTION
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1500,27 +1500,43 @@ ucfg_mlme_get_scan_11d_interval(struct wlan_objmgr_psoc *psoc,
|
|||
}
|
||||
|
||||
QDF_STATUS
|
||||
ucfg_mlme_get_valid_channel_list(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t *channel_list,
|
||||
uint32_t *channel_list_num)
|
||||
ucfg_mlme_get_valid_channel_freq_list(struct wlan_objmgr_psoc *psoc,
|
||||
uint32_t *channel_list,
|
||||
uint32_t *channel_list_num)
|
||||
{
|
||||
struct wlan_mlme_psoc_obj *mlme_obj;
|
||||
qdf_size_t valid_channel_list_num = 0;
|
||||
uint8_t tmp_channel_list[CFG_VALID_CHANNEL_LIST_LEN];
|
||||
uint8_t i;
|
||||
struct wlan_objmgr_pdev *pdev = NULL;
|
||||
|
||||
mlme_obj = mlme_get_psoc_obj(psoc);
|
||||
if (!mlme_obj) {
|
||||
qdf_uint8_array_parse(cfg_default(CFG_VALID_CHANNEL_LIST),
|
||||
channel_list,
|
||||
tmp_channel_list,
|
||||
CFG_VALID_CHANNEL_LIST_LEN,
|
||||
&valid_channel_list_num);
|
||||
*channel_list_num = (uint8_t)valid_channel_list_num;
|
||||
mlme_legacy_err("Failed to get MLME Obj");
|
||||
pdev = wlan_objmgr_get_pdev_by_id(psoc, 0, WLAN_MLME_NB_ID);
|
||||
if (!pdev) {
|
||||
mlme_legacy_err("null pdev");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
for (i = 0; i < valid_channel_list_num; i++) {
|
||||
channel_list[i] =
|
||||
wlan_reg_chan_to_freq(pdev, tmp_channel_list[i]);
|
||||
}
|
||||
|
||||
wlan_objmgr_pdev_release_ref(pdev, WLAN_MLME_NB_ID);
|
||||
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
*channel_list_num = (uint32_t)mlme_obj->cfg.reg.valid_channel_list_num;
|
||||
qdf_mem_copy(channel_list, mlme_obj->cfg.reg.valid_channel_list,
|
||||
*channel_list_num);
|
||||
for (i = 0; i < *channel_list_num; i++)
|
||||
channel_list[i] = mlme_obj->cfg.reg.valid_channel_freq_list[i];
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14695,7 +14695,7 @@ QDF_STATUS wlan_hdd_validate_operation_channel(struct hdd_adapter *adapter,
|
|||
int channel)
|
||||
{
|
||||
uint32_t num_ch = 0;
|
||||
u8 valid_ch[CFG_VALID_CHANNEL_LIST_LEN];
|
||||
uint32_t valid_ch[CFG_VALID_CHANNEL_LIST_LEN];
|
||||
u32 indx = 0;
|
||||
bool is_valid_channel = false;
|
||||
uint8_t count;
|
||||
|
|
@ -14721,10 +14721,11 @@ QDF_STATUS wlan_hdd_validate_operation_channel(struct hdd_adapter *adapter,
|
|||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
} else {
|
||||
ucfg_mlme_get_valid_channel_list(hdd_ctx->psoc, valid_ch,
|
||||
&num_ch);
|
||||
ucfg_mlme_get_valid_channel_freq_list(hdd_ctx->psoc, valid_ch,
|
||||
&num_ch);
|
||||
for (indx = 0; indx < num_ch; indx++) {
|
||||
if (channel == valid_ch[indx])
|
||||
if (channel ==
|
||||
wlan_reg_freq_to_chan(hdd_ctx->pdev, valid_ch[indx]))
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -19685,7 +19686,7 @@ static int __wlan_hdd_cfg80211_join_ibss(struct wiphy *wiphy,
|
|||
if (NULL !=
|
||||
params->chandef.chan) {
|
||||
uint32_t numChans = CFG_VALID_CHANNEL_LIST_LEN;
|
||||
uint8_t validChan[CFG_VALID_CHANNEL_LIST_LEN];
|
||||
uint32_t validChan[CFG_VALID_CHANNEL_LIST_LEN];
|
||||
int indx;
|
||||
|
||||
/* Get channel number */
|
||||
|
|
@ -19694,11 +19695,12 @@ static int __wlan_hdd_cfg80211_join_ibss(struct wiphy *wiphy,
|
|||
chandef.
|
||||
chan->
|
||||
center_freq);
|
||||
ucfg_mlme_get_valid_channel_list(hdd_ctx->psoc, validChan,
|
||||
&numChans);
|
||||
ucfg_mlme_get_valid_channel_freq_list(hdd_ctx->psoc, validChan,
|
||||
&numChans);
|
||||
|
||||
for (indx = 0; indx < numChans; indx++) {
|
||||
if (channelNum == validChan[indx])
|
||||
if (channelNum ==
|
||||
wlan_reg_freq_to_chan(hdd_ctx->pdev, validChan[indx]))
|
||||
break;
|
||||
}
|
||||
if (indx >= numChans) {
|
||||
|
|
|
|||
|
|
@ -205,8 +205,11 @@ static void populate_dot11f_tdls_offchannel_params(
|
|||
uint8_t nss_5g;
|
||||
|
||||
numChans = mac->mlme_cfg->reg.valid_channel_list_num;
|
||||
qdf_mem_copy(validChan, mac->mlme_cfg->reg.valid_channel_list,
|
||||
mac->mlme_cfg->reg.valid_channel_list_num);
|
||||
|
||||
for (i = 0; i < mac->mlme_cfg->reg.valid_channel_list_num; i++) {
|
||||
validChan[i] = wlan_reg_freq_to_chan(mac->pdev,
|
||||
mac->mlme_cfg->reg.valid_channel_freq_list[i]);
|
||||
}
|
||||
|
||||
if (wlan_reg_is_5ghz_ch_freq(pe_session->curr_op_freq))
|
||||
band = BAND_5G;
|
||||
|
|
|
|||
|
|
@ -600,6 +600,7 @@ QDF_STATUS lim_send_ht40_obss_scanind(struct mac_context *mac_ctx,
|
|||
struct scheduler_msg msg = {0};
|
||||
uint8_t chan_list[CFG_VALID_CHANNEL_LIST_LEN];
|
||||
uint8_t channel24gnum, count;
|
||||
uint8_t i;
|
||||
|
||||
ht40_obss_scanind = qdf_mem_malloc(sizeof(struct obss_ht40_scanind));
|
||||
if (!ht40_obss_scanind)
|
||||
|
|
@ -631,8 +632,11 @@ QDF_STATUS lim_send_ht40_obss_scanind(struct mac_context *mac_ctx,
|
|||
mac_ctx->pdev, session->curr_op_freq),
|
||||
session->ch_width);
|
||||
channelnum = mac_ctx->mlme_cfg->reg.valid_channel_list_num;
|
||||
qdf_mem_copy(chan_list, mac_ctx->mlme_cfg->reg.valid_channel_list,
|
||||
channelnum);
|
||||
for (i = 0; i < channelnum; i++) {
|
||||
chan_list[i] = wlan_reg_freq_to_chan(mac_ctx->pdev,
|
||||
mac_ctx->mlme_cfg->reg.valid_channel_freq_list[i]);
|
||||
}
|
||||
|
||||
/* Extract 24G channel list */
|
||||
channel24gnum = 0;
|
||||
for (count = 0; count < channelnum &&
|
||||
|
|
|
|||
|
|
@ -4427,8 +4427,6 @@ void lim_add_channel_status_info(struct mac_context *p_mac,
|
|||
bool lim_is_channel_valid_for_channel_switch(struct mac_context *mac, uint8_t channel)
|
||||
{
|
||||
uint8_t index;
|
||||
uint32_t validChannelListLen = CFG_VALID_CHANNEL_LIST_LEN;
|
||||
tSirMacChanNum validChannelList[CFG_VALID_CHANNEL_LIST_LEN];
|
||||
bool ok = false;
|
||||
|
||||
if (policy_mgr_is_chan_ok_for_dnbs(mac->psoc, channel, &ok)) {
|
||||
|
|
@ -4441,11 +4439,9 @@ bool lim_is_channel_valid_for_channel_switch(struct mac_context *mac, uint8_t ch
|
|||
return false;
|
||||
}
|
||||
|
||||
validChannelListLen = mac->mlme_cfg->reg.valid_channel_list_num;
|
||||
qdf_mem_copy(validChannelList, mac->mlme_cfg->reg.valid_channel_list,
|
||||
mac->mlme_cfg->reg.valid_channel_list_num);
|
||||
for (index = 0; index < validChannelListLen; index++) {
|
||||
if (validChannelList[index] != channel)
|
||||
for (index = 0; index < mac->mlme_cfg->reg.valid_channel_list_num; index++) {
|
||||
if (mac->mlme_cfg->reg.valid_channel_freq_list[index] !=
|
||||
wlan_reg_chan_to_freq(mac->pdev, channel))
|
||||
continue;
|
||||
|
||||
ok = policy_mgr_is_valid_for_channel_switch(mac->psoc,
|
||||
|
|
|
|||
|
|
@ -1130,6 +1130,7 @@ QDF_STATUS sme_get_valid_channels(uint8_t *chan_list, uint32_t *list_len)
|
|||
{
|
||||
struct mac_context *mac_ctx = sme_get_mac_context();
|
||||
uint32_t num_valid_chan;
|
||||
uint8_t i;
|
||||
|
||||
if (!mac_ctx) {
|
||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
|
||||
|
|
@ -1146,8 +1147,10 @@ QDF_STATUS sme_get_valid_channels(uint8_t *chan_list, uint32_t *list_len)
|
|||
num_valid_chan = *list_len;
|
||||
}
|
||||
*list_len = num_valid_chan;
|
||||
qdf_mem_copy(chan_list, mac_ctx->mlme_cfg->reg.valid_channel_list,
|
||||
*list_len);
|
||||
for (i = 0; i < *list_len; i++) {
|
||||
chan_list[i] = wlan_reg_freq_to_chan(mac_ctx->pdev,
|
||||
mac_ctx->mlme_cfg->reg.valid_channel_freq_list[i]);
|
||||
}
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13370,14 +13370,15 @@ QDF_STATUS csr_get_cfg_valid_channels(struct mac_context *mac, uint8_t *pChannel
|
|||
{
|
||||
uint8_t num_chan_temp = 0;
|
||||
int i;
|
||||
uint8_t chan;
|
||||
|
||||
*pNumChan = (uint32_t)mac->mlme_cfg->reg.valid_channel_list_num;
|
||||
qdf_mem_copy(pChannels, mac->mlme_cfg->reg.valid_channel_list,
|
||||
*pNumChan);
|
||||
|
||||
for (i = 0; i < *pNumChan; i++) {
|
||||
if (!wlan_reg_is_dsrc_chan(mac->pdev, pChannels[i])) {
|
||||
pChannels[num_chan_temp] = pChannels[i];
|
||||
chan = wlan_reg_freq_to_chan(mac->pdev,
|
||||
mac->mlme_cfg->reg.valid_channel_freq_list[i]);
|
||||
if (!wlan_reg_is_dsrc_chan(mac->pdev, chan)) {
|
||||
pChannels[num_chan_temp] = chan;
|
||||
num_chan_temp++;
|
||||
}
|
||||
}
|
||||
|
|
@ -13392,13 +13393,12 @@ QDF_STATUS csr_get_cfg_valid_freqs(struct mac_context *mac,
|
|||
{
|
||||
uint8_t num_chan_temp = 0;
|
||||
int i;
|
||||
uint8_t chan;
|
||||
uint32_t chan;
|
||||
|
||||
for (i = 0; i < mac->mlme_cfg->reg.valid_channel_list_num; i++) {
|
||||
chan = mac->mlme_cfg->reg.valid_channel_list[i];
|
||||
if (!wlan_reg_is_dsrc_chan(mac->pdev, chan)) {
|
||||
freq_list[num_chan_temp] =
|
||||
wlan_reg_chan_to_freq(mac->pdev, chan);
|
||||
chan = mac->mlme_cfg->reg.valid_channel_freq_list[i];
|
||||
if (!wlan_reg_is_dsrc_chan(mac->pdev, wlan_reg_freq_to_chan(mac->pdev, chan))) {
|
||||
freq_list[num_chan_temp] = chan;
|
||||
num_chan_temp++;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1460,14 +1460,18 @@ static void csr_set_cfg_valid_channel_list(struct mac_context *mac,
|
|||
uint8_t NumChannels)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
uint8_t i;
|
||||
|
||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
|
||||
"%s: dump valid channel list(NumChannels(%d))",
|
||||
__func__, NumChannels);
|
||||
QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
|
||||
pChannelList, NumChannels);
|
||||
qdf_mem_copy(mac->mlme_cfg->reg.valid_channel_list, pChannelList,
|
||||
NumChannels);
|
||||
for (i = 0; i < NumChannels; i++) {
|
||||
mac->mlme_cfg->reg.valid_channel_freq_list[i] =
|
||||
wlan_reg_chan_to_freq(mac->pdev, pChannelList[i]);
|
||||
}
|
||||
|
||||
mac->mlme_cfg->reg.valid_channel_list_num = NumChannels;
|
||||
|
||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
|
||||
|
|
|
|||
Loading…
Reference in a new issue