qcacmn: Add WMI changes for EMA AP

Enhanced Multi-BSSID Advertisement is an enhancement to the
existing Multi-BSSID feature in terms of advertising
non-transmitted bssid profile using the transmitted bssid
beacon. Mandatory inclusion of RNR IE in lower-band AP
beacon to support Out-of-Band Advertisement of colocated
6Ghz AP may impose limitation in the beacon size. EMA AP
provides a standardized way of overcoming such a limitation

Relevant WMI changes are:
1. Support of EMA AP service bit in wmi_service_ready_ext
2. Support of 32-bit ema_params in wmi_bcn_tmpl_cmd_fixed_param
to signal ema_beacon_profile_periodicity, ema_beacon_tmpl_idx,
ema_first_tmpl and ema_last_tmpl to firmware while sending the
beacon template
3. Support of 32-bit WMI resource-config params in INIT cmd
to signal number of max transmitting BSSs and max profile
periodicity

CRs-fixed: 2677701
Change-Id: I6c7b146b5071ad0a1c45fc3ec6fd03ed5dbe8020
This commit is contained in:
Gyanranjan Hazarika
2020-04-27 19:14:06 -07:00
committed by nshrivas
parent 794de3dacb
commit bf7b89c52b
2 changed files with 10 additions and 0 deletions

View File

@@ -5129,6 +5129,7 @@ typedef enum {
wmi_beacon_protection_support,
wmi_service_sta_nan_ndi_four_port,
wmi_service_host_scan_stop_vdev_all,
wmi_service_ema_ap_support,
wmi_services_max,
} wmi_conv_service_ids;
#define WMI_SERVICE_UNAVAILABLE 0xFFFF
@@ -5266,6 +5267,8 @@ struct wmi_host_fw_abi_ver {
* @nan_separate_iface_support: Separate iface creation for NAN
* @time_sync_ftm: enable ftm based time sync
* @max_rnr_neighbours: Max supported RNR neighbors in multisoc APs
* @ema_max_vap_cnt: Number of maximum EMA tx-vaps at any instance of time
* @ema_max_profile_period: Maximum EMA profile periodicity on any pdev
*/
typedef struct {
uint32_t num_vdevs;
@@ -5365,6 +5368,8 @@ typedef struct {
bool nan_separate_iface_support;
bool time_sync_ftm;
uint32_t max_rnr_neighbours;
uint32_t ema_max_vap_cnt;
uint32_t ema_max_profile_period;
} target_resource_config;
/**

View File

@@ -2432,6 +2432,7 @@ static QDF_STATUS send_beacon_tmpl_send_cmd_tlv(wmi_unified_t wmi_handle,
cmd->ext_csa_switch_count_offset = param->ext_csa_switch_count_offset;
cmd->esp_ie_offset = param->esp_ie_offset;
cmd->mu_edca_ie_offset = param->mu_edca_ie_offset;
cmd->ema_params = param->ema_params;
cmd->buf_len = param->tmpl_len;
WMI_BEACON_PROTECTION_EN_SET(cmd->feature_enable_bitmap,
@@ -6772,6 +6773,9 @@ void wmi_copy_resource_config(wmi_resource_config *resource_cfg,
* and it can support 6Ghz.
*/
resource_cfg->max_rnr_neighbours = MAX_SUPPORTED_NEIGHBORS;
resource_cfg->ema_max_vap_cnt = tgt_res_cfg->ema_max_vap_cnt;
resource_cfg->ema_max_profile_period =
tgt_res_cfg->ema_max_profile_period;
if (tgt_res_cfg->atf_config)
WMI_RSRC_CFG_FLAG_ATF_CONFIG_ENABLE_SET(resource_cfg->flag1, 1);
if (tgt_res_cfg->mgmt_comp_evt_bundle_support)
@@ -14443,6 +14447,7 @@ static void populate_tlv_service(uint32_t *wmi_service)
wmi_service[wmi_service_wlm_stats_support] =
WMI_SERVICE_WLM_STATS_REQUEST;
wmi_service[wmi_service_infra_mbssid] = WMI_SERVICE_INFRA_MBSSID;
wmi_service[wmi_service_ema_ap_support] = WMI_SERVICE_EMA_AP_SUPPORT;
wmi_service[wmi_service_ul_ru26_allowed] = WMI_SERVICE_UL_RU26_ALLOWED;
wmi_service[wmi_service_cfr_capture_support] =
WMI_SERVICE_CFR_CAPTURE_SUPPORT;