qcacld-3.0: [11AX] Add support in HDD to update HE Capabilities

Add support in HDD to update 11ax - High Efficiency(HE) Capabilities
received as part of the target configuration.

Add support for new WNI_CFG global config parameters to be
used for implementing 11AX standard.

Change-Id: I3f0d3af2369157c657ac59676a434dc794f84b19
CRs-Fixed: 1073481
This commit is contained in:
Krishna Kumaar Natarajan 2016-09-24 18:05:47 -07:00 • committed by Sandeep Puligilla
commit ed1efd9653
6 changed files with 865 additions and 2 deletions

4
Kbuild
View file

@ -491,6 +491,10 @@ ifeq ($(CONFIG_WLAN_FEATURE_NAN_DATAPATH), y)
HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_nan_datapath.o
endif
ifeq ($(CONFIG_WLAN_FEATURE_11AX),y)
HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_he.o
endif
########### HOST DIAG LOG ###########
HOST_DIAG_LOG_DIR := $(WLAN_COMMON_ROOT)/utils/host_diag_log

View file

@ -0,0 +1,41 @@
/*
* Copyright (c) 2017 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/**
* DOC : wlan_hdd_he.h
*
* WLAN Host Device Driver file for 802.11ax (High Efficiency) support.
*
*/
#if !defined(WLAN_HDD_HE_H)
#define WLAN_HDD_HE_H
struct hdd_context_s;
struct wma_tgt_cfg;
#ifdef WLAN_FEATURE_11AX
void hdd_update_tgt_he_cap(struct hdd_context_s *hdd_ctx,
struct wma_tgt_cfg *cfg);
#else
static inline void hdd_update_tgt_he_cap(struct hdd_context_s *hdd_ctx,
struct wma_tgt_cfg *cfg)
{
}
#endif
#endif /* if !defined(WLAN_HDD_HE_H)*/

251
core/hdd/src/wlan_hdd_he.c Normal file
View file

@ -0,0 +1,251 @@
/*
* Copyright (c) 2017 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/**
* DOC : wlan_hdd_he.c
*
* WLAN Host Device Driver file for 802.11ax (High Efficiency) support.
*
*/
#include "wlan_hdd_main.h"
#include "wlan_hdd_he.h"
/**
* hdd_he_wni_cfg_to_string() - return string conversion of HE WNI CFG
* @cfg_id: Config ID.
*
* This utility function helps log string conversion of WNI config ID.
*
* Return: string conversion of the HE WNI config ID, if match found;
* "Invalid" otherwise.
*/
static const char *hdd_he_wni_cfg_to_string(uint16_t cfg_id)
{
switch (cfg_id) {
default:
return "Invalid";
CASE_RETURN_STRING(WNI_CFG_HE_CONTROL);
CASE_RETURN_STRING(WNI_CFG_HE_TWT_REQUESTOR);
CASE_RETURN_STRING(WNI_CFG_HE_TWT_RESPONDER);
CASE_RETURN_STRING(WNI_CFG_HE_FRAGMENTATION);
CASE_RETURN_STRING(WNI_CFG_HE_MAX_FRAG_MSDU);
CASE_RETURN_STRING(WNI_CFG_HE_MIN_FRAG_SIZE);
CASE_RETURN_STRING(WNI_CFG_HE_TRIG_PAD);
CASE_RETURN_STRING(WNI_CFG_HE_MTID_AGGR);
CASE_RETURN_STRING(WNI_CFG_HE_LINK_ADAPTATION);
CASE_RETURN_STRING(WNI_CFG_HE_ALL_ACK);
CASE_RETURN_STRING(WNI_CFG_HE_UL_MU_RSP_SCHEDULING);
CASE_RETURN_STRING(WNI_CFG_HE_BUFFER_STATUS_RPT);
CASE_RETURN_STRING(WNI_CFG_HE_BCAST_TWT);
CASE_RETURN_STRING(WNI_CFG_HE_BA_32BIT);
CASE_RETURN_STRING(WNI_CFG_HE_MU_CASCADING);
CASE_RETURN_STRING(WNI_CFG_HE_MULTI_TID);
CASE_RETURN_STRING(WNI_CFG_HE_DL_MU_BA);
CASE_RETURN_STRING(WNI_CFG_HE_OMI);
CASE_RETURN_STRING(WNI_CFG_HE_OFDMA_RA);
CASE_RETURN_STRING(WNI_CFG_HE_MAX_AMPDU_LEN);
CASE_RETURN_STRING(WNI_CFG_HE_AMSDU_FRAG);
CASE_RETURN_STRING(WNI_CFG_HE_FLEX_TWT_SCHED);
CASE_RETURN_STRING(WNI_CFG_HE_RX_CTRL);
CASE_RETURN_STRING(WNI_CFG_HE_BSRP_AMPDU_AGGR);
CASE_RETURN_STRING(WNI_CFG_HE_QTP);
CASE_RETURN_STRING(WNI_CFG_HE_A_BQR);
CASE_RETURN_STRING(WNI_CFG_HE_DUAL_BAND);
CASE_RETURN_STRING(WNI_CFG_HE_CHAN_WIDTH);
CASE_RETURN_STRING(WNI_CFG_HE_RX_PREAM_PUNC);
CASE_RETURN_STRING(WNI_CFG_HE_CLASS_OF_DEVICE);
CASE_RETURN_STRING(WNI_CFG_HE_LDPC);
CASE_RETURN_STRING(WNI_CFG_HE_LTF_PPDU);
CASE_RETURN_STRING(WNI_CFG_HE_LTF_NDP);
CASE_RETURN_STRING(WNI_CFG_HE_STBC);
CASE_RETURN_STRING(WNI_CFG_HE_DOPPLER);
CASE_RETURN_STRING(WNI_CFG_HE_UL_MUMIMO);
CASE_RETURN_STRING(WNI_CFG_HE_DCM_TX);
CASE_RETURN_STRING(WNI_CFG_HE_DCM_RX);
CASE_RETURN_STRING(WNI_CFG_HE_MU_PPDU);
CASE_RETURN_STRING(WNI_CFG_HE_SU_BEAMFORMER);
CASE_RETURN_STRING(WNI_CFG_HE_SU_BEAMFORMEE);
CASE_RETURN_STRING(WNI_CFG_HE_MU_BEAMFORMER);
CASE_RETURN_STRING(WNI_CFG_HE_BFEE_STS_LT80);
CASE_RETURN_STRING(WNI_CFG_HE_NSTS_TOT_LT80);
CASE_RETURN_STRING(WNI_CFG_HE_BFEE_STS_GT80);
CASE_RETURN_STRING(WNI_CFG_HE_NSTS_TOT_GT80);
CASE_RETURN_STRING(WNI_CFG_HE_NUM_SOUND_LT80);
CASE_RETURN_STRING(WNI_CFG_HE_NUM_SOUND_GT80);
CASE_RETURN_STRING(WNI_CFG_HE_SU_FEED_TONE16);
CASE_RETURN_STRING(WNI_CFG_HE_MU_FEED_TONE16);
CASE_RETURN_STRING(WNI_CFG_HE_CODEBOOK_SU);
CASE_RETURN_STRING(WNI_CFG_HE_CODEBOOK_MU);
CASE_RETURN_STRING(WNI_CFG_HE_BFRM_FEED);
CASE_RETURN_STRING(WNI_CFG_HE_ER_SU_PPDU);
CASE_RETURN_STRING(WNI_CFG_HE_DL_PART_BW);
CASE_RETURN_STRING(WNI_CFG_HE_PPET_PRESENT);
CASE_RETURN_STRING(WNI_CFG_HE_SRP);
CASE_RETURN_STRING(WNI_CFG_HE_POWER_BOOST);
CASE_RETURN_STRING(WNI_CFG_HE_4x_LTF_GI);
CASE_RETURN_STRING(WNI_CFG_HE_NSS);
CASE_RETURN_STRING(WNI_CFG_HE_MCS);
CASE_RETURN_STRING(WNI_CFG_HE_PPET);
}
}
/**
* hdd_he_set_wni_cfg() - Update WNI CFG
* @hdd_ctx: HDD context
* @cfg_id: CFG to be udpated
* @new_value: Value to be updated
*
* Update WNI CFG with the value passed.
*
* Return: None
*/
static void hdd_he_set_wni_cfg(struct hdd_context_s *hdd_ctx,
uint16_t cfg_id, uint32_t new_value)
{
QDF_STATUS status;
status = sme_cfg_set_int(hdd_ctx->hHal, cfg_id, new_value);
if (QDF_IS_STATUS_ERROR(status))
hdd_err("could not set %s", hdd_he_wni_cfg_to_string(cfg_id));
}
/**
* hdd_update_tgt_he_cap() - Update HE related capabilities
* @hdd_ctx: HDD context
* @he_cap: Target HE capabilities
*
* This function updaates WNI CFG with Target capabilities received as part of
* Default values present in WNI CFG are the values supported by FW/HW.
* INI should be introduced if user control is required to control the value.
*
* Return: None
*/
void hdd_update_tgt_he_cap(struct hdd_context_s *hdd_ctx,
struct wma_tgt_cfg *cfg)
{
uint32_t ppet_size = sizeof(tDot11fIEppe_threshold);
QDF_STATUS status;
tDot11fIEvendor_he_cap *he_cap = &cfg->he_cap;
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_CONTROL, he_cap->htc_he);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_TWT_REQUESTOR,
he_cap->twt_request);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_TWT_RESPONDER,
he_cap->twt_responder);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_FRAGMENTATION,
he_cap->fragmentation);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_MAX_FRAG_MSDU,
he_cap->max_num_frag_msdu);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_MIN_FRAG_SIZE,
he_cap->min_frag_size);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_TRIG_PAD,
he_cap->trigger_frm_mac_pad);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_MTID_AGGR,
he_cap->multi_tid_aggr);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_LINK_ADAPTATION,
he_cap->he_link_adaptation);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_ALL_ACK, he_cap->all_ack);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_UL_MU_RSP_SCHEDULING,
he_cap->ul_mu_rsp_sched);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_BUFFER_STATUS_RPT,
he_cap->a_bsr);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_BCAST_TWT,
he_cap->broadcast_twt);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_BA_32BIT,
he_cap->ba_32bit_bitmap);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_MU_CASCADING,
he_cap->mu_cascade);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_MULTI_TID,
he_cap->ack_enabled_multitid);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_DL_MU_BA, he_cap->dl_mu_ba);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_OMI, he_cap->omi_a_ctrl);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_OFDMA_RA, he_cap->ofdma_ra);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_MAX_AMPDU_LEN,
he_cap->max_ampdu_len);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_AMSDU_FRAG, he_cap->amsdu_frag);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_FLEX_TWT_SCHED,
he_cap->flex_twt_sched);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_RX_CTRL, he_cap->rx_ctrl_frame);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_BSRP_AMPDU_AGGR,
he_cap->bsrp_ampdu_aggr);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_QTP, he_cap->qtp);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_A_BQR, he_cap->a_bqr);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_DUAL_BAND, he_cap->dual_band);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_CHAN_WIDTH, he_cap->chan_width);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_RX_PREAM_PUNC,
he_cap->rx_pream_puncturing);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_CLASS_OF_DEVICE,
he_cap->device_class);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_LDPC, he_cap->ldpc_coding);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_LTF_PPDU,
he_cap->he_ltf_gi_ppdu);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_LTF_NDP, he_cap->he_ltf_gi_ndp);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_STBC, he_cap->stbc);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_DOPPLER, he_cap->doppler);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_UL_MUMIMO, he_cap->ul_mu);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_DCM_TX, he_cap->dcm_enc_tx);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_DCM_RX, he_cap->dcm_enc_rx);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_MU_PPDU, he_cap->ul_he_mu);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_SU_BEAMFORMER,
he_cap->su_beamformer);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_SU_BEAMFORMEE,
he_cap->su_beamformee);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_MU_BEAMFORMER,
he_cap->mu_beamformer);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_BFEE_STS_LT80,
he_cap->bfee_sts_lt_80);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_NSTS_TOT_LT80,
he_cap->nsts_tol_lt_80);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_BFEE_STS_GT80,
he_cap->bfee_sta_gt_80);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_NSTS_TOT_GT80,
he_cap->nsts_tot_gt_80);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_NUM_SOUND_LT80,
he_cap->num_sounding_lt_80);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_NUM_SOUND_GT80,
he_cap->num_sounding_gt_80);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_SU_FEED_TONE16,
he_cap->su_feedback_tone16);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_MU_FEED_TONE16,
he_cap->mu_feedback_tone16);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_CODEBOOK_SU,
he_cap->codebook_su);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_CODEBOOK_MU,
he_cap->codebook_mu);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_BFRM_FEED,
he_cap->beamforming_feedback);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_ER_SU_PPDU,
he_cap->he_er_su_ppdu);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_DL_PART_BW,
he_cap->dl_mu_mimo_part_bw);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_PPET_PRESENT,
he_cap->ppet_present);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_SRP, he_cap->srp);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_POWER_BOOST,
he_cap->power_boost);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_4x_LTF_GI, he_cap->he_ltf_gi_4x);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_NSS, he_cap->nss_supported);
hdd_he_set_wni_cfg(hdd_ctx, WNI_CFG_HE_MCS, he_cap->mcs_supported);
/* PPET can not be configured by user - Set values from FW */
status = sme_cfg_set_str(hdd_ctx->hHal, WNI_CFG_HE_PPET,
(void *)&he_cap->ppe_threshold, ppet_size);
if (status == QDF_STATUS_E_FAILURE)
hdd_alert("could not set HE PPET");
}

View file

@ -93,6 +93,7 @@
#include "wlan_hdd_driver_ops.h"
#include "epping_main.h"
#include "wlan_hdd_memdump.h"
#include "wlan_hdd_he.h"
#include <wlan_hdd_ipa.h>
#include "hif.h"
@ -1452,6 +1453,10 @@ void hdd_update_tgt_cfg(void *context, void *param)
hdd_update_tgt_ht_cap(hdd_ctx, &cfg->ht_cap);
hdd_update_tgt_vht_cap(hdd_ctx, &cfg->vht_cap);
if (cfg->services.en_11ax) {
hdd_info("11AX: 11ax is enabled - update HDD config");
hdd_update_tgt_he_cap(hdd_ctx, cfg);
}
hdd_update_vdev_nss(hdd_ctx);

View file

@ -254,6 +254,68 @@ enum {
WNI_CFG_MAX_HT_MCS_TX_DATA,
WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA,
WNI_CFG_RATE_FOR_TX_MGMT,
WNI_CFG_HE_CONTROL,
WNI_CFG_HE_TWT_REQUESTOR,
WNI_CFG_HE_TWT_RESPONDER,
WNI_CFG_HE_FRAGMENTATION,
WNI_CFG_HE_MAX_FRAG_MSDU,
WNI_CFG_HE_MIN_FRAG_SIZE,
WNI_CFG_HE_TRIG_PAD,
WNI_CFG_HE_MTID_AGGR,
WNI_CFG_HE_LINK_ADAPTATION,
WNI_CFG_HE_ALL_ACK,
WNI_CFG_HE_UL_MU_RSP_SCHEDULING,
WNI_CFG_HE_BUFFER_STATUS_RPT,
WNI_CFG_HE_BCAST_TWT,
WNI_CFG_HE_BA_32BIT,
WNI_CFG_HE_MU_CASCADING,
WNI_CFG_HE_MULTI_TID,
WNI_CFG_HE_DL_MU_BA,
WNI_CFG_HE_OMI,
WNI_CFG_HE_OFDMA_RA,
WNI_CFG_HE_MAX_AMPDU_LEN,
WNI_CFG_HE_AMSDU_FRAG,
WNI_CFG_HE_FLEX_TWT_SCHED,
WNI_CFG_HE_RX_CTRL,
WNI_CFG_HE_BSRP_AMPDU_AGGR,
WNI_CFG_HE_QTP,
WNI_CFG_HE_A_BQR,
WNI_CFG_HE_DUAL_BAND,
WNI_CFG_HE_CHAN_WIDTH,
WNI_CFG_HE_RX_PREAM_PUNC,
WNI_CFG_HE_CLASS_OF_DEVICE,
WNI_CFG_HE_LDPC,
WNI_CFG_HE_LTF_PPDU,
WNI_CFG_HE_LTF_NDP,
WNI_CFG_HE_STBC,
WNI_CFG_HE_DOPPLER,
WNI_CFG_HE_UL_MUMIMO,
WNI_CFG_HE_DCM_TX,
WNI_CFG_HE_DCM_RX,
WNI_CFG_HE_MU_PPDU,
WNI_CFG_HE_SU_BEAMFORMER,
WNI_CFG_HE_SU_BEAMFORMEE,
WNI_CFG_HE_MU_BEAMFORMER,
WNI_CFG_HE_BFEE_STS_LT80,
WNI_CFG_HE_NSTS_TOT_LT80,
WNI_CFG_HE_BFEE_STS_GT80,
WNI_CFG_HE_NSTS_TOT_GT80,
WNI_CFG_HE_NUM_SOUND_LT80,
WNI_CFG_HE_NUM_SOUND_GT80,
WNI_CFG_HE_SU_FEED_TONE16,
WNI_CFG_HE_MU_FEED_TONE16,
WNI_CFG_HE_CODEBOOK_SU,
WNI_CFG_HE_CODEBOOK_MU,
WNI_CFG_HE_BFRM_FEED,
WNI_CFG_HE_ER_SU_PPDU,
WNI_CFG_HE_DL_PART_BW,
WNI_CFG_HE_PPET_PRESENT,
WNI_CFG_HE_SRP,
WNI_CFG_HE_POWER_BOOST,
WNI_CFG_HE_4x_LTF_GI,
WNI_CFG_HE_NSS,
WNI_CFG_HE_MCS,
WNI_CFG_HE_PPET,
/* Any new items to be added should be above this strictly */
CFG_PARAM_MAX_NUM
};
@ -305,6 +367,7 @@ enum {
#define WNI_CFG_ASSOC_RSP_ADDNIE_DATA_LEN 255
#define WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA_LEN 255
#define WNI_CFG_WPS_UUID_LEN 16
#define WNI_CFG_HE_PPET_LEN 27
/*
* Integer parameter min/max/default values
@ -1275,6 +1338,250 @@ enum {
#define WNI_CFG_RATE_FOR_TX_MGMT_STAMAX 0xFF
#define WNI_CFG_RATE_FOR_TX_MGMT_STADEF 0xFF
#define WNI_CFG_HE_CONTROL_STAMIN 0
#define WNI_CFG_HE_CONTROL_STAMAX 1
#define WNI_CFG_HE_CONTROL_STADEF 0
#define WNI_CFG_HE_TWT_REQUESTOR_STAMIN 0
#define WNI_CFG_HE_TWT_REQUESTOR_STAMAX 1
#define WNI_CFG_HE_TWT_REQUESTOR_STADEF 0
#define WNI_CFG_HE_TWT_RESPONDER_STAMIN 0
#define WNI_CFG_HE_TWT_RESPONDER_STAMAX 1
#define WNI_CFG_HE_TWT_RESPONDER_STADEF 0
#define WNI_CFG_HE_FRAGMENTATION_STAMIN 0
#define WNI_CFG_HE_FRAGMENTATION_STAMAX 0x3
#define WNI_CFG_HE_FRAGMENTATION_STADEF 0
#define WNI_CFG_HE_MAX_FRAG_MSDU_STAMIN 0
#define WNI_CFG_HE_MAX_FRAG_MSDU_STAMAX 0x7
#define WNI_CFG_HE_MAX_FRAG_MSDU_STADEF 0
#define WNI_CFG_HE_MIN_FRAG_SIZE_STAMIN 0
#define WNI_CFG_HE_MIN_FRAG_SIZE_STAMAX 0x3
#define WNI_CFG_HE_MIN_FRAG_SIZE_STADEF 0
#define WNI_CFG_HE_TRIG_PAD_STAMIN 0
#define WNI_CFG_HE_TRIG_PAD_STAMAX 2
#define WNI_CFG_HE_TRIG_PAD_STADEF 0
#define WNI_CFG_HE_MTID_AGGR_STAMIN 0
#define WNI_CFG_HE_MTID_AGGR_STAMAX 0x7
#define WNI_CFG_HE_MTID_AGGR_STADEF 0
#define WNI_CFG_HE_LINK_ADAPTATION_STAMIN 0
#define WNI_CFG_HE_LINK_ADAPTATION_STAMAX 0x3
#define WNI_CFG_HE_LINK_ADAPTATION_STADEF 0
#define WNI_CFG_HE_ALL_ACK_STAMIN 0
#define WNI_CFG_HE_ALL_ACK_STAMAX 1
#define WNI_CFG_HE_ALL_ACK_STADEF 0
#define WNI_CFG_HE_UL_MU_RSP_SCHEDULING_STAMIN 0
#define WNI_CFG_HE_UL_MU_RSP_SCHEDULING_STAMAX 1
#define WNI_CFG_HE_UL_MU_RSP_SCHEDULING_STADEF 0
#define WNI_CFG_HE_BUFFER_STATUS_RPT_STAMIN 0
#define WNI_CFG_HE_BUFFER_STATUS_RPT_STAMAX 1
#define WNI_CFG_HE_BUFFER_STATUS_RPT_STADEF 0
#define WNI_CFG_HE_BCAST_TWT_STAMIN 0
#define WNI_CFG_HE_BCAST_TWT_STAMAX 1
#define WNI_CFG_HE_BCAST_TWT_STADEF 0
#define WNI_CFG_HE_BA_32BIT_STAMIN 0
#define WNI_CFG_HE_BA_32BIT_STAMAX 1
#define WNI_CFG_HE_BA_32BIT_STADEF 0
#define WNI_CFG_HE_MU_CASCADING_STAMIN 0
#define WNI_CFG_HE_MU_CASCADING_STAMAX 1
#define WNI_CFG_HE_MU_CASCADING_STADEF 0
#define WNI_CFG_HE_MULTI_TID_STAMIN 0
#define WNI_CFG_HE_MULTI_TID_STAMAX 1
#define WNI_CFG_HE_MULTI_TID_STADEF 0
#define WNI_CFG_HE_DL_MU_BA_STAMIN 0
#define WNI_CFG_HE_DL_MU_BA_STAMAX 1
#define WNI_CFG_HE_DL_MU_BA_STADEF 0
#define WNI_CFG_HE_OMI_STAMIN 0
#define WNI_CFG_HE_OMI_STAMAX 1
#define WNI_CFG_HE_OMI_STADEF 0
#define WNI_CFG_HE_OFDMA_RA_STAMIN 0
#define WNI_CFG_HE_OFDMA_RA_STAMAX 1
#define WNI_CFG_HE_OFDMA_RA_STADEF 0
#define WNI_CFG_HE_MAX_AMPDU_LEN_STAMIN 0
#define WNI_CFG_HE_MAX_AMPDU_LEN_STAMAX 0x3
#define WNI_CFG_HE_MAX_AMPDU_LEN_STADEF 0
#define WNI_CFG_HE_AMSDU_FRAG_STAMIN 0
#define WNI_CFG_HE_AMSDU_FRAG_STAMAX 1
#define WNI_CFG_HE_AMSDU_FRAG_STADEF 0
#define WNI_CFG_HE_FLEX_TWT_SCHED_STAMIN 0
#define WNI_CFG_HE_FLEX_TWT_SCHED_STAMAX 1
#define WNI_CFG_HE_FLEX_TWT_SCHED_STADEF 0
#define WNI_CFG_HE_RX_CTRL_STAMIN 0
#define WNI_CFG_HE_RX_CTRL_STAMAX 1
#define WNI_CFG_HE_RX_CTRL_STADEF 0
#define WNI_CFG_HE_BSRP_AMPDU_AGGR_STAMIN 0
#define WNI_CFG_HE_BSRP_AMPDU_AGGR_STAMAX 1
#define WNI_CFG_HE_BSRP_AMPDU_AGGR_STADEF 0
#define WNI_CFG_HE_QTP_STAMIN 0
#define WNI_CFG_HE_QTP_STAMAX 1
#define WNI_CFG_HE_QTP_STADEF 0
#define WNI_CFG_HE_A_BQR_STAMIN 0
#define WNI_CFG_HE_A_BQR_STAMAX 1
#define WNI_CFG_HE_A_BQR_STADEF 0
#define WNI_CFG_HE_DUAL_BAND_STAMIN 0
#define WNI_CFG_HE_DUAL_BAND_STAMAX 1
#define WNI_CFG_HE_DUAL_BAND_STADEF 0
#define WNI_CFG_HE_CHAN_WIDTH_STAMIN 0
#define WNI_CFG_HE_CHAN_WIDTH_STAMAX 0x3F
#define WNI_CFG_HE_CHAN_WIDTH_STADEF 0
#define WNI_CFG_HE_RX_PREAM_PUNC_STAMIN 0
#define WNI_CFG_HE_RX_PREAM_PUNC_STAMAX 0xF
#define WNI_CFG_HE_RX_PREAM_PUNC_STADEF 0
#define WNI_CFG_HE_CLASS_OF_DEVICE_STAMIN 0
#define WNI_CFG_HE_CLASS_OF_DEVICE_STAMAX 1
#define WNI_CFG_HE_CLASS_OF_DEVICE_STADEF 0
#define WNI_CFG_HE_LDPC_STAMIN 0
#define WNI_CFG_HE_LDPC_STAMAX 1
#define WNI_CFG_HE_LDPC_STADEF 0
#define WNI_CFG_HE_LTF_PPDU_STAMIN 0
#define WNI_CFG_HE_LTF_PPDU_STAMAX 0x3
#define WNI_CFG_HE_LTF_PPDU_STADEF 0
#define WNI_CFG_HE_LTF_NDP_STAMIN 0
#define WNI_CFG_HE_LTF_NDP_STAMAX 0x3
#define WNI_CFG_HE_LTF_NDP_STADEF 0
#define WNI_CFG_HE_STBC_STAMIN 0
#define WNI_CFG_HE_STBC_STAMAX 0x3
#define WNI_CFG_HE_STBC_STADEF 0
#define WNI_CFG_HE_DOPPLER_STAMIN 0
#define WNI_CFG_HE_DOPPLER_STAMAX 0x3
#define WNI_CFG_HE_DOPPLER_STADEF 0
#define WNI_CFG_HE_UL_MUMIMO_STAMIN 0
#define WNI_CFG_HE_UL_MUMIMO_STAMAX 0x3
#define WNI_CFG_HE_UL_MUMIMO_STADEF 0
#define WNI_CFG_HE_DCM_TX_STAMIN 0
#define WNI_CFG_HE_DCM_TX_STAMAX 0x7
#define WNI_CFG_HE_DCM_TX_STADEF 0
#define WNI_CFG_HE_DCM_RX_STAMIN 0
#define WNI_CFG_HE_DCM_RX_STAMAX 0x7
#define WNI_CFG_HE_DCM_RX_STADEF 0
#define WNI_CFG_HE_MU_PPDU_STAMIN 0
#define WNI_CFG_HE_MU_PPDU_STAMAX 1
#define WNI_CFG_HE_MU_PPDU_STADEF 0
#define WNI_CFG_HE_SU_BEAMFORMER_STAMIN 0
#define WNI_CFG_HE_SU_BEAMFORMER_STAMAX 1
#define WNI_CFG_HE_SU_BEAMFORMER_STADEF 0
#define WNI_CFG_HE_SU_BEAMFORMEE_STAMIN 0
#define WNI_CFG_HE_SU_BEAMFORMEE_STAMAX 1
#define WNI_CFG_HE_SU_BEAMFORMEE_STADEF 0
#define WNI_CFG_HE_MU_BEAMFORMER_STAMIN 0
#define WNI_CFG_HE_MU_BEAMFORMER_STAMAX 1
#define WNI_CFG_HE_MU_BEAMFORMER_STADEF 0
#define WNI_CFG_HE_BFEE_STS_LT80_STAMIN 0x3
#define WNI_CFG_HE_BFEE_STS_LT80_STAMAX 0x7
#define WNI_CFG_HE_BFEE_STS_LT80_STADEF 0
#define WNI_CFG_HE_NSTS_TOT_LT80_STAMIN 0x3
#define WNI_CFG_HE_NSTS_TOT_LT80_STAMAX 0x7
#define WNI_CFG_HE_NSTS_TOT_LT80_STADEF 0
#define WNI_CFG_HE_BFEE_STS_GT80_STAMIN 0x3
#define WNI_CFG_HE_BFEE_STS_GT80_STAMAX 0x7
#define WNI_CFG_HE_BFEE_STS_GT80_STADEF 0
#define WNI_CFG_HE_NSTS_TOT_GT80_STAMIN 0x3
#define WNI_CFG_HE_NSTS_TOT_GT80_STAMAX 0x7
#define WNI_CFG_HE_NSTS_TOT_GT80_STADEF 0
#define WNI_CFG_HE_NUM_SOUND_LT80_STAMIN 0
#define WNI_CFG_HE_NUM_SOUND_LT80_STAMAX 0x7
#define WNI_CFG_HE_NUM_SOUND_LT80_STADEF 0
#define WNI_CFG_HE_NUM_SOUND_GT80_STAMIN 0
#define WNI_CFG_HE_NUM_SOUND_GT80_STAMAX 0x7
#define WNI_CFG_HE_NUM_SOUND_GT80_STADEF 0
#define WNI_CFG_HE_SU_FEED_TONE16_STAMIN 0
#define WNI_CFG_HE_SU_FEED_TONE16_STAMAX 1
#define WNI_CFG_HE_SU_FEED_TONE16_STADEF 0
#define WNI_CFG_HE_MU_FEED_TONE16_STAMIN 0
#define WNI_CFG_HE_MU_FEED_TONE16_STAMAX 1
#define WNI_CFG_HE_MU_FEED_TONE16_STADEF 0
#define WNI_CFG_HE_CODEBOOK_SU_STAMIN 0
#define WNI_CFG_HE_CODEBOOK_SU_STAMAX 1
#define WNI_CFG_HE_CODEBOOK_SU_STADEF 0
#define WNI_CFG_HE_CODEBOOK_MU_STAMIN 0
#define WNI_CFG_HE_CODEBOOK_MU_STAMAX 1
#define WNI_CFG_HE_CODEBOOK_MU_STADEF 0
#define WNI_CFG_HE_BFRM_FEED_STAMIN 0
#define WNI_CFG_HE_BFRM_FEED_STAMAX 0x7
#define WNI_CFG_HE_BFRM_FEED_STADEF 0
#define WNI_CFG_HE_ER_SU_PPDU_STAMIN 0
#define WNI_CFG_HE_ER_SU_PPDU_STAMAX 1
#define WNI_CFG_HE_ER_SU_PPDU_STADEF 0
#define WNI_CFG_HE_DL_PART_BW_STAMIN 0
#define WNI_CFG_HE_DL_PART_BW_STAMAX 1
#define WNI_CFG_HE_DL_PART_BW_STADEF 0
#define WNI_CFG_HE_PPET_PRESENT_STAMIN 0
#define WNI_CFG_HE_PPET_PRESENT_STAMAX 1
#define WNI_CFG_HE_PPET_PRESENT_STADEF 0
#define WNI_CFG_HE_SRP_STAMIN 0
#define WNI_CFG_HE_SRP_STAMAX 1
#define WNI_CFG_HE_SRP_STADEF 0
#define WNI_CFG_HE_POWER_BOOST_STAMIN 0
#define WNI_CFG_HE_POWER_BOOST_STAMAX 1
#define WNI_CFG_HE_POWER_BOOST_STADEF 0
#define WNI_CFG_HE_4x_LTF_GI_STAMIN 0
#define WNI_CFG_HE_4x_LTF_GI_STAMAX 1
#define WNI_CFG_HE_4x_LTF_GI_STADEF 0
#define WNI_CFG_HE_NSS_STAMIN 0
#define WNI_CFG_HE_NSS_STAMAX 0x7
#define WNI_CFG_HE_NSS_STADEF 0
#define WNI_CFG_HE_MCS_STAMIN 0
#define WNI_CFG_HE_MCS_STAMAX 0x7
#define WNI_CFG_HE_MCS_STADEF 0
#define CFG_STA_MAGIC_DWORD 0xbeefbeef
#endif

View file

@ -1193,7 +1193,257 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = {
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_RATE_FOR_TX_MGMT_STAMIN,
WNI_CFG_RATE_FOR_TX_MGMT_STAMAX,
WNI_CFG_RATE_FOR_TX_MGMT_STADEF}
WNI_CFG_RATE_FOR_TX_MGMT_STADEF},
{WNI_CFG_HE_CONTROL,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_CONTROL_STAMIN, WNI_CFG_HE_CONTROL_STAMAX,
WNI_CFG_HE_CONTROL_STADEF},
{WNI_CFG_HE_TWT_REQUESTOR,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_TWT_REQUESTOR_STAMIN, WNI_CFG_HE_TWT_REQUESTOR_STAMAX,
WNI_CFG_HE_TWT_REQUESTOR_STADEF},
{WNI_CFG_HE_TWT_RESPONDER,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_TWT_RESPONDER_STAMIN, WNI_CFG_HE_TWT_RESPONDER_STAMAX,
WNI_CFG_HE_TWT_RESPONDER_STADEF},
{WNI_CFG_HE_FRAGMENTATION,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_FRAGMENTATION_STAMIN, WNI_CFG_HE_FRAGMENTATION_STAMAX,
WNI_CFG_HE_FRAGMENTATION_STADEF},
{WNI_CFG_HE_MAX_FRAG_MSDU,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_MAX_FRAG_MSDU_STAMIN, WNI_CFG_HE_MAX_FRAG_MSDU_STAMAX,
WNI_CFG_HE_MAX_FRAG_MSDU_STADEF},
{WNI_CFG_HE_MIN_FRAG_SIZE,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_MIN_FRAG_SIZE_STAMIN, WNI_CFG_HE_MIN_FRAG_SIZE_STAMAX,
WNI_CFG_HE_MIN_FRAG_SIZE_STADEF},
{WNI_CFG_HE_TRIG_PAD,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_TRIG_PAD_STAMIN, WNI_CFG_HE_TRIG_PAD_STAMAX,
WNI_CFG_HE_TRIG_PAD_STADEF},
{WNI_CFG_HE_MTID_AGGR,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_MTID_AGGR_STAMIN, WNI_CFG_HE_MTID_AGGR_STAMAX,
WNI_CFG_HE_MTID_AGGR_STADEF},
{WNI_CFG_HE_LINK_ADAPTATION,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_LINK_ADAPTATION_STAMIN, WNI_CFG_HE_LINK_ADAPTATION_STAMAX,
WNI_CFG_HE_LINK_ADAPTATION_STADEF},
{WNI_CFG_HE_ALL_ACK,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_ALL_ACK_STAMIN, WNI_CFG_HE_ALL_ACK_STAMAX,
WNI_CFG_HE_ALL_ACK_STADEF},
{WNI_CFG_HE_UL_MU_RSP_SCHEDULING,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_UL_MU_RSP_SCHEDULING_STAMIN,
WNI_CFG_HE_UL_MU_RSP_SCHEDULING_STAMAX,
WNI_CFG_HE_UL_MU_RSP_SCHEDULING_STADEF},
{WNI_CFG_HE_BUFFER_STATUS_RPT,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_BUFFER_STATUS_RPT_STAMIN,
WNI_CFG_HE_BUFFER_STATUS_RPT_STAMAX,
WNI_CFG_HE_BUFFER_STATUS_RPT_STADEF},
{WNI_CFG_HE_BCAST_TWT,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_BCAST_TWT_STAMIN, WNI_CFG_HE_BCAST_TWT_STAMAX,
WNI_CFG_HE_BCAST_TWT_STADEF},
{WNI_CFG_HE_BA_32BIT,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_BA_32BIT_STAMIN, WNI_CFG_HE_BA_32BIT_STAMAX,
WNI_CFG_HE_BA_32BIT_STADEF},
{WNI_CFG_HE_MU_CASCADING,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_MU_CASCADING_STAMIN, WNI_CFG_HE_MU_CASCADING_STAMAX,
WNI_CFG_HE_MU_CASCADING_STADEF},
{WNI_CFG_HE_MULTI_TID,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_MULTI_TID_STAMIN, WNI_CFG_HE_MULTI_TID_STAMAX,
WNI_CFG_HE_MULTI_TID_STADEF},
{WNI_CFG_HE_DL_MU_BA,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_DL_MU_BA_STAMIN, WNI_CFG_HE_DL_MU_BA_STAMAX,
WNI_CFG_HE_DL_MU_BA_STADEF},
{WNI_CFG_HE_OMI,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_OMI_STAMIN, WNI_CFG_HE_OMI_STAMAX,
WNI_CFG_HE_OMI_STADEF},
{WNI_CFG_HE_OFDMA_RA,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_OFDMA_RA_STAMIN, WNI_CFG_HE_OFDMA_RA_STAMAX,
WNI_CFG_HE_OFDMA_RA_STADEF},
{WNI_CFG_HE_MAX_AMPDU_LEN,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_MAX_AMPDU_LEN_STAMIN, WNI_CFG_HE_MAX_AMPDU_LEN_STAMAX,
WNI_CFG_HE_MAX_AMPDU_LEN_STADEF},
{WNI_CFG_HE_AMSDU_FRAG,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_AMSDU_FRAG_STAMIN, WNI_CFG_HE_AMSDU_FRAG_STAMAX,
WNI_CFG_HE_AMSDU_FRAG_STADEF},
{WNI_CFG_HE_FLEX_TWT_SCHED,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_FLEX_TWT_SCHED_STAMIN, WNI_CFG_HE_FLEX_TWT_SCHED_STAMAX,
WNI_CFG_HE_FLEX_TWT_SCHED_STADEF},
{WNI_CFG_HE_RX_CTRL,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_RX_CTRL_STAMIN, WNI_CFG_HE_RX_CTRL_STAMAX,
WNI_CFG_HE_RX_CTRL_STADEF},
{WNI_CFG_HE_BSRP_AMPDU_AGGR,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_BSRP_AMPDU_AGGR_STAMIN, WNI_CFG_HE_BSRP_AMPDU_AGGR_STAMAX,
WNI_CFG_HE_BSRP_AMPDU_AGGR_STADEF},
{WNI_CFG_HE_QTP,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_QTP_STAMIN, WNI_CFG_HE_QTP_STAMAX,
WNI_CFG_HE_QTP_STADEF},
{WNI_CFG_HE_A_BQR,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_A_BQR_STAMIN, WNI_CFG_HE_A_BQR_STAMAX,
WNI_CFG_HE_A_BQR_STADEF},
{WNI_CFG_HE_DUAL_BAND,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_DUAL_BAND_STAMIN, WNI_CFG_HE_DUAL_BAND_STAMAX,
WNI_CFG_HE_DUAL_BAND_STADEF},
{WNI_CFG_HE_CHAN_WIDTH,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_CHAN_WIDTH_STAMIN, WNI_CFG_HE_CHAN_WIDTH_STAMAX,
WNI_CFG_HE_CHAN_WIDTH_STADEF},
{WNI_CFG_HE_RX_PREAM_PUNC,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_RX_PREAM_PUNC_STAMIN, WNI_CFG_HE_RX_PREAM_PUNC_STAMAX,
WNI_CFG_HE_RX_PREAM_PUNC_STADEF},
{WNI_CFG_HE_CLASS_OF_DEVICE,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_CLASS_OF_DEVICE_STAMIN, WNI_CFG_HE_CLASS_OF_DEVICE_STAMAX,
WNI_CFG_HE_CLASS_OF_DEVICE_STADEF},
{WNI_CFG_HE_LDPC,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_LDPC_STAMIN, WNI_CFG_HE_LDPC_STAMAX,
WNI_CFG_HE_LDPC_STADEF},
{WNI_CFG_HE_LTF_PPDU,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_LTF_PPDU_STAMIN, WNI_CFG_HE_LTF_PPDU_STAMAX,
WNI_CFG_HE_LTF_PPDU_STADEF},
{WNI_CFG_HE_LTF_NDP,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_LTF_NDP_STAMIN, WNI_CFG_HE_LTF_NDP_STAMAX,
WNI_CFG_HE_LTF_NDP_STADEF},
{WNI_CFG_HE_STBC,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_STBC_STAMIN, WNI_CFG_HE_STBC_STAMAX,
WNI_CFG_HE_STBC_STADEF},
{WNI_CFG_HE_DOPPLER,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_DOPPLER_STAMIN, WNI_CFG_HE_DOPPLER_STAMAX,
WNI_CFG_HE_DOPPLER_STADEF},
{WNI_CFG_HE_UL_MUMIMO,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_UL_MUMIMO_STAMIN, WNI_CFG_HE_UL_MUMIMO_STAMAX,
WNI_CFG_HE_UL_MUMIMO_STADEF},
{WNI_CFG_HE_DCM_TX,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_DCM_TX_STAMIN, WNI_CFG_HE_DCM_TX_STAMAX,
WNI_CFG_HE_DCM_TX_STADEF},
{WNI_CFG_HE_DCM_RX,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_DCM_RX_STAMIN, WNI_CFG_HE_DCM_RX_STAMAX,
WNI_CFG_HE_DCM_RX_STADEF},
{WNI_CFG_HE_MU_PPDU,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_MU_PPDU_STAMIN, WNI_CFG_HE_MU_PPDU_STAMAX,
WNI_CFG_HE_MU_PPDU_STADEF},
{WNI_CFG_HE_SU_BEAMFORMER,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_SU_BEAMFORMER_STAMIN, WNI_CFG_HE_SU_BEAMFORMER_STAMAX,
WNI_CFG_HE_SU_BEAMFORMER_STADEF},
{WNI_CFG_HE_SU_BEAMFORMEE,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_SU_BEAMFORMEE_STAMIN, WNI_CFG_HE_SU_BEAMFORMEE_STAMAX,
WNI_CFG_HE_SU_BEAMFORMEE_STADEF},
{WNI_CFG_HE_MU_BEAMFORMER,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_MU_BEAMFORMER_STAMIN, WNI_CFG_HE_MU_BEAMFORMER_STAMAX,
WNI_CFG_HE_MU_BEAMFORMER_STADEF},
{WNI_CFG_HE_BFEE_STS_LT80,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_BFEE_STS_LT80_STAMIN, WNI_CFG_HE_BFEE_STS_LT80_STAMAX,
WNI_CFG_HE_BFEE_STS_LT80_STADEF},
{WNI_CFG_HE_NSTS_TOT_LT80,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_NSTS_TOT_LT80_STAMIN, WNI_CFG_HE_NSTS_TOT_LT80_STAMAX,
WNI_CFG_HE_NSTS_TOT_LT80_STADEF},
{WNI_CFG_HE_BFEE_STS_GT80,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_BFEE_STS_GT80_STAMIN, WNI_CFG_HE_BFEE_STS_GT80_STAMAX,
WNI_CFG_HE_BFEE_STS_GT80_STADEF},
{WNI_CFG_HE_NSTS_TOT_GT80,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_NSTS_TOT_GT80_STAMIN, WNI_CFG_HE_NSTS_TOT_GT80_STAMAX,
WNI_CFG_HE_NSTS_TOT_GT80_STADEF},
{WNI_CFG_HE_NUM_SOUND_LT80,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_NUM_SOUND_LT80_STAMIN, WNI_CFG_HE_NUM_SOUND_LT80_STAMAX,
WNI_CFG_HE_NUM_SOUND_LT80_STADEF},
{WNI_CFG_HE_NUM_SOUND_GT80,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_NUM_SOUND_GT80_STAMIN, WNI_CFG_HE_NUM_SOUND_GT80_STAMAX,
WNI_CFG_HE_NUM_SOUND_GT80_STADEF},
{WNI_CFG_HE_SU_FEED_TONE16,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_SU_FEED_TONE16_STAMIN, WNI_CFG_HE_SU_FEED_TONE16_STAMAX,
WNI_CFG_HE_SU_FEED_TONE16_STADEF},
{WNI_CFG_HE_MU_FEED_TONE16,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_MU_FEED_TONE16_STAMIN, WNI_CFG_HE_MU_FEED_TONE16_STAMAX,
WNI_CFG_HE_MU_FEED_TONE16_STADEF},
{WNI_CFG_HE_CODEBOOK_SU,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_CODEBOOK_SU_STAMIN, WNI_CFG_HE_CODEBOOK_SU_STAMAX,
WNI_CFG_HE_CODEBOOK_SU_STADEF},
{WNI_CFG_HE_CODEBOOK_MU,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_CODEBOOK_MU_STAMIN, WNI_CFG_HE_CODEBOOK_MU_STAMAX,
WNI_CFG_HE_CODEBOOK_MU_STADEF},
{WNI_CFG_HE_BFRM_FEED,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_BFRM_FEED_STAMIN, WNI_CFG_HE_BFRM_FEED_STAMAX,
WNI_CFG_HE_BFRM_FEED_STADEF},
{WNI_CFG_HE_ER_SU_PPDU,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_ER_SU_PPDU_STAMIN, WNI_CFG_HE_ER_SU_PPDU_STAMAX,
WNI_CFG_HE_ER_SU_PPDU_STADEF},
{WNI_CFG_HE_DL_PART_BW,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_DL_PART_BW_STAMIN, WNI_CFG_HE_DL_PART_BW_STAMAX,
WNI_CFG_HE_DL_PART_BW_STADEF},
{WNI_CFG_HE_PPET_PRESENT,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_PPET_PRESENT_STAMIN, WNI_CFG_HE_PPET_PRESENT_STAMAX,
WNI_CFG_HE_PPET_PRESENT_STADEF},
{WNI_CFG_HE_SRP,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_SRP_STAMIN, WNI_CFG_HE_SRP_STAMAX,
WNI_CFG_HE_SRP_STADEF},
{WNI_CFG_HE_POWER_BOOST,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_POWER_BOOST_STAMIN, WNI_CFG_HE_POWER_BOOST_STAMAX,
WNI_CFG_HE_POWER_BOOST_STADEF},
{WNI_CFG_HE_4x_LTF_GI,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_4x_LTF_GI_STAMIN, WNI_CFG_HE_4x_LTF_GI_STAMAX,
WNI_CFG_HE_4x_LTF_GI_STADEF},
{WNI_CFG_HE_NSS,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_NSS_STAMIN, WNI_CFG_HE_NSS_STAMAX,
WNI_CFG_HE_NSS_STADEF},
{WNI_CFG_HE_MCS,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_HE_MCS_STAMIN, WNI_CFG_HE_MCS_STAMAX,
WNI_CFG_HE_MCS_STADEF},
{WNI_CFG_HE_PPET,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE,
0, 0, 0}
};
@ -1390,7 +1640,12 @@ cfgstatic_string cfg_static_string[CFG_MAX_STATIC_STRING] = {
{WNI_CFG_WPS_UUID,
WNI_CFG_WPS_UUID_LEN,
6,
{0xa, 0xb, 0xc, 0xd, 0xe, 0xf} }
{0xa, 0xb, 0xc, 0xd, 0xe, 0xf} },
{WNI_CFG_HE_PPET,
WNI_CFG_HE_PPET_LEN,
WNI_CFG_HE_PPET_LEN,
{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} }
};
/*--------------------------------------------------------------------*/