qcacld-3.0: Move code from CSR to new RSO structs part 2

Move code from CSR to roam scan offload to use new converged
structures.

Change-Id: Ic67be46bd33930cdacc49e2e410a5e1ae7b303ee
CRs-Fixed: 2857319
此提交包含在:
gaurank kathpalia
2021-01-18 16:49:08 +05:30
提交者 snandini
父節點 4abae1f448
當前提交 85f376f0a9
共有 20 個檔案被更改,包括 656 行新增917 行删除

查看文件

@@ -31,6 +31,22 @@
#include "wlan_cm_roam_public_struct.h"
#include "wlan_wfa_config_public_struct.h"
#define MAC_MAX_ADD_IE_LENGTH 2048
/* QCN IE definitions */
#define QCN_IE_HDR_LEN 6
#define QCN_IE_VERSION_SUBATTR_ID 1
#define QCN_IE_VERSION_SUBATTR_DATA_LEN 2
#define QCN_IE_VERSION_SUBATTR_LEN 4
#define QCN_IE_VERSION_SUPPORTED 1
#define QCN_IE_SUBVERSION_SUPPORTED 0
#define QCN_IE_ATTR_ID_VERSION 1
#define QCN_IE_ATTR_ID_VHT_MCS11 2
#define QCN_IE_ATTR_ID_ALL 0xFF
#define mlme_legacy_fatal(params...) QDF_TRACE_FATAL(QDF_MODULE_ID_MLME, params)
#define mlme_legacy_err(params...) QDF_TRACE_ERROR(QDF_MODULE_ID_MLME, params)
#define mlme_legacy_warn(params...) QDF_TRACE_WARN(QDF_MODULE_ID_MLME, params)
@@ -42,6 +58,12 @@ enum size_of_len_field {
TWO_BYTE = 2
};
struct pwr_channel_info {
uint32_t first_freq;
uint8_t num_chan;
int8_t max_tx_pwr;
};
/**
* struct wlan_mlme_psoc_ext_obj -MLME ext psoc priv object
* @cfg: cfg items
@@ -715,6 +737,10 @@ QDF_STATUS wlan_strip_ie(uint8_t *addn_ie, uint16_t *addn_ielen,
bool wlan_is_channel_present_in_list(qdf_freq_t *freq_lst,
uint32_t num_chan, qdf_freq_t chan_freq);
int8_t wlan_get_cfg_max_tx_power(struct wlan_objmgr_psoc *psoc,
struct wlan_objmgr_pdev *pdev,
uint32_t ch_freq);
#if defined(WLAN_FEATURE_HOST_ROAM) || defined(WLAN_FEATURE_ROAM_OFFLOAD)
/**
* mlme_get_supplicant_disabled_roaming() - Get supplicant disabled roaming

查看文件

@@ -1828,6 +1828,7 @@ static void mlme_init_lfr_cfg(struct wlan_objmgr_psoc *psoc,
mlme_init_bss_load_trigger_params(psoc, &lfr->bss_load_trig);
mlme_init_adaptive_11r_cfg(psoc, lfr);
mlme_init_subnet_detection(psoc, lfr);
lfr->rso_user_config.cat_rssi_offset = DEFAULT_RSSI_DB_GAP;
}
static void mlme_init_power_cfg(struct wlan_objmgr_psoc *psoc,
@@ -2931,6 +2932,76 @@ bool wlan_is_channel_present_in_list(qdf_freq_t *freq_lst,
return false;
}
int8_t wlan_get_cfg_max_tx_power(struct wlan_objmgr_psoc *psoc,
struct wlan_objmgr_pdev *pdev,
uint32_t ch_freq)
{
uint32_t cfg_length = 0;
int8_t max_tx_pwr = 0;
struct pwr_channel_info *country_info = NULL;
uint8_t count = 0;
uint8_t maxChannels;
int32_t rem_length = 0;
struct wlan_mlme_psoc_ext_obj *mlme_obj;
mlme_obj = mlme_get_psoc_ext_obj(psoc);
if (!mlme_obj)
return max_tx_pwr;
if (WLAN_REG_IS_5GHZ_CH_FREQ(ch_freq)) {
cfg_length = mlme_obj->cfg.power.max_tx_power_5.len;
} else if (WLAN_REG_IS_24GHZ_CH_FREQ(ch_freq)) {
cfg_length = mlme_obj->cfg.power.max_tx_power_24.len;
} else if (wlan_reg_is_6ghz_chan_freq(ch_freq)) {
return wlan_reg_get_channel_reg_power_for_freq(pdev,
ch_freq);
} else {
return max_tx_pwr;
}
if (!cfg_length)
goto error;
country_info = qdf_mem_malloc(cfg_length);
if (!country_info)
goto error;
if (WLAN_REG_IS_5GHZ_CH_FREQ(ch_freq)) {
if (cfg_length > CFG_MAX_TX_POWER_5_LEN)
goto error;
qdf_mem_copy(country_info,
mlme_obj->cfg.power.max_tx_power_5.data,
cfg_length);
} else if (WLAN_REG_IS_24GHZ_CH_FREQ(ch_freq)) {
if (cfg_length > CFG_MAX_TX_POWER_2_4_LEN)
goto error;
qdf_mem_copy(country_info,
mlme_obj->cfg.power.max_tx_power_24.data,
cfg_length);
}
/* Identify the channel and maxtxpower */
rem_length = cfg_length;
while (rem_length >= (sizeof(tSirMacChanInfo))) {
maxChannels = country_info[count].num_chan;
max_tx_pwr = country_info[count].max_tx_pwr;
count++;
rem_length -= (sizeof(tSirMacChanInfo));
if (ch_freq >= country_info[count].first_freq &&
ch_freq < (country_info[count].first_freq + maxChannels)) {
break;
}
}
error:
if (country_info)
qdf_mem_free(country_info);
return max_tx_pwr;
}
#if defined(WLAN_FEATURE_HOST_ROAM) || defined(WLAN_FEATURE_ROAM_OFFLOAD)
static
const char *mlme_roam_state_to_string(enum roam_offload_state state)