/*
 * Copyright (c) 2011-2017 The Linux Foundation. All rights reserved.
 *
 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
 *
 *
 * 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.
 */

/*
 * This file was originally distributed by Qualcomm Atheros, Inc.
 * under proprietary terms before Copyright ownership was assigned
 * to the Linux Foundation.
 */

/*
 *
 * This file contains CFG functions for processing host messages.
 *
 * Author:      Kevin Nguyen
 * Date:        04/09/02
 * History:-
 * 04/09/02        Created.
 * --------------------------------------------------------------------
 */
#include "palTypes.h"
#include "aniGlobal.h"
#include "cfgPriv.h"
#include "cfgDebug.h"
#include "wlan_qct_wda.h"

struct cgstatic cfg_static[WNI_CFG_MAX] = {
	{WNI_CFG_STA_ID,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RELOAD |
	 CFG_CTL_NTF_HAL,
	 0, 255, 1},

	{WNI_CFG_CFP_PERIOD,
	 CFG_CTL_VALID  | CFG_CTL_RE | CFG_CTL_INT,
	 WNI_CFG_CFP_PERIOD_STAMIN,
	 WNI_CFG_CFP_PERIOD_STAMAX,
	 WNI_CFG_CFP_PERIOD_STADEF},

	{WNI_CFG_CFP_MAX_DURATION,
	 CFG_CTL_VALID  | CFG_CTL_RE | CFG_CTL_INT,
	 WNI_CFG_CFP_MAX_DURATION_STAMIN,
	 WNI_CFG_CFP_MAX_DURATION_STAMAX,
	 WNI_CFG_CFP_MAX_DURATION_STADEF},

	{WNI_CFG_SSID,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 255, 6},

	{WNI_CFG_BEACON_INTERVAL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_SCH,
	 WNI_CFG_BEACON_INTERVAL_STAMIN,
	 WNI_CFG_BEACON_INTERVAL_STAMAX,
	 WNI_CFG_BEACON_INTERVAL_STADEF},

	{WNI_CFG_DTIM_PERIOD,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_INT,
	 WNI_CFG_DTIM_PERIOD_STAMIN,
	 WNI_CFG_DTIM_PERIOD_STAMAX,
	 WNI_CFG_DTIM_PERIOD_STADEF},

	{WNI_CFG_WEP_KEY_LENGTH,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_WEP_KEY_LENGTH_STAMIN,
	 WNI_CFG_WEP_KEY_LENGTH_STAMAX,
	 WNI_CFG_WEP_KEY_LENGTH_STADEF},

	{WNI_CFG_WEP_DEFAULT_KEY_1,
	 CFG_CTL_VALID | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 65535, 0},

	{WNI_CFG_WEP_DEFAULT_KEY_2,
	 CFG_CTL_VALID | CFG_CTL_WE | CFG_CTL_RESTART,
	 1, 1, 1},

	{WNI_CFG_WEP_DEFAULT_KEY_3,
	 CFG_CTL_VALID | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 5, 5},

	{WNI_CFG_WEP_DEFAULT_KEY_4,
	 CFG_CTL_VALID | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 1, 0},

	{WNI_CFG_WEP_DEFAULT_KEYID,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_WEP_DEFAULT_KEYID_STAMIN,
	 WNI_CFG_WEP_DEFAULT_KEYID_STAMAX,
	 WNI_CFG_WEP_DEFAULT_KEYID_STADEF},

	{WNI_CFG_EXCLUDE_UNENCRYPTED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_EXCLUDE_UNENCRYPTED_STAMIN,
	 WNI_CFG_EXCLUDE_UNENCRYPTED_STAMAX,
	 WNI_CFG_EXCLUDE_UNENCRYPTED_STADEF},

	{WNI_CFG_RTS_THRESHOLD,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_RTS_THRESHOLD_STAMIN,
	 WNI_CFG_RTS_THRESHOLD_STAMAX,
	 WNI_CFG_RTS_THRESHOLD_STADEF},

	{WNI_CFG_SHORT_RETRY_LIMIT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_SHORT_RETRY_LIMIT_STAMIN,
	 WNI_CFG_SHORT_RETRY_LIMIT_STAMAX,
	 WNI_CFG_SHORT_RETRY_LIMIT_STADEF},

	{WNI_CFG_LONG_RETRY_LIMIT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_LONG_RETRY_LIMIT_STAMIN,
	 WNI_CFG_LONG_RETRY_LIMIT_STAMAX,
	 WNI_CFG_LONG_RETRY_LIMIT_STADEF},

	{WNI_CFG_FRAGMENTATION_THRESHOLD,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_FRAGMENTATION_THRESHOLD_STAMIN,
	 WNI_CFG_FRAGMENTATION_THRESHOLD_STAMAX,
	 WNI_CFG_FRAGMENTATION_THRESHOLD_STADEF},

	{WNI_CFG_ACTIVE_MINIMUM_CHANNEL_TIME,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_ACTIVE_MINIMUM_CHANNEL_TIME_STAMIN,
	 WNI_CFG_ACTIVE_MINIMUM_CHANNEL_TIME_STAMAX,
	 WNI_CFG_ACTIVE_MINIMUM_CHANNEL_TIME_STADEF},

	{WNI_CFG_ACTIVE_MAXIMUM_CHANNEL_TIME,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_ACTIVE_MAXIMUM_CHANNEL_TIME_STAMIN,
	 WNI_CFG_ACTIVE_MAXIMUM_CHANNEL_TIME_STAMAX,
	 WNI_CFG_ACTIVE_MAXIMUM_CHANNEL_TIME_STADEF},

	{WNI_CFG_PASSIVE_MINIMUM_CHANNEL_TIME,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_PASSIVE_MINIMUM_CHANNEL_TIME_STAMIN,
	 WNI_CFG_PASSIVE_MINIMUM_CHANNEL_TIME_STAMAX,
	 WNI_CFG_PASSIVE_MINIMUM_CHANNEL_TIME_STADEF},

	{WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME_STAMIN,
	 WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME_STAMAX,
	 WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME_STADEF},

	{WNI_CFG_JOIN_FAILURE_TIMEOUT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_JOIN_FAILURE_TIMEOUT_STAMIN,
	 WNI_CFG_JOIN_FAILURE_TIMEOUT_STAMAX,
	 WNI_CFG_JOIN_FAILURE_TIMEOUT_STADEF},

	{WNI_CFG_AUTHENTICATE_FAILURE_TIMEOUT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_AUTHENTICATE_FAILURE_TIMEOUT_STAMIN,
	 WNI_CFG_AUTHENTICATE_FAILURE_TIMEOUT_STAMAX,
	 WNI_CFG_AUTHENTICATE_FAILURE_TIMEOUT_STADEF},

	{WNI_CFG_AUTHENTICATE_RSP_TIMEOUT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_AUTHENTICATE_RSP_TIMEOUT_STAMIN,
	 WNI_CFG_AUTHENTICATE_RSP_TIMEOUT_STAMAX,
	 WNI_CFG_AUTHENTICATE_RSP_TIMEOUT_STADEF},

	{WNI_CFG_ASSOCIATION_FAILURE_TIMEOUT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_ASSOCIATION_FAILURE_TIMEOUT_STAMIN,
	 WNI_CFG_ASSOCIATION_FAILURE_TIMEOUT_STAMAX,
	 WNI_CFG_ASSOCIATION_FAILURE_TIMEOUT_STADEF},

	{WNI_CFG_REASSOCIATION_FAILURE_TIMEOUT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_REASSOCIATION_FAILURE_TIMEOUT_STAMIN,
	 WNI_CFG_REASSOCIATION_FAILURE_TIMEOUT_STAMAX,
	 WNI_CFG_REASSOCIATION_FAILURE_TIMEOUT_STADEF},

	{WNI_CFG_RA_PERIODICITY_TIMEOUT_IN_PS,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_RA_PERIODICITY_TIMEOUT_IN_PS_STAMIN,
	 WNI_CFG_RA_PERIODICITY_TIMEOUT_IN_PS_STAMAX,
	 WNI_CFG_RA_PERIODICITY_TIMEOUT_IN_PS_STADEF},

	{WNI_CFG_PS_ENABLE_BCN_FILTER,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_PS_ENABLE_BCN_FILTER_STAMIN,
	 WNI_CFG_PS_ENABLE_BCN_FILTER_STAMAX,
	 WNI_CFG_PS_ENABLE_BCN_FILTER_STADEF},

	{WNI_CFG_PS_ENABLE_HEART_BEAT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_PS_ENABLE_HEART_BEAT_STAMIN,
	 WNI_CFG_PS_ENABLE_HEART_BEAT_STAMAX,
	 WNI_CFG_PS_ENABLE_HEART_BEAT_STADEF},

	{WNI_CFG_PS_ENABLE_RSSI_MONITOR,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_PS_ENABLE_RSSI_MONITOR_STAMIN,
	 WNI_CFG_PS_ENABLE_RSSI_MONITOR_STAMAX,
	 WNI_CFG_PS_ENABLE_RSSI_MONITOR_STADEF},

	{WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT_STAMIN,
	 WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT_STAMAX,
	 WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT_STADEF},

	{WNI_CFG_RF_SETTLING_TIME_CLK,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_RF_SETTLING_TIME_CLK_STAMIN,
	 WNI_CFG_RF_SETTLING_TIME_CLK_STAMAX,
	 WNI_CFG_RF_SETTLING_TIME_CLK_STADEF},

	{WNI_CFG_SUPPORTED_RATES_11B,
	 CFG_CTL_VALID | CFG_CTL_RE,
	 0, 3, 1},

	{WNI_CFG_SUPPORTED_RATES_11A,
	 CFG_CTL_VALID | CFG_CTL_RE,
	 0, 255, 15},

	{WNI_CFG_PHY_MODE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_PHY_MODE_STAMIN,
	 WNI_CFG_PHY_MODE_STAMAX,
	 WNI_CFG_PHY_MODE_STADEF},

	{WNI_CFG_DOT11_MODE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART | CFG_CTL_NTF_LIM,
	 WNI_CFG_DOT11_MODE_STAMIN,
	 WNI_CFG_DOT11_MODE_STAMAX,
	 WNI_CFG_DOT11_MODE_STADEF},

	{WNI_CFG_OPERATIONAL_RATE_SET,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 1, 1},

	{WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 65535, 65534},

	{WNI_CFG_PROPRIETARY_OPERATIONAL_RATE_SET,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_LISTEN_INTERVAL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_LISTEN_INTERVAL_STAMIN,
	 WNI_CFG_LISTEN_INTERVAL_STAMAX,
	 WNI_CFG_LISTEN_INTERVAL_STADEF},

	{WNI_CFG_VALID_CHANNEL_LIST,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART |
	 CFG_CTL_NTF_LIM,
	 0, 1, 1},

	{WNI_CFG_CURRENT_CHANNEL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_INT,
	 WNI_CFG_CURRENT_CHANNEL_STAMIN,
	 WNI_CFG_CURRENT_CHANNEL_STAMAX,
	 WNI_CFG_CURRENT_CHANNEL_STADEF},

	{WNI_CFG_DEFAULT_RATE_INDEX_5GHZ,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_DEFAULT_RATE_INDEX_5GHZ_STAMIN,
	 WNI_CFG_DEFAULT_RATE_INDEX_5GHZ_STAMAX,
	 WNI_CFG_DEFAULT_RATE_INDEX_5GHZ_STADEF},

	{WNI_CFG_DEFAULT_RATE_INDEX_24GHZ,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_DEFAULT_RATE_INDEX_24GHZ_STAMIN,
	 WNI_CFG_DEFAULT_RATE_INDEX_24GHZ_STAMAX,
	 WNI_CFG_DEFAULT_RATE_INDEX_24GHZ_STADEF},

	{WNI_CFG_RATE_ADAPTATION_TYPE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_SCH,
	 WNI_CFG_RATE_ADAPTATION_TYPE_STAMIN,
	 WNI_CFG_RATE_ADAPTATION_TYPE_STAMAX,
	 WNI_CFG_RATE_ADAPTATION_TYPE_STADEF},

	{WNI_CFG_FIXED_RATE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_FIXED_RATE_STAMIN,
	 WNI_CFG_FIXED_RATE_STAMAX,
	 WNI_CFG_FIXED_RATE_STADEF},

	{WNI_CFG_FIXED_RATE_MULTICAST_24GHZ,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_FIXED_RATE_MULTICAST_24GHZ_STAMIN,
	 WNI_CFG_FIXED_RATE_MULTICAST_24GHZ_STAMAX,
	 WNI_CFG_FIXED_RATE_MULTICAST_24GHZ_STADEF},

	{WNI_CFG_FIXED_RATE_MULTICAST_5GHZ,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_FIXED_RATE_MULTICAST_5GHZ_STAMIN,
	 WNI_CFG_FIXED_RATE_MULTICAST_5GHZ_STAMAX,
	 WNI_CFG_FIXED_RATE_MULTICAST_5GHZ_STADEF},

	{WNI_CFG_RETRYRATE_POLICY,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_RETRYRATE_POLICY_STAMIN,
	 WNI_CFG_RETRYRATE_POLICY_STAMAX,
	 WNI_CFG_RETRYRATE_POLICY_STADEF},

	{WNI_CFG_RETRYRATE_SECONDARY,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_RETRYRATE_SECONDARY_STAMIN,
	 WNI_CFG_RETRYRATE_SECONDARY_STAMAX,
	 WNI_CFG_RETRYRATE_SECONDARY_STADEF},

	{WNI_CFG_RETRYRATE_TERTIARY,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_RETRYRATE_TERTIARY_STAMIN,
	 WNI_CFG_RETRYRATE_TERTIARY_STAMAX,
	 WNI_CFG_RETRYRATE_TERTIARY_STADEF},

	{WNI_CFG_APSD_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_APSD_ENABLED_STAMIN,
	 WNI_CFG_APSD_ENABLED_STAMAX,
	 WNI_CFG_APSD_ENABLED_STADEF},

	{WNI_CFG_SHARED_KEY_AUTH_ENABLE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_SHARED_KEY_AUTH_ENABLE_STAMIN,
	 WNI_CFG_SHARED_KEY_AUTH_ENABLE_STAMAX,
	 WNI_CFG_SHARED_KEY_AUTH_ENABLE_STADEF},

	{WNI_CFG_OPEN_SYSTEM_AUTH_ENABLE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_OPEN_SYSTEM_AUTH_ENABLE_STAMIN,
	 WNI_CFG_OPEN_SYSTEM_AUTH_ENABLE_STAMAX,
	 WNI_CFG_OPEN_SYSTEM_AUTH_ENABLE_STADEF},

	{WNI_CFG_AUTHENTICATION_TYPE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_AUTHENTICATION_TYPE_STAMIN,
	 WNI_CFG_AUTHENTICATION_TYPE_STAMAX,
	 WNI_CFG_AUTHENTICATION_TYPE_STADEF},

	{WNI_CFG_PRIVACY_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_PRIVACY_ENABLED_STAMIN,
	 WNI_CFG_PRIVACY_ENABLED_STAMAX,
	 WNI_CFG_PRIVACY_ENABLED_STADEF},

	{WNI_CFG_SHORT_PREAMBLE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_SHORT_PREAMBLE_STAMIN,
	 WNI_CFG_SHORT_PREAMBLE_STAMAX,
	 WNI_CFG_SHORT_PREAMBLE_STADEF},

	{WNI_CFG_SHORT_SLOT_TIME,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_SHORT_SLOT_TIME_STAMIN,
	 WNI_CFG_SHORT_SLOT_TIME_STAMAX,
	 WNI_CFG_SHORT_SLOT_TIME_STADEF},

	{WNI_CFG_ACCEPT_SHORT_SLOT_ASSOC_ONLY,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_ACCEPT_SHORT_SLOT_ASSOC_ONLY_STAMIN,
	 WNI_CFG_ACCEPT_SHORT_SLOT_ASSOC_ONLY_STAMAX,
	 WNI_CFG_ACCEPT_SHORT_SLOT_ASSOC_ONLY_STADEF},

	{WNI_CFG_QOS_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_QOS_ENABLED_STAMIN,
	 WNI_CFG_QOS_ENABLED_STAMAX,
	 WNI_CFG_QOS_ENABLED_STADEF},

	{WNI_CFG_HCF_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_HCF_ENABLED_STAMIN,
	 WNI_CFG_HCF_ENABLED_STAMAX,
	 WNI_CFG_HCF_ENABLED_STADEF},

	{WNI_CFG_RSN_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_RSN_ENABLED_STAMIN,
	 WNI_CFG_RSN_ENABLED_STAMAX,
	 WNI_CFG_RSN_ENABLED_STADEF},

	{WNI_CFG_BACKGROUND_SCAN_PERIOD,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_BACKGROUND_SCAN_PERIOD_STAMIN,
	 WNI_CFG_BACKGROUND_SCAN_PERIOD_STAMAX,
	 WNI_CFG_BACKGROUND_SCAN_PERIOD_STADEF},

	{WNI_CFG_MAX_NUM_PRE_AUTH,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_MAX_NUM_PRE_AUTH_STAMIN,
	 WNI_CFG_MAX_NUM_PRE_AUTH_STAMAX,
	 WNI_CFG_MAX_NUM_PRE_AUTH_STADEF},

	{WNI_CFG_HEART_BEAT_THRESHOLD,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_HEART_BEAT_THRESHOLD_STAMIN,
	 WNI_CFG_HEART_BEAT_THRESHOLD_STAMAX,
	 WNI_CFG_HEART_BEAT_THRESHOLD_STADEF},

	{WNI_CFG_PROBE_AFTER_HB_FAIL_TIMEOUT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_PROBE_AFTER_HB_FAIL_TIMEOUT_STAMIN,
	 WNI_CFG_PROBE_AFTER_HB_FAIL_TIMEOUT_STAMAX,
	 WNI_CFG_PROBE_AFTER_HB_FAIL_TIMEOUT_STADEF},

	{WNI_CFG_MANUFACTURER_OUI,
	 CFG_CTL_VALID | CFG_CTL_RE,
	 0, 0, 0},

	{WNI_CFG_MANUFACTURER_NAME,
	 CFG_CTL_VALID | CFG_CTL_RE,
	 0, 0, 0},

	{WNI_CFG_MODEL_NUMBER,
	 CFG_CTL_VALID | CFG_CTL_RE,
	 0, 0, 0},

	{WNI_CFG_MODEL_NAME,
	 CFG_CTL_VALID | CFG_CTL_RE,
	 0, 0, 0},

	{WNI_CFG_MANUFACTURER_PRODUCT_NAME,
	 CFG_CTL_VALID | CFG_CTL_RE,
	 0, 0, 0},

	{WNI_CFG_MANUFACTURER_PRODUCT_VERSION,
	 CFG_CTL_VALID | CFG_CTL_RE,
	 0, 0, 0},

	{WNI_CFG_11D_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_11D_ENABLED_STAMIN,
	 WNI_CFG_11D_ENABLED_STAMAX,
	 WNI_CFG_11D_ENABLED_STADEF},

	{WNI_CFG_MAX_TX_POWER_2_4,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE,
	 0, 0, 0},

	{WNI_CFG_MAX_TX_POWER_5,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE,
	 0, 0, 0},

	{WNI_CFG_NETWORK_DENSITY,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_NETWORK_DENSITY_STAMIN,
	 WNI_CFG_NETWORK_DENSITY_STAMAX,
	 WNI_CFG_NETWORK_DENSITY_STADEF},

	{WNI_CFG_ADAPTIVE_THRESHOLD_ALGORITHM,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_ADAPTIVE_THRESHOLD_ALGORITHM_STAMIN,
	 WNI_CFG_ADAPTIVE_THRESHOLD_ALGORITHM_STAMAX,
	 WNI_CFG_ADAPTIVE_THRESHOLD_ALGORITHM_STADEF},

	{WNI_CFG_CURRENT_TX_ANTENNA,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_CURRENT_TX_ANTENNA_STAMIN,
	 WNI_CFG_CURRENT_TX_ANTENNA_STAMAX,
	 WNI_CFG_CURRENT_TX_ANTENNA_STADEF},

	{WNI_CFG_CURRENT_RX_ANTENNA,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_CURRENT_RX_ANTENNA_STAMIN,
	 WNI_CFG_CURRENT_RX_ANTENNA_STAMAX,
	 WNI_CFG_CURRENT_RX_ANTENNA_STADEF},

	{WNI_CFG_CURRENT_TX_POWER_LEVEL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_CURRENT_TX_POWER_LEVEL_STAMIN,
	 WNI_CFG_CURRENT_TX_POWER_LEVEL_STAMAX,
	 WNI_CFG_CURRENT_TX_POWER_LEVEL_STADEF},

	{WNI_CFG_NEW_BSS_FOUND_IND,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_NEW_BSS_FOUND_IND_STAMIN,
	 WNI_CFG_NEW_BSS_FOUND_IND_STAMAX,
	 WNI_CFG_NEW_BSS_FOUND_IND_STADEF},

	{WNI_CFG_PROPRIETARY_RATES_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_PROPRIETARY_RATES_ENABLED_STAMIN,
	 WNI_CFG_PROPRIETARY_RATES_ENABLED_STAMAX,
	 WNI_CFG_PROPRIETARY_RATES_ENABLED_STADEF},

	{WNI_CFG_COUNTRY_CODE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_NTF_SCH,
	 0, 0, 0},

	{WNI_CFG_11H_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_11H_ENABLED_STAMIN,
	 WNI_CFG_11H_ENABLED_STAMAX,
	 WNI_CFG_11H_ENABLED_STADEF},

	{WNI_CFG_WT_CNF_TIMEOUT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_WT_CNF_TIMEOUT_STAMIN,
	 WNI_CFG_WT_CNF_TIMEOUT_STAMAX,
	 WNI_CFG_WT_CNF_TIMEOUT_STADEF},

	{WNI_CFG_KEEPALIVE_TIMEOUT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_KEEPALIVE_TIMEOUT_STAMIN,
	 WNI_CFG_KEEPALIVE_TIMEOUT_STAMAX,
	 WNI_CFG_KEEPALIVE_TIMEOUT_STADEF},

	{WNI_CFG_PROXIMITY,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_PROXIMITY_STAMIN,
	 WNI_CFG_PROXIMITY_STAMAX,
	 WNI_CFG_PROXIMITY_STADEF},

	{WNI_CFG_LOG_LEVEL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_LOG_LEVEL_STAMIN,
	 WNI_CFG_LOG_LEVEL_STAMAX,
	 WNI_CFG_LOG_LEVEL_STADEF},

	{WNI_CFG_OLBC_DETECT_TIMEOUT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_OLBC_DETECT_TIMEOUT_STAMIN,
	 WNI_CFG_OLBC_DETECT_TIMEOUT_STAMAX,
	 WNI_CFG_OLBC_DETECT_TIMEOUT_STADEF},

	{WNI_CFG_PROTECTION_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART | CFG_CTL_NTF_LIM,
	 WNI_CFG_PROTECTION_ENABLED_STAMIN,
	 WNI_CFG_PROTECTION_ENABLED_STAMAX,
	 WNI_CFG_PROTECTION_ENABLED_STADEF},

	{WNI_CFG_11G_PROTECTION_ALWAYS,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_11G_PROTECTION_ALWAYS_STAMIN,
	 WNI_CFG_11G_PROTECTION_ALWAYS_STAMAX,
	 WNI_CFG_11G_PROTECTION_ALWAYS_STADEF},

	{WNI_CFG_FORCE_POLICY_PROTECTION,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART | CFG_CTL_NTF_HAL,
	 WNI_CFG_FORCE_POLICY_PROTECTION_STAMIN,
	 WNI_CFG_FORCE_POLICY_PROTECTION_STAMAX,
	 WNI_CFG_FORCE_POLICY_PROTECTION_STADEF},

	{WNI_CFG_11G_SHORT_PREAMBLE_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_11G_SHORT_PREAMBLE_ENABLED_STAMIN,
	 WNI_CFG_11G_SHORT_PREAMBLE_ENABLED_STAMAX,
	 WNI_CFG_11G_SHORT_PREAMBLE_ENABLED_STADEF},

	{WNI_CFG_11G_SHORT_SLOT_TIME_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_11G_SHORT_SLOT_TIME_ENABLED_STAMIN,
	 WNI_CFG_11G_SHORT_SLOT_TIME_ENABLED_STAMAX,
	 WNI_CFG_11G_SHORT_SLOT_TIME_ENABLED_STADEF},

	{WNI_CFG_11G_ONLY_POLICY,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_11G_ONLY_POLICY_STAMIN,
	 WNI_CFG_11G_ONLY_POLICY_STAMAX,
	 WNI_CFG_11G_ONLY_POLICY_STADEF},

	{WNI_CFG_PACKET_CLASSIFICATION,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_PACKET_CLASSIFICATION_STAMIN,
	 WNI_CFG_PACKET_CLASSIFICATION_STAMAX,
	 WNI_CFG_PACKET_CLASSIFICATION_STADEF},

	{WNI_CFG_WME_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_WME_ENABLED_STAMIN,
	 WNI_CFG_WME_ENABLED_STAMAX,
	 WNI_CFG_WME_ENABLED_STADEF},

	{WNI_CFG_ADDTS_RSP_TIMEOUT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_ADDTS_RSP_TIMEOUT_STAMIN,
	 WNI_CFG_ADDTS_RSP_TIMEOUT_STAMAX,
	 WNI_CFG_ADDTS_RSP_TIMEOUT_STADEF},

	{WNI_CFG_MAX_SP_LENGTH,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_MAX_SP_LENGTH_STAMIN,
	 WNI_CFG_MAX_SP_LENGTH_STAMAX,
	 WNI_CFG_MAX_SP_LENGTH_STADEF},

	{WNI_CFG_SEND_SINGLE_SSID_ALWAYS,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_SEND_SINGLE_SSID_ALWAYS_STAMIN,
	 WNI_CFG_SEND_SINGLE_SSID_ALWAYS_STAMAX,
	 WNI_CFG_SEND_SINGLE_SSID_ALWAYS_STADEF},

	{WNI_CFG_WSM_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_WSM_ENABLED_STAMIN,
	 WNI_CFG_WSM_ENABLED_STAMAX,
	 WNI_CFG_WSM_ENABLED_STADEF},

	{WNI_CFG_EDCA_PROFILE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_SCH,
	 WNI_CFG_EDCA_PROFILE_STAMIN,
	 WNI_CFG_EDCA_PROFILE_STAMAX,
	 WNI_CFG_EDCA_PROFILE_STADEF},

	{WNI_CFG_EDCA_ANI_ACBK_LOCAL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_ANI_ACBE_LOCAL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_ANI_ACVI_LOCAL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_ANI_ACVO_LOCAL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_ANI_ACBK,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_ANI_ACBE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_ANI_ACVI,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_ANI_ACVO,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_WME_ACBK_LOCAL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_WME_ACBE_LOCAL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_WME_ACVI_LOCAL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_WME_ACVO_LOCAL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_WME_ACBK,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_WME_ACBE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_WME_ACVI,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_WME_ACVO,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_RDET_FLAG,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_RDET_FLAG_STAMIN,
	 WNI_CFG_RDET_FLAG_STAMAX,
	 WNI_CFG_RDET_FLAG_STADEF},

	{WNI_CFG_RADAR_CHANNEL_LIST,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_LOCAL_POWER_CONSTRAINT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_LOCAL_POWER_CONSTRAINT_STAMIN,
	 WNI_CFG_LOCAL_POWER_CONSTRAINT_STAMAX,
	 WNI_CFG_LOCAL_POWER_CONSTRAINT_STADEF},

	{WNI_CFG_ADMIT_POLICY,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_ADMIT_POLICY_STAMIN,
	 WNI_CFG_ADMIT_POLICY_STAMAX,
	 WNI_CFG_ADMIT_POLICY_STADEF},

	{WNI_CFG_ADMIT_BWFACTOR,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_ADMIT_BWFACTOR_STAMIN,
	 WNI_CFG_ADMIT_BWFACTOR_STAMAX,
	 WNI_CFG_ADMIT_BWFACTOR_STADEF},

	{WNI_CFG_MAX_CONSECUTIVE_BACKGROUND_SCAN_FAILURE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_MAX_CONSECUTIVE_BACKGROUND_SCAN_FAILURE_STAMIN,
	 WNI_CFG_MAX_CONSECUTIVE_BACKGROUND_SCAN_FAILURE_STAMAX,
	 WNI_CFG_MAX_CONSECUTIVE_BACKGROUND_SCAN_FAILURE_STADEF},

	{WNI_CFG_CHANNEL_BONDING_MODE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_RESTART |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_CHANNEL_BONDING_MODE_STAMIN,
	 WNI_CFG_CHANNEL_BONDING_MODE_STAMAX,
	 WNI_CFG_CHANNEL_BONDING_MODE_STADEF},

	{WNI_CFG_CB_SECONDARY_CHANNEL_STATE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_CB_SECONDARY_CHANNEL_STATE_STAMIN,
	 WNI_CFG_CB_SECONDARY_CHANNEL_STATE_STAMAX,
	 WNI_CFG_CB_SECONDARY_CHANNEL_STATE_STADEF},

	{WNI_CFG_DYNAMIC_THRESHOLD_ZERO,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_DYNAMIC_THRESHOLD_ZERO_STAMIN,
	 WNI_CFG_DYNAMIC_THRESHOLD_ZERO_STAMAX,
	 WNI_CFG_DYNAMIC_THRESHOLD_ZERO_STADEF},

	{WNI_CFG_DYNAMIC_THRESHOLD_ONE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_DYNAMIC_THRESHOLD_ONE_STAMIN,
	 WNI_CFG_DYNAMIC_THRESHOLD_ONE_STAMAX,
	 WNI_CFG_DYNAMIC_THRESHOLD_ONE_STADEF},

	{WNI_CFG_DYNAMIC_THRESHOLD_TWO,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_DYNAMIC_THRESHOLD_TWO_STAMIN,
	 WNI_CFG_DYNAMIC_THRESHOLD_TWO_STAMAX,
	 WNI_CFG_DYNAMIC_THRESHOLD_TWO_STADEF},

	{WNI_CFG_TRIG_STA_BK_SCAN,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_TRIG_STA_BK_SCAN_STAMIN,
	 WNI_CFG_TRIG_STA_BK_SCAN_STAMAX,
	 WNI_CFG_TRIG_STA_BK_SCAN_STADEF},

	{WNI_CFG_DYNAMIC_PROFILE_SWITCHING,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_DYNAMIC_PROFILE_SWITCHING_STAMIN,
	 WNI_CFG_DYNAMIC_PROFILE_SWITCHING_STAMAX,
	 WNI_CFG_DYNAMIC_PROFILE_SWITCHING_STADEF},

	{WNI_CFG_SCAN_CONTROL_LIST,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART |
	 CFG_CTL_NTF_LIM,
	 0, 0, 0},

	{WNI_CFG_MIMO_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RELOAD,
	 WNI_CFG_MIMO_ENABLED_STAMIN,
	 WNI_CFG_MIMO_ENABLED_STAMAX,
	 WNI_CFG_MIMO_ENABLED_STADEF},

	{WNI_CFG_BLOCK_ACK_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_RESTART |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_BLOCK_ACK_ENABLED_STAMIN,
	 WNI_CFG_BLOCK_ACK_ENABLED_STAMAX,
	 WNI_CFG_BLOCK_ACK_ENABLED_STADEF},

	{WNI_CFG_BA_ACTIVITY_CHECK_TIMEOUT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_BA_ACTIVITY_CHECK_TIMEOUT_STAMIN,
	 WNI_CFG_BA_ACTIVITY_CHECK_TIMEOUT_STAMAX,
	 WNI_CFG_BA_ACTIVITY_CHECK_TIMEOUT_STADEF},

	{WNI_CFG_HT_RX_STBC,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_RESTART |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_HT_RX_STBC_STAMIN,
	 WNI_CFG_HT_RX_STBC_STAMAX,
	 WNI_CFG_HT_RX_STBC_STADEF},

	{WNI_CFG_HT_CAP_INFO,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_RESTART |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_HT_CAP_INFO_STAMIN,
	 WNI_CFG_HT_CAP_INFO_STAMAX,
	 WNI_CFG_HT_CAP_INFO_STADEF},

	{WNI_CFG_HT_AMPDU_PARAMS,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_RESTART |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_HT_AMPDU_PARAMS_STAMIN,
	 WNI_CFG_HT_AMPDU_PARAMS_STAMAX,
	 WNI_CFG_HT_AMPDU_PARAMS_STADEF},

	{WNI_CFG_SUPPORTED_MCS_SET,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_SAVE | CFG_CTL_RESTART |
	 CFG_CTL_NTF_LIM,
	 0, 0, 0},

	{WNI_CFG_EXT_HT_CAP_INFO,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_SAVE |
	 CFG_CTL_RESTART | CFG_CTL_NTF_LIM,
	 WNI_CFG_EXT_HT_CAP_INFO_STAMIN,
	 WNI_CFG_EXT_HT_CAP_INFO_STAMAX,
	 WNI_CFG_EXT_HT_CAP_INFO_STADEF},

	{WNI_CFG_TX_BF_CAP,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_INT | CFG_CTL_RESTART |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_TX_BF_CAP_STAMIN,
	 4294967295u,
	 WNI_CFG_TX_BF_CAP_STADEF},

	{WNI_CFG_AS_CAP,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_SAVE |
	 CFG_CTL_RESTART | CFG_CTL_NTF_LIM,
	 WNI_CFG_AS_CAP_STAMIN,
	 WNI_CFG_AS_CAP_STAMAX,
	 WNI_CFG_AS_CAP_STADEF},

	{WNI_CFG_HT_INFO_FIELD1,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_RESTART |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_HT_INFO_FIELD1_STAMIN,
	 WNI_CFG_HT_INFO_FIELD1_STAMAX,
	 WNI_CFG_HT_INFO_FIELD1_STADEF},

	{WNI_CFG_HT_INFO_FIELD2,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_SAVE |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_HT_INFO_FIELD2_STAMIN,
	 WNI_CFG_HT_INFO_FIELD2_STAMAX,
	 WNI_CFG_HT_INFO_FIELD2_STADEF},

	{WNI_CFG_HT_INFO_FIELD3,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_SAVE |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_HT_INFO_FIELD3_STAMIN,
	 WNI_CFG_HT_INFO_FIELD3_STAMAX,
	 WNI_CFG_HT_INFO_FIELD3_STADEF},

	{WNI_CFG_BASIC_MCS_SET,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_SAVE | CFG_CTL_RESTART |
	 CFG_CTL_NTF_LIM,
	 0, 0, 0},

	{WNI_CFG_CURRENT_MCS_SET,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_SAVE | CFG_CTL_RESTART |
	 CFG_CTL_NTF_LIM,
	 0, 0, 0},

	{WNI_CFG_GREENFIELD_CAPABILITY,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_RESTART |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_GREENFIELD_CAPABILITY_STAMIN,
	 WNI_CFG_GREENFIELD_CAPABILITY_STAMAX,
	 WNI_CFG_GREENFIELD_CAPABILITY_STADEF},

	{WNI_CFG_VHT_MAX_MPDU_LENGTH,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_MAX_MPDU_LENGTH_STAMIN,
	 WNI_CFG_VHT_MAX_MPDU_LENGTH_STAMAX,
	 WNI_CFG_VHT_MAX_MPDU_LENGTH_STADEF},

	{WNI_CFG_VHT_SUPPORTED_CHAN_WIDTH_SET,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_SUPPORTED_CHAN_WIDTH_SET_STAMIN,
	 WNI_CFG_VHT_SUPPORTED_CHAN_WIDTH_SET_STAMAX,
	 WNI_CFG_VHT_SUPPORTED_CHAN_WIDTH_SET_STADEF},

	{WNI_CFG_VHT_LDPC_CODING_CAP,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_LDPC_CODING_CAP_STAMIN,
	 WNI_CFG_VHT_LDPC_CODING_CAP_STAMAX,
	 WNI_CFG_VHT_LDPC_CODING_CAP_STADEF},

	{WNI_CFG_VHT_SHORT_GI_80MHZ,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_SHORT_GI_80MHZ_STAMIN,
	 WNI_CFG_VHT_SHORT_GI_80MHZ_STAMAX,
	 WNI_CFG_VHT_SHORT_GI_80MHZ_STADEF},

	{WNI_CFG_VHT_SHORT_GI_160_AND_80_PLUS_80MHZ,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_SHORT_GI_160_AND_80_PLUS_80MHZ_STAMIN,
	 WNI_CFG_VHT_SHORT_GI_160_AND_80_PLUS_80MHZ_STAMAX,
	 WNI_CFG_VHT_SHORT_GI_160_AND_80_PLUS_80MHZ_STADEF},

	{WNI_CFG_VHT_TXSTBC,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_TXSTBC_STAMIN,
	 WNI_CFG_VHT_TXSTBC_STAMAX,
	 WNI_CFG_VHT_TXSTBC_STADEF},

	{WNI_CFG_VHT_RXSTBC,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_RXSTBC_STAMIN,
	 WNI_CFG_VHT_RXSTBC_STAMAX,
	 WNI_CFG_VHT_RXSTBC_STADEF},

	{WNI_CFG_VHT_SU_BEAMFORMER_CAP,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_SU_BEAMFORMER_CAP_STAMIN,
	 WNI_CFG_VHT_SU_BEAMFORMER_CAP_STAMAX,
	 WNI_CFG_VHT_SU_BEAMFORMER_CAP_STADEF},

	{WNI_CFG_VHT_SU_BEAMFORMEE_CAP,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_SU_BEAMFORMEE_CAP_STAMIN,
	 WNI_CFG_VHT_SU_BEAMFORMEE_CAP_STAMAX,
	 WNI_CFG_VHT_SU_BEAMFORMEE_CAP_STADEF},

	{WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_STAMIN,
	 WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_STAMAX,
	 WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_STADEF},

	{WNI_CFG_VHT_NUM_SOUNDING_DIMENSIONS,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_NUM_SOUNDING_DIMENSIONS_STAMIN,
	 WNI_CFG_VHT_NUM_SOUNDING_DIMENSIONS_STAMAX,
	 WNI_CFG_VHT_NUM_SOUNDING_DIMENSIONS_STADEF},

	{WNI_CFG_VHT_MU_BEAMFORMER_CAP,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_MU_BEAMFORMER_CAP_STAMIN,
	 WNI_CFG_VHT_MU_BEAMFORMER_CAP_STAMAX,
	 WNI_CFG_VHT_MU_BEAMFORMER_CAP_STADEF},

	{WNI_CFG_VHT_MU_BEAMFORMEE_CAP,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_MU_BEAMFORMEE_CAP_STAMIN,
	 WNI_CFG_VHT_MU_BEAMFORMEE_CAP_STAMAX,
	 WNI_CFG_VHT_MU_BEAMFORMEE_CAP_STADEF},

	{WNI_CFG_VHT_TXOP_PS,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_TXOP_PS_STAMIN,
	 WNI_CFG_VHT_TXOP_PS_STAMAX,
	 WNI_CFG_VHT_TXOP_PS_STADEF},

	{WNI_CFG_VHT_HTC_VHTC_CAP,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_HTC_VHTC_CAP_STAMIN,
	 WNI_CFG_VHT_HTC_VHTC_CAP_STAMAX,
	 WNI_CFG_VHT_HTC_VHTC_CAP_STADEF},

	{WNI_CFG_VHT_AMPDU_LEN_EXPONENT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_AMPDU_LEN_EXPONENT_STAMIN,
	 WNI_CFG_VHT_AMPDU_LEN_EXPONENT_STAMAX,
	 WNI_CFG_VHT_AMPDU_LEN_EXPONENT_STADEF},

	{WNI_CFG_VHT_LINK_ADAPTATION_CAP,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_LINK_ADAPTATION_CAP_STAMIN,
	 WNI_CFG_VHT_LINK_ADAPTATION_CAP_STAMAX,
	 WNI_CFG_VHT_LINK_ADAPTATION_CAP_STADEF},

	{WNI_CFG_VHT_RX_ANT_PATTERN,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_RX_ANT_PATTERN_STAMIN,
	 WNI_CFG_VHT_RX_ANT_PATTERN_STAMAX,
	 WNI_CFG_VHT_RX_ANT_PATTERN_STADEF},

	{WNI_CFG_VHT_TX_ANT_PATTERN,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_TX_ANT_PATTERN_STAMIN,
	 WNI_CFG_VHT_TX_ANT_PATTERN_STAMAX,
	 WNI_CFG_VHT_TX_ANT_PATTERN_STADEF},

	{WNI_CFG_VHT_RX_MCS_MAP,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_RX_MCS_MAP_STAMIN,
	 WNI_CFG_VHT_RX_MCS_MAP_STAMAX,
	 WNI_CFG_VHT_RX_MCS_MAP_STADEF},

	{WNI_CFG_VHT_TX_MCS_MAP,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_TX_MCS_MAP_STAMIN,
	 WNI_CFG_VHT_TX_MCS_MAP_STAMAX,
	 WNI_CFG_VHT_TX_MCS_MAP_STADEF},

	{WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_STAMIN,
	 WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_STAMAX,
	 WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_STADEF},

	{WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_STAMIN,
	 WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_STAMAX,
	 WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_STADEF},

	{WNI_CFG_VHT_CHANNEL_CENTER_FREQ_SEGMENT1,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_CHANNEL_CENTER_FREQ_SEGMENT1_STAMIN,
	 WNI_CFG_VHT_CHANNEL_CENTER_FREQ_SEGMENT1_STAMAX,
	 WNI_CFG_VHT_CHANNEL_CENTER_FREQ_SEGMENT1_STADEF},

	{WNI_CFG_VHT_CHANNEL_CENTER_FREQ_SEGMENT2,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_CHANNEL_CENTER_FREQ_SEGMENT2_STAMIN,
	 WNI_CFG_VHT_CHANNEL_CENTER_FREQ_SEGMENT2_STAMAX,
	 WNI_CFG_VHT_CHANNEL_CENTER_FREQ_SEGMENT2_STADEF},

	{WNI_CFG_VHT_BASIC_MCS_SET,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_BASIC_MCS_SET_STAMIN,
	 WNI_CFG_VHT_BASIC_MCS_SET_STAMAX,
	 WNI_CFG_VHT_BASIC_MCS_SET_STADEF},

	{WNI_CFG_VHT_MU_MIMO_CAP_STA_COUNT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_MU_MIMO_CAP_STA_COUNT_STAMIN,
	 WNI_CFG_VHT_MU_MIMO_CAP_STA_COUNT_STAMAX,
	 WNI_CFG_VHT_MU_MIMO_CAP_STA_COUNT_STADEF},

	{WNI_CFG_VHT_SS_UNDER_UTIL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_SS_UNDER_UTIL_STAMIN,
	 WNI_CFG_VHT_SS_UNDER_UTIL_STAMAX,
	 WNI_CFG_VHT_SS_UNDER_UTIL_STADEF},

	{WNI_CFG_VHT_40MHZ_UTILIZATION,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_40MHZ_UTILIZATION_STAMIN,
	 WNI_CFG_VHT_40MHZ_UTILIZATION_STAMAX,
	 WNI_CFG_VHT_40MHZ_UTILIZATION_STADEF},

	{WNI_CFG_VHT_80MHZ_UTILIZATION,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_80MHZ_UTILIZATION_STAMIN,
	 WNI_CFG_VHT_80MHZ_UTILIZATION_STAMAX,
	 WNI_CFG_VHT_80MHZ_UTILIZATION_STADEF},

	{WNI_CFG_VHT_160MHZ_UTILIZATION,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_VHT_80MHZ_UTILIZATION_STADEF,
	 WNI_CFG_VHT_160MHZ_UTILIZATION_STAMAX,
	 WNI_CFG_VHT_160MHZ_UTILIZATION_STADEF},

	{WNI_CFG_MAX_AMSDU_LENGTH,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART | CFG_CTL_NTF_LIM,
	 WNI_CFG_MAX_AMSDU_LENGTH_STAMIN,
	 WNI_CFG_MAX_AMSDU_LENGTH_STAMAX,
	 WNI_CFG_MAX_AMSDU_LENGTH_STADEF},

	{WNI_CFG_MPDU_DENSITY,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART | CFG_CTL_NTF_LIM,
	 WNI_CFG_MPDU_DENSITY_STAMIN,
	 WNI_CFG_MPDU_DENSITY_STAMAX,
	 WNI_CFG_MPDU_DENSITY_STADEF},

	{WNI_CFG_NUM_BUFF_ADVERT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_NUM_BUFF_ADVERT_STAMIN,
	 WNI_CFG_NUM_BUFF_ADVERT_STAMAX,
	 WNI_CFG_NUM_BUFF_ADVERT_STADEF},

	{WNI_CFG_MAX_RX_AMPDU_FACTOR,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART | CFG_CTL_NTF_LIM,
	 WNI_CFG_MAX_RX_AMPDU_FACTOR_STAMIN,
	 WNI_CFG_MAX_RX_AMPDU_FACTOR_STAMAX,
	 WNI_CFG_MAX_RX_AMPDU_FACTOR_STAMAX},

	{WNI_CFG_SHORT_GI_20MHZ,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART | CFG_CTL_NTF_LIM,
	 WNI_CFG_SHORT_GI_20MHZ_STAMIN,
	 WNI_CFG_SHORT_GI_20MHZ_STAMAX,
	 WNI_CFG_SHORT_GI_20MHZ_STADEF},

	{WNI_CFG_SHORT_GI_40MHZ,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART | CFG_CTL_NTF_LIM,
	 WNI_CFG_SHORT_GI_40MHZ_STAMIN,
	 WNI_CFG_SHORT_GI_40MHZ_STAMAX,
	 WNI_CFG_SHORT_GI_40MHZ_STADEF},

	{WNI_CFG_RIFS_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_RIFS_ENABLED_STAMIN,
	 WNI_CFG_RIFS_ENABLED_STAMAX,
	 WNI_CFG_RIFS_ENABLED_STADEF},

	{WNI_CFG_MAX_PS_POLL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_MAX_PS_POLL_STAMIN,
	 WNI_CFG_MAX_PS_POLL_STAMAX,
	 WNI_CFG_MAX_PS_POLL_STADEF},

	{WNI_CFG_NUM_BEACON_PER_RSSI_AVERAGE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_NUM_BEACON_PER_RSSI_AVERAGE_STAMIN,
	 WNI_CFG_NUM_BEACON_PER_RSSI_AVERAGE_STAMAX,
	 WNI_CFG_NUM_BEACON_PER_RSSI_AVERAGE_STADEF},

	{WNI_CFG_RSSI_FILTER_PERIOD,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_RSSI_FILTER_PERIOD_STAMIN,
	 WNI_CFG_RSSI_FILTER_PERIOD_STAMAX,
	 WNI_CFG_RSSI_FILTER_PERIOD_STADEF},

	{WNI_CFG_MIN_RSSI_THRESHOLD,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_MIN_RSSI_THRESHOLD_STAMIN,
	 WNI_CFG_MIN_RSSI_THRESHOLD_STAMAX,
	 WNI_CFG_MIN_RSSI_THRESHOLD_STADEF},

	{WNI_CFG_NTH_BEACON_FILTER,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_NTH_BEACON_FILTER_STAMIN,
	 WNI_CFG_NTH_BEACON_FILTER_STAMAX,
	 WNI_CFG_NTH_BEACON_FILTER_STADEF},

	{WNI_CFG_BROADCAST_FRAME_FILTER_ENABLE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_BROADCAST_FRAME_FILTER_ENABLE_STAMIN,
	 WNI_CFG_BROADCAST_FRAME_FILTER_ENABLE_STAMAX,
	 WNI_CFG_BROADCAST_FRAME_FILTER_ENABLE_STADEF},

	{WNI_CFG_SCAN_IN_POWERSAVE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_SCAN_IN_POWERSAVE_STAMIN,
	 WNI_CFG_SCAN_IN_POWERSAVE_STAMAX,
	 WNI_CFG_SCAN_IN_POWERSAVE_STADEF},

	{WNI_CFG_IGNORE_DTIM,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_IGNORE_DTIM_STAMIN,
	 WNI_CFG_IGNORE_DTIM_STAMAX,
	 WNI_CFG_IGNORE_DTIM_STADEF},

	{WNI_CFG_WOWLAN_UCAST_PATTERN_FILTER_ENABLE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_WOWLAN_UCAST_PATTERN_FILTER_ENABLE_STAMIN,
	 WNI_CFG_WOWLAN_UCAST_PATTERN_FILTER_ENABLE_STAMAX,
	 WNI_CFG_WOWLAN_UCAST_PATTERN_FILTER_ENABLE_STADEF},

	{WNI_CFG_WOWLAN_CHANNEL_SWITCH_ENABLE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_WOWLAN_CHANNEL_SWITCH_ENABLE_STAMIN,
	 WNI_CFG_WOWLAN_CHANNEL_SWITCH_ENABLE_STAMAX,
	 WNI_CFG_WOWLAN_CHANNEL_SWITCH_ENABLE_STADEF},

	{WNI_CFG_WOWLAN_DEAUTH_ENABLE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_WOWLAN_DEAUTH_ENABLE_STAMIN,
	 WNI_CFG_WOWLAN_DEAUTH_ENABLE_STAMAX,
	 WNI_CFG_WOWLAN_DEAUTH_ENABLE_STADEF},

	{WNI_CFG_WOWLAN_DISASSOC_ENABLE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_WOWLAN_DISASSOC_ENABLE_STAMIN,
	 WNI_CFG_WOWLAN_DISASSOC_ENABLE_STAMAX,
	 WNI_CFG_WOWLAN_DISASSOC_ENABLE_STADEF},

	{WNI_CFG_WOWLAN_MAX_MISSED_BEACON,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_WOWLAN_MAX_MISSED_BEACON_STAMIN,
	 WNI_CFG_WOWLAN_MAX_MISSED_BEACON_STAMAX,
	 WNI_CFG_WOWLAN_MAX_MISSED_BEACON_STADEF},

	{WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD_STAMIN,
	 WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD_STAMAX,
	 WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD_STADEF},

	{WNI_CFG_BA_TIMEOUT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART | CFG_CTL_NTF_HAL,
	 WNI_CFG_BA_TIMEOUT_STAMIN,
	 WNI_CFG_BA_TIMEOUT_STAMAX,
	 WNI_CFG_BA_TIMEOUT_STADEF},

	{WNI_CFG_BA_THRESHOLD_HIGH,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART | CFG_CTL_NTF_HAL,
	 WNI_CFG_BA_THRESHOLD_HIGH_STAMIN,
	 WNI_CFG_BA_THRESHOLD_HIGH_STAMAX,
	 WNI_CFG_BA_THRESHOLD_HIGH_STADEF},

	{WNI_CFG_MAX_BA_BUFFERS,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART | CFG_CTL_NTF_HAL,
	 WNI_CFG_MAX_BA_BUFFERS_STAMIN,
	 WNI_CFG_MAX_BA_BUFFERS_STAMAX,
	 WNI_CFG_MAX_BA_BUFFERS_STADEF},

	{WNI_CFG_MAX_BA_SESSIONS,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART | CFG_CTL_NTF_HAL,
	 WNI_CFG_MAX_BA_SESSIONS_STAMIN,
	 WNI_CFG_MAX_BA_SESSIONS_STAMAX,
	 WNI_CFG_MAX_BA_SESSIONS_STADEF},

	{WNI_CFG_BA_AUTO_SETUP,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART | CFG_CTL_NTF_HAL,
	 WNI_CFG_BA_AUTO_SETUP_STAMIN,
	 WNI_CFG_BA_AUTO_SETUP_STAMAX,
	 WNI_CFG_BA_AUTO_SETUP_STADEF},

	{WNI_CFG_ADDBA_REQ_DECLINE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART | CFG_CTL_NTF_LIM,
	 WNI_CFG_ADDBA_REQ_DECLINE_STAMIN,
	 WNI_CFG_ADDBA_REQ_DECLINE_STAMAX,
	 WNI_CFG_ADDBA_REQ_DECLINE_STADEF},

	{WNI_CFG_DEL_ALL_RX_BA_SESSIONS_2_4_G_BTC,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_DEL_ALL_RX_BA_SESSIONS_2_4_G_BTC_STAMIN,
	 WNI_CFG_DEL_ALL_RX_BA_SESSIONS_2_4_G_BTC_STAMAX,
	 WNI_CFG_DEL_ALL_RX_BA_SESSIONS_2_4_G_BTC_STADEF},

	{WNI_CFG_BG_SCAN_CHANNEL_LIST,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_NTF_LIM,
	 0, 0, 0},

	{WNI_CFG_MAX_MEDIUM_TIME,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_MAX_MEDIUM_TIME_STAMIN,
	 WNI_CFG_MAX_MEDIUM_TIME_STAMAX,
	 WNI_CFG_MAX_MEDIUM_TIME_STADEF},

	{WNI_CFG_MAX_MPDUS_IN_AMPDU,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_MAX_MPDUS_IN_AMPDU_STAMIN,
	 WNI_CFG_MAX_MPDUS_IN_AMPDU_STAMAX,
	 WNI_CFG_MAX_MPDUS_IN_AMPDU_STADEF},

	{WNI_CFG_IBSS_AUTO_BSSID,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_IBSS_AUTO_BSSID_STAMIN,
	 WNI_CFG_IBSS_AUTO_BSSID_STAMAX,
	 WNI_CFG_IBSS_AUTO_BSSID_STADEF},

	{WNI_CFG_PROBE_REQ_ADDNIE_FLAG,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_PROBE_REQ_ADDNIE_FLAG_STAMIN,
	 WNI_CFG_PROBE_REQ_ADDNIE_FLAG_STAMAX,
	 WNI_CFG_PROBE_REQ_ADDNIE_FLAG_STADEF},

	{WNI_CFG_PROBE_REQ_ADDNIE_DATA,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE,
	 0, 0, 0},

	{WNI_CFG_PROBE_RSP_ADDNIE_FLAG,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_PROBE_RSP_ADDNIE_FLAG_STAMIN,
	 WNI_CFG_PROBE_RSP_ADDNIE_FLAG_STAMAX,
	 WNI_CFG_PROBE_RSP_ADDNIE_FLAG_STADEF},

	{WNI_CFG_PROBE_RSP_ADDNIE_DATA1,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE,
	 0, 0, 0},

	{WNI_CFG_PROBE_RSP_ADDNIE_DATA2,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE,
	 0, 0, 0},

	{WNI_CFG_PROBE_RSP_ADDNIE_DATA3,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE,
	 0, 0, 0},

	{WNI_CFG_ASSOC_RSP_ADDNIE_FLAG,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_ASSOC_RSP_ADDNIE_FLAG_STAMIN,
	 WNI_CFG_ASSOC_RSP_ADDNIE_FLAG_STAMAX,
	 WNI_CFG_ASSOC_RSP_ADDNIE_FLAG_STADEF},

	{WNI_CFG_ASSOC_RSP_ADDNIE_DATA,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE,
	 0, 0, 0},

	{WNI_CFG_PROBE_REQ_ADDNP2PIE_FLAG,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_PROBE_REQ_ADDNP2PIE_FLAG_STAMIN,
	 WNI_CFG_PROBE_REQ_ADDNP2PIE_FLAG_STAMAX,
	 WNI_CFG_PROBE_REQ_ADDNP2PIE_FLAG_STADEF},

	{WNI_CFG_PROBE_REQ_ADDNP2PIE_DATA,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE,
	 0, 0, 0},

	{WNI_CFG_PROBE_RSP_BCN_ADDNIE_FLAG,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_PROBE_RSP_BCN_ADDNIE_FLAG_STAMIN,
	 WNI_CFG_PROBE_RSP_BCN_ADDNIE_FLAG_STAMAX,
	 WNI_CFG_PROBE_RSP_BCN_ADDNIE_FLAG_STADEF},

	{WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_NTF_LIM,
	 0, 0, 0},

	{WNI_CFG_WPS_ENABLE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_WPS_ENABLE_STAMIN,
	 WNI_CFG_WPS_ENABLE_STAMAX,
	 WNI_CFG_WPS_ENABLE_STADEF},

	{WNI_CFG_WPS_STATE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_WPS_STATE_STAMIN,
	 WNI_CFG_WPS_STATE_STAMAX,
	 WNI_CFG_WPS_STATE_STADEF},

	{WNI_CFG_WPS_PROBE_REQ_FLAG,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_WPS_PROBE_REQ_FLAG_STAMIN,
	 WNI_CFG_WPS_PROBE_REQ_FLAG_STAMAX,
	 WNI_CFG_WPS_PROBE_REQ_FLAG_STADEF},

	{WNI_CFG_WPS_VERSION,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_WPS_VERSION_STAMIN,
	 WNI_CFG_WPS_VERSION_STAMAX,
	 WNI_CFG_WPS_VERSION_STADEF},

	{WNI_CFG_WPS_REQUEST_TYPE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_WPS_REQUEST_TYPE_STAMIN,
	 WNI_CFG_WPS_REQUEST_TYPE_STAMAX,
	 WNI_CFG_WPS_REQUEST_TYPE_STADEF},

	{WNI_CFG_WPS_CFG_METHOD,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_WPS_CFG_METHOD_STAMIN,
	 4294967295u,
	 WNI_CFG_WPS_CFG_METHOD_STADEF},

	{WNI_CFG_WPS_UUID,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_NTF_LIM,
	 0, 0, 0},

	{WNI_CFG_WPS_PRIMARY_DEVICE_CATEGORY,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_WPS_PRIMARY_DEVICE_CATEGORY_STAMIN,
	 WNI_CFG_WPS_PRIMARY_DEVICE_CATEGORY_STAMAX,
	 WNI_CFG_WPS_PRIMARY_DEVICE_CATEGORY_STADEF},

	{WNI_CFG_WPS_PIMARY_DEVICE_OUI,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_WPS_PIMARY_DEVICE_OUI_STAMIN,
	 4294967295u,
	 WNI_CFG_WPS_PIMARY_DEVICE_OUI_STADEF},

	{WNI_CFG_WPS_DEVICE_SUB_CATEGORY,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_WPS_DEVICE_SUB_CATEGORY_STAMIN,
	 WNI_CFG_WPS_DEVICE_SUB_CATEGORY_STAMAX,
	 WNI_CFG_WPS_DEVICE_SUB_CATEGORY_STADEF},

	{WNI_CFG_WPS_ASSOCIATION_STATE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_WPS_ASSOCIATION_STATE_STAMIN,
	 WNI_CFG_WPS_ASSOCIATION_STATE_STAMAX,
	 WNI_CFG_WPS_ASSOCIATION_STATE_STADEF},

	{WNI_CFG_WPS_CONFIGURATION_ERROR,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_WPS_CONFIGURATION_ERROR_STAMIN,
	 WNI_CFG_WPS_CONFIGURATION_ERROR_STAMAX,
	 WNI_CFG_WPS_CONFIGURATION_ERROR_STADEF},

	{WNI_CFG_WPS_DEVICE_PASSWORD_ID,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_WPS_DEVICE_PASSWORD_ID_STAMIN,
	 4294967295u,
	 WNI_CFG_WPS_DEVICE_PASSWORD_ID_STADEF},

	{WNI_CFG_WPS_ASSOC_METHOD,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_WPS_ASSOC_METHOD_STAMIN,
	 WNI_CFG_WPS_ASSOC_METHOD_STAMAX,
	 WNI_CFG_WPS_ASSOC_METHOD_STADEF},

	{WNI_CFG_LOW_GAIN_OVERRIDE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_LOW_GAIN_OVERRIDE_STAMIN,
	 WNI_CFG_LOW_GAIN_OVERRIDE_STAMAX,
	 WNI_CFG_LOW_GAIN_OVERRIDE_STADEF},

	{WNI_CFG_ENABLE_PHY_AGC_LISTEN_MODE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_ENABLE_PHY_AGC_LISTEN_MODE_STAMIN,
	 WNI_CFG_ENABLE_PHY_AGC_LISTEN_MODE_STAMAX,
	 WNI_CFG_ENABLE_PHY_AGC_LISTEN_MODE_STADEF},

	{WNI_CFG_RPE_POLLING_THRESHOLD,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_RPE_POLLING_THRESHOLD_STAMIN,
	 WNI_CFG_RPE_POLLING_THRESHOLD_STAMAX,
	 WNI_CFG_RPE_POLLING_THRESHOLD_STADEF},

	{WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC0_REG,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC0_REG_STAMIN,
	 WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC0_REG_STAMAX,
	 WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC0_REG_STADEF},

	{WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC1_REG,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC1_REG_STAMIN,
	 WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC1_REG_STAMAX,
	 WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC1_REG_STADEF},

	{WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC2_REG,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC2_REG_STAMIN,
	 WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC2_REG_STAMAX,
	 WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC2_REG_STADEF},

	{WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC3_REG,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC3_REG_STAMIN,
	 WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC3_REG_STAMAX,
	 WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC3_REG_STADEF},

	{WNI_CFG_NO_OF_ONCHIP_REORDER_SESSIONS,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_NO_OF_ONCHIP_REORDER_SESSIONS_STAMIN,
	 WNI_CFG_NO_OF_ONCHIP_REORDER_SESSIONS_STAMAX,
	 WNI_CFG_NO_OF_ONCHIP_REORDER_SESSIONS_STADEF},

	{WNI_CFG_SINGLE_TID_RC,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_SINGLE_TID_RC_STAMIN,
	 WNI_CFG_SINGLE_TID_RC_STAMAX,
	 WNI_CFG_SINGLE_TID_RC_STADEF},

	{WNI_CFG_TX_PWR_CTRL_ENABLE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_TX_PWR_CTRL_ENABLE_STAMIN,
	 WNI_CFG_TX_PWR_CTRL_ENABLE_STAMAX,
	 WNI_CFG_TX_PWR_CTRL_ENABLE_STADEF},

	{WNI_CFG_MCAST_BCAST_FILTER_SETTING,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_MCAST_BCAST_FILTER_SETTING_STAMIN,
	 WNI_CFG_MCAST_BCAST_FILTER_SETTING_STAMAX,
	 WNI_CFG_MCAST_BCAST_FILTER_SETTING_STADEF},

	{WNI_CFG_BTC_DHCP_BT_SLOTS_TO_BLOCK,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_BTC_DHCP_BT_SLOTS_TO_BLOCK_STAMIN,
	 WNI_CFG_BTC_DHCP_BT_SLOTS_TO_BLOCK_STAMAX,
	 WNI_CFG_BTC_DHCP_BT_SLOTS_TO_BLOCK_STADEF},

	{WNI_CFG_DYNAMIC_PS_POLL_VALUE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_DYNAMIC_PS_POLL_VALUE_STAMIN,
	 WNI_CFG_DYNAMIC_PS_POLL_VALUE_STAMAX,
	 WNI_CFG_DYNAMIC_PS_POLL_VALUE_STADEF},

	{WNI_CFG_PS_NULLDATA_AP_RESP_TIMEOUT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_PS_NULLDATA_AP_RESP_TIMEOUT_STAMIN,
	 WNI_CFG_PS_NULLDATA_AP_RESP_TIMEOUT_STAMAX,
	 WNI_CFG_PS_NULLDATA_AP_RESP_TIMEOUT_STADEF},

	{WNI_CFG_TELE_BCN_WAKEUP_EN,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_TELE_BCN_WAKEUP_EN_STAMIN,
	 WNI_CFG_TELE_BCN_WAKEUP_EN_STAMAX,
	 WNI_CFG_TELE_BCN_WAKEUP_EN_STADEF},

	{WNI_CFG_TELE_BCN_TRANS_LI,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_TELE_BCN_TRANS_LI_STAMIN,
	 WNI_CFG_TELE_BCN_TRANS_LI_STAMAX,
	 WNI_CFG_TELE_BCN_TRANS_LI_STADEF},

	{WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS_STAMIN,
	 WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS_STAMAX,
	 WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS_STADEF},

	{WNI_CFG_TELE_BCN_MAX_LI,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_TELE_BCN_MAX_LI_STAMIN,
	 WNI_CFG_TELE_BCN_MAX_LI_STAMAX,
	 WNI_CFG_TELE_BCN_MAX_LI_STADEF},

	{WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS_STAMIN,
	 WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS_STAMAX,
	 WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS_STADEF},

	{WNI_CFG_BTC_A2DP_DHCP_BT_SUB_INTERVALS,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_BTC_A2DP_DHCP_BT_SUB_INTERVALS_STAMIN,
	 WNI_CFG_BTC_A2DP_DHCP_BT_SUB_INTERVALS_STAMAX,
	 WNI_CFG_BTC_A2DP_DHCP_BT_SUB_INTERVALS_STADEF},

	{WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD_STAMIN,
	 WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD_STAMAX,
	 WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD_STADEF},

	{WNI_CFG_ASSOC_STA_LIMIT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_ASSOC_STA_LIMIT_STAMIN,
	 WNI_CFG_ASSOC_STA_LIMIT_STAMAX,
	 WNI_CFG_ASSOC_STA_LIMIT_STADEF},

	{WNI_CFG_SAP_CHANNEL_SELECT_START_CHANNEL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_SAP_CHANNEL_SELECT_START_CHANNEL_STAMIN,
	 WNI_CFG_SAP_CHANNEL_SELECT_START_CHANNEL_STAMAX,
	 WNI_CFG_SAP_CHANNEL_SELECT_START_CHANNEL_STADEF},

	{WNI_CFG_SAP_CHANNEL_SELECT_END_CHANNEL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_SAP_CHANNEL_SELECT_END_CHANNEL_STAMIN,
	 WNI_CFG_SAP_CHANNEL_SELECT_END_CHANNEL_STAMAX,
	 WNI_CFG_SAP_CHANNEL_SELECT_END_CHANNEL_STADEF},

	{WNI_CFG_SAP_CHANNEL_SELECT_OPERATING_BAND,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_SAP_CHANNEL_SELECT_OPERATING_BAND_STAMIN,
	 WNI_CFG_SAP_CHANNEL_SELECT_OPERATING_BAND_STAMAX,
	 WNI_CFG_SAP_CHANNEL_SELECT_OPERATING_BAND_STADEF},

	{WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD_STAMIN,
	 WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD_STAMAX,
	 WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD_STADEF},

	{WNI_CFG_ENABLE_CLOSE_LOOP,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_ENABLE_CLOSE_LOOP_STAMIN,
	 WNI_CFG_ENABLE_CLOSE_LOOP_STAMAX,
	 WNI_CFG_ENABLE_CLOSE_LOOP_STADEF},

	{WNI_CFG_ENABLE_LTE_COEX,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_ENABLE_LTE_COEX_STAMIN,
	 WNI_CFG_ENABLE_LTE_COEX_STAMAX,
	 WNI_CFG_ENABLE_LTE_COEX_STADEF},

	{WNI_CFG_AP_KEEP_ALIVE_TIMEOUT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_AP_KEEP_ALIVE_TIMEOUT_STAMIN,
	 WNI_CFG_AP_KEEP_ALIVE_TIMEOUT_STAMAX,
	 WNI_CFG_AP_KEEP_ALIVE_TIMEOUT_STADEF},

	{WNI_CFG_GO_KEEP_ALIVE_TIMEOUT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_GO_KEEP_ALIVE_TIMEOUT_STAMIN,
	 WNI_CFG_GO_KEEP_ALIVE_TIMEOUT_STAMAX,
	 WNI_CFG_GO_KEEP_ALIVE_TIMEOUT_STADEF},

	{WNI_CFG_ENABLE_MC_ADDR_LIST,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_ENABLE_MC_ADDR_LIST_STAMIN,
	 WNI_CFG_ENABLE_MC_ADDR_LIST_STAMAX,
	 WNI_CFG_ENABLE_MC_ADDR_LIST_STADEF},

	{WNI_CFG_ENABLE_UC_FILTER,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_ENABLE_UC_FILTER_STAMIN,
	 WNI_CFG_ENABLE_UC_FILTER_STAMAX,
	 WNI_CFG_ENABLE_UC_FILTER_STADEF},

	{WNI_CFG_ENABLE_LPWR_IMG_TRANSITION,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_ENABLE_LPWR_IMG_TRANSITION_STAMIN,
	 WNI_CFG_ENABLE_LPWR_IMG_TRANSITION_STAMAX,
	 WNI_CFG_ENABLE_LPWR_IMG_TRANSITION_STADEF},

	{WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED_STAMIN,
	 WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED_STAMAX,
	 WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED_STADEF},

	{WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP_STAMIN,
	 WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP_STAMAX,
	 WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP_STADEF},

	{WNI_CFG_AP_LINK_MONITOR_TIMEOUT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_AP_LINK_MONITOR_TIMEOUT_STAMIN,
	 WNI_CFG_AP_LINK_MONITOR_TIMEOUT_STAMAX,
	 WNI_CFG_AP_LINK_MONITOR_TIMEOUT_STADEF},

	{WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK_STAMIN,
	 WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK_STAMAX,
	 WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK_STADEF},

	{WNI_CFG_TDLS_BUF_STA_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_TDLS_BUF_STA_ENABLED_STAMIN,
	 WNI_CFG_TDLS_BUF_STA_ENABLED_STAMAX,
	 WNI_CFG_TDLS_BUF_STA_ENABLED_STADEF},

	{WNI_CFG_TDLS_PUAPSD_INACT_TIME,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_TDLS_PUAPSD_INACT_TIME_STAMIN,
	 WNI_CFG_TDLS_PUAPSD_INACT_TIME_STAMAX,
	 WNI_CFG_TDLS_PUAPSD_INACT_TIME_STADEF},

	{WNI_CFG_TDLS_RX_FRAME_THRESHOLD,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_TDLS_RX_FRAME_THRESHOLD_STAMIN,
	 WNI_CFG_TDLS_RX_FRAME_THRESHOLD_STAMAX,
	 WNI_CFG_TDLS_RX_FRAME_THRESHOLD_STADEF},

	{WNI_CFG_PMF_SA_QUERY_MAX_RETRIES,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_PMF_SA_QUERY_MAX_RETRIES_STAMIN,
	 WNI_CFG_PMF_SA_QUERY_MAX_RETRIES_STAMAX,
	 WNI_CFG_PMF_SA_QUERY_MAX_RETRIES_STADEF},

	{WNI_CFG_PMF_SA_QUERY_RETRY_INTERVAL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_RESTART,
	 WNI_CFG_PMF_SA_QUERY_RETRY_INTERVAL_STAMIN,
	 WNI_CFG_PMF_SA_QUERY_RETRY_INTERVAL_STAMAX,
	 WNI_CFG_PMF_SA_QUERY_RETRY_INTERVAL_STADEF},

	{WNI_CFG_ENABLE_ADAPT_RX_DRAIN,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_ENABLE_ADAPT_RX_DRAIN_STAMIN,
	 WNI_CFG_ENABLE_ADAPT_RX_DRAIN_STAMAX,
	 WNI_CFG_ENABLE_ADAPT_RX_DRAIN_STADEF},

	{WNI_CFG_FLEX_CONNECT_POWER_FACTOR,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_FLEX_CONNECT_POWER_FACTOR_STAMIN,
	 WNI_CFG_FLEX_CONNECT_POWER_FACTOR_STAMAX,
	 WNI_CFG_FLEX_CONNECT_POWER_FACTOR_STADEF},

	{WNI_CFG_ANTENNA_DIVESITY,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_ANTENNA_DIVESITY_STAMIN,
	 WNI_CFG_ANTENNA_DIVESITY_STAMAX,
	 WNI_CFG_ANTENNA_DIVESITY_STADEF},

	{WNI_CFG_GO_LINK_MONITOR_TIMEOUT,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_GO_LINK_MONITOR_TIMEOUT_STAMIN,
	 WNI_CFG_GO_LINK_MONITOR_TIMEOUT_STAMAX,
	 WNI_CFG_GO_LINK_MONITOR_TIMEOUT_STADEF},

	{WNI_CFG_RMC_ACTION_PERIOD_FREQUENCY,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_HAL,
	 WNI_CFG_RMC_ACTION_PERIOD_FREQUENCY_STAMIN,
	 WNI_CFG_RMC_ACTION_PERIOD_FREQUENCY_STAMAX,
	 WNI_CFG_RMC_ACTION_PERIOD_FREQUENCY_STADEF},

	{WNI_CFG_CURRENT_RSSI,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_CURRENT_RSSI_STAMIN,
	 WNI_CFG_CURRENT_RSSI_STAMAX,
	 WNI_CFG_CURRENT_RSSI_STADEF},

	{WNI_CFG_RTT3_ENABLE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_RTT3_ENABLE_STAMIN,
	 WNI_CFG_RTT3_ENABLE_STAMAX,
	 WNI_CFG_RTT3_ENABLE_STADEF},

	{WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_STAMIN,
	 WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_STAMAX,
	 WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_STADEF},

	{WNI_CFG_TDLS_OFF_CHANNEL_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_STAMIN,
	 WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_STAMAX,
	 WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_STADEF},

	{WNI_CFG_IBSS_ATIM_WIN_SIZE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_IBSS_ATIM_WIN_SIZE_STAMIN,
	 WNI_CFG_IBSS_ATIM_WIN_SIZE_STAMAX,
	 WNI_CFG_IBSS_ATIM_WIN_SIZE_STADEF},

	{WNI_CFG_DFS_MASTER_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_DFS_MASTER_ENABLED_STAMIN,
	 WNI_CFG_DFS_MASTER_ENABLED_STAMAX,
	 WNI_CFG_DFS_MASTER_ENABLED_STADEF},

	{WNI_CFG_VHT_ENABLE_TXBF_20MHZ,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_VHT_ENABLE_TXBF_20MHZ_STAMIN,
	 WNI_CFG_VHT_ENABLE_TXBF_20MHZ_STAMAX,
	 WNI_CFG_VHT_ENABLE_TXBF_20MHZ_STADEF},

	{WNI_CFG_TDLS_WMM_MODE_ENABLED,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_TDLS_WMM_MODE_ENABLED_STAMIN,
	 WNI_CFG_TDLS_WMM_MODE_ENABLED_STAMAX,
	 WNI_CFG_TDLS_WMM_MODE_ENABLED_STADEF},

	{WNI_CFG_TGT_GTX_USR_CFG,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_TGT_GTX_USR_CFG_STAMIN,
	 WNI_CFG_TGT_GTX_USR_CFG_STAMAX,
	 WNI_CFG_TGT_GTX_USR_CFG_STADEF},

	{WNI_CFG_ASSOC_STA_LIMIT_GO,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_ASSOC_STA_LIMIT_GO_STAMIN,
	 WNI_CFG_ASSOC_STA_LIMIT_GO_STAMAX,
	 WNI_CFG_ASSOC_STA_LIMIT_GO_STADEF},

	{WNI_CFG_ASSOC_STA_LIMIT_AP,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
	 CFG_CTL_NTF_LIM,
	 WNI_CFG_ASSOC_STA_LIMIT_AP_STAMIN,
	 WNI_CFG_ASSOC_STA_LIMIT_AP_STAMAX,
	 WNI_CFG_ASSOC_STA_LIMIT_AP_STADEF},

	{WNI_CFG_MAX_HT_MCS_TX_DATA,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_MAX_HT_MCS_TX_DATA_STAMIN,
	 WNI_CFG_MAX_HT_MCS_TX_DATA_STAMAX,
	 WNI_CFG_MAX_HT_MCS_TX_DATA_STADEF},

	{WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA_STAMIN,
	 WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA_STAMAX,
	 WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA_STADEF},

	{WNI_CFG_RATE_FOR_TX_MGMT,
	 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_2G,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_RATE_FOR_TX_MGMT_2G_STAMIN,
	 WNI_CFG_RATE_FOR_TX_MGMT_2G_STAMAX,
	 WNI_CFG_RATE_FOR_TX_MGMT_2G_STADEF},

	{WNI_CFG_RATE_FOR_TX_MGMT_5G,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
	 WNI_CFG_RATE_FOR_TX_MGMT_5G_STAMIN,
	 WNI_CFG_RATE_FOR_TX_MGMT_5G_STAMAX,
	 WNI_CFG_RATE_FOR_TX_MGMT_5G_STADEF},

	{WNI_CFG_EDCA_ETSI_ACBK_LOCAL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_ETSI_ACBE_LOCAL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_ETSI_ACVI_LOCAL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_ETSI_ACVO_LOCAL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_ETSI_ACBK,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_ETSI_ACBE,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_ETSI_ACVI,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_ETSI_ACVO,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_HOSTAPD_ACBK_LOCAL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_HOSTAPD_ACBE_LOCAL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_HOSTAPD_ACVI_LOCAL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},

	{WNI_CFG_EDCA_HOSTAPD_ACVO_LOCAL,
	 CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
	 0, 0, 0},
};

struct cfgstatic_string cfg_static_string[CFG_MAX_STATIC_STRING] = {
	{WNI_CFG_STA_ID,
	 WNI_CFG_STA_ID_LEN,
	 6,
	 {0x22, 0x22, 0x44, 0x44, 0x33, 0x33}},

	{WNI_CFG_SSID,
	 WNI_CFG_SSID_LEN,
	 10,
	 {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}},

	{WNI_CFG_WEP_DEFAULT_KEY_1,
	 WNI_CFG_WEP_DEFAULT_KEY_1_LEN,
	 0,
	 {0}},

	{WNI_CFG_WEP_DEFAULT_KEY_2,
	 WNI_CFG_WEP_DEFAULT_KEY_2_LEN,
	 0,
	 {0}},

	{WNI_CFG_WEP_DEFAULT_KEY_3,
	 WNI_CFG_WEP_DEFAULT_KEY_3_LEN,
	 0,
	 {0}},

	{WNI_CFG_WEP_DEFAULT_KEY_4,
	 WNI_CFG_WEP_DEFAULT_KEY_4_LEN,
	 0,
	 {0}},

	{WNI_CFG_SUPPORTED_RATES_11B,
	 WNI_CFG_SUPPORTED_RATES_11B_LEN,
	 4,
	 {2, 4, 11, 22}},

	{WNI_CFG_SUPPORTED_RATES_11A,
	 WNI_CFG_SUPPORTED_RATES_11A_LEN,
	 8,
	 {12, 18, 24, 36, 48, 72, 96, 108}},

	{WNI_CFG_OPERATIONAL_RATE_SET,
	 WNI_CFG_OPERATIONAL_RATE_SET_LEN,
	 0,
	 {0}},

	{WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET,
	 WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET_LEN,
	 0,
	 {0}},

	{WNI_CFG_PROPRIETARY_OPERATIONAL_RATE_SET,
	 WNI_CFG_PROPRIETARY_OPERATIONAL_RATE_SET_LEN,
	 4,
	 {1, 3, 5, 7}},

	{WNI_CFG_VALID_CHANNEL_LIST,
	 WNI_CFG_VALID_CHANNEL_LIST_LEN,
	 55,
	{36, 40, 44, 48, 52, 56, 60, 64, 1, 6, 11, 34, 38, 42, 46, 2, 3, 4, 5,
	 7, 8, 9, 10, 12, 13, 14, 100, 104, 108, 112, 116, 120, 124, 128, 132,
	 136, 140, 149, 151, 153, 155, 157, 159, 161, 50, 54, 58, 62, 240, 242,
	 244, 246, 248, 250, 252}},

	{WNI_CFG_MANUFACTURER_OUI,
	 WNI_CFG_MANUFACTURER_OUI_LEN,
	 3,
	 {0x0, 0xa, 0xf5}},

	{WNI_CFG_MANUFACTURER_NAME,
	 WNI_CFG_MANUFACTURER_NAME_LEN,
	 8,
	 {0x51, 0x75, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x6d}},

	{WNI_CFG_MODEL_NUMBER,
	 WNI_CFG_MODEL_NUMBER_LEN,
	 6,
	 {0x4d, 0x4e, 0x31, 0x32, 0x33, 0x34}},

	{WNI_CFG_MODEL_NAME,
	 WNI_CFG_MODEL_NAME_LEN,
	 7,
	 {0x57, 0x46, 0x52, 0x34, 0x30, 0x33, 0x31}},

	{WNI_CFG_MANUFACTURER_PRODUCT_NAME,
	 WNI_CFG_MANUFACTURER_PRODUCT_NAME_LEN,
	 6,
	 {0x31, 0x31, 0x6e, 0x2d, 0x41, 0x50}},

	{WNI_CFG_MANUFACTURER_PRODUCT_VERSION,
	 WNI_CFG_MANUFACTURER_PRODUCT_VERSION_LEN,
	 6,
	 {0x53, 0x4e, 0x31, 0x32, 0x33, 0x34}},

	{WNI_CFG_MAX_TX_POWER_2_4,
	 WNI_CFG_MAX_TX_POWER_2_4_LEN,
	 3,
	 {0x1, 0xe, 0x14}},

	{WNI_CFG_MAX_TX_POWER_5,
	 WNI_CFG_MAX_TX_POWER_5_LEN,
	 3,
	 {0x24, 0x7e, 0x14}},

	{WNI_CFG_COUNTRY_CODE,
	 WNI_CFG_COUNTRY_CODE_LEN,
	 0,
	 {0}},

	{WNI_CFG_EDCA_ANI_ACBK_LOCAL,
	 WNI_CFG_EDCA_ANI_ACBK_LOCAL_LEN,
	 17,
	 {0x0, 0x7, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0x1f, 0x3, 0xff, 0x0, 0x0,
	  0xf, 0x3, 0xff, 0x0}},

	{WNI_CFG_EDCA_ANI_ACBE_LOCAL,
	 WNI_CFG_EDCA_ANI_ACBE_LOCAL_LEN,
	 17,
	 {0x0, 0x2, 0x0, 0xf, 0x3, 0xff, 0x64, 0x0, 0x1f, 0x3, 0xff, 0x64, 0x0,
	  0xf, 0x3, 0xff, 0x64}},

	{WNI_CFG_EDCA_ANI_ACVI_LOCAL,
	 WNI_CFG_EDCA_ANI_ACVI_LOCAL_LEN,
	 17,
	 {0x0, 0x2, 0x0, 0x7, 0x0, 0xf, 0xc8, 0x0, 0xf, 0x0, 0x1f, 0xbc, 0x0,
	  0x7, 0x0, 0xf, 0xc8}},

	{WNI_CFG_EDCA_ANI_ACVO_LOCAL,
	 WNI_CFG_EDCA_ANI_ACVO_LOCAL_LEN,
	 17,
	 {0x0, 0x2, 0x0, 0x3, 0x0, 0x7, 0x64, 0x0, 0x7, 0x0, 0xf, 0x66, 0x0,
	  0x3, 0x0, 0x7, 0x64}},

	{WNI_CFG_EDCA_ANI_ACBK,
	 WNI_CFG_EDCA_ANI_ACBK_LEN,
	 17,
	 {0x0, 0x7, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0x1f, 0x3, 0xff, 0x0, 0x0,
	  0xf, 0x3, 0xff, 0x0}},

	{WNI_CFG_EDCA_ANI_ACBE,
	 WNI_CFG_EDCA_ANI_ACBE_LEN,
	 17,
	 {0x0, 0x2, 0x0, 0xf, 0x3, 0xff, 0x64, 0x0, 0x1f, 0x3, 0xff, 0x64,
	  0x0, 0xf, 0x3, 0xff, 0x64}},

	{WNI_CFG_EDCA_ANI_ACVI,
	 WNI_CFG_EDCA_ANI_ACVI_LEN,
	 17,
	 {0x0, 0x2, 0x0, 0x7, 0x0, 0xf, 0xc8, 0x0, 0xf, 0x0, 0x1f, 0xbc, 0x0,
	  0x7, 0x0, 0xf, 0xc8}},

	{WNI_CFG_EDCA_ANI_ACVO,
	 WNI_CFG_EDCA_ANI_ACVO_LEN,
	 17,
	 {0x0, 0x2, 0x0, 0x3, 0x0, 0x7, 0x64, 0x0, 0x7, 0x0, 0xf, 0x66, 0x0,
	  0x3, 0x0, 0x7, 0x64}},

	{WNI_CFG_EDCA_WME_ACBK_LOCAL,
	 WNI_CFG_EDCA_WME_ACBK_LOCAL_LEN,
	 17,
	 {0x0, 0x7, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0x1f, 0x3, 0xff, 0x0, 0x0,
	  0xf, 0x3, 0xff, 0x0}},

	{WNI_CFG_EDCA_WME_ACBE_LOCAL,
	 WNI_CFG_EDCA_WME_ACBE_LOCAL_LEN,
	 17,
	 {0x0, 0x3, 0x0, 0xf, 0x0, 0x3f, 0x0, 0x0, 0x1f, 0x3, 0xff,0x0, 0x0,
	  0xf, 0x0, 0x3f, 0x0}},

	{WNI_CFG_EDCA_WME_ACVI_LOCAL,
	 WNI_CFG_EDCA_WME_ACVI_LOCAL_LEN,
	 17,
	 {0x0, 0x1, 0x0, 0x7, 0x0, 0xf, 0x5e, 0x0, 0x7, 0x0, 0xf, 0xbc, 0x0,
	  0x7, 0x0, 0xf, 0x5e}},

	{WNI_CFG_EDCA_WME_ACVO_LOCAL,
	 WNI_CFG_EDCA_WME_ACVO_LOCAL_LEN,
	 17,
	 {0x0, 0x1, 0x0, 0x3, 0x0, 0x7, 0x2f, 0x0, 0x3, 0x0, 0x7, 0x66, 0x0,
	  0x3, 0x0, 0x7, 0x2f}},

	{WNI_CFG_EDCA_WME_ACBK,
	 WNI_CFG_EDCA_WME_ACBK_LEN,
	 17,
	 {0x0, 0x7, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0,
	  0xf, 0x3, 0xff, 0x0}},

	{WNI_CFG_EDCA_WME_ACBE,
	 WNI_CFG_EDCA_WME_ACBE_LEN,
	 17,
	 {0x0, 0x3, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0,
	  0xf, 0x3, 0xff, 0x0}},

	{WNI_CFG_EDCA_WME_ACVI,
	 WNI_CFG_EDCA_WME_ACVI_LEN,
	 17,
	 {0x0, 0x2, 0x0, 0x7, 0x0, 0xf, 0x5e, 0x0, 0x7, 0x0, 0xf, 0xbc, 0x0,
	  0x7, 0x0, 0xf, 0x5e}},

	{WNI_CFG_EDCA_WME_ACVO,
	 WNI_CFG_EDCA_WME_ACVO_LEN,
	 17,
	 {0x0, 0x2, 0x0, 0x3, 0x0, 0x7, 0x2f, 0x0, 0x3, 0x0, 0x7, 0x66, 0x0,
	  0x3, 0x0, 0x7, 0x2f}},

	{WNI_CFG_EDCA_ETSI_ACBK_LOCAL,
	 WNI_CFG_EDCA_ETSI_ACBK_LOCAL_LEN,
	 17,
	 {0x0, 0x7, 0x0, 0xf, 0x3, 0xff, 0xbb, 0x0, 0x1f, 0x3, 0xff, 0x0, 0x0,
	  0xf, 0x3, 0xff, 0x0}},

	{WNI_CFG_EDCA_ETSI_ACBE_LOCAL,
	 WNI_CFG_EDCA_ETSI_ACBE_LOCAL_LEN,
	 17,
	 {0x0, 0x3, 0x0, 0xf, 0x0, 0x3f, 0xbb, 0x0, 0x1f, 0x3, 0xff,0x0, 0x0,
	  0xf, 0x0, 0x3f, 0x0}},

	{WNI_CFG_EDCA_ETSI_ACVI_LOCAL,
	 WNI_CFG_EDCA_ETSI_ACVI_LOCAL_LEN,
	 17,
	 {0x0, 0x1, 0x0, 0x7, 0x0, 0xf, 0x7d, 0x0, 0x7, 0x0, 0xf, 0xbc, 0x0,
	  0x7, 0x0, 0xf, 0x5e}},

	{WNI_CFG_EDCA_ETSI_ACVO_LOCAL,
	 WNI_CFG_EDCA_ETSI_ACVO_LOCAL_LEN,
	 17,
	 {0x0, 0x1, 0x0, 0x3, 0x0, 0x7, 0x3e, 0x0, 0x3, 0x0, 0x7, 0x66, 0x0,
	  0x3, 0x0, 0x7, 0x2f}},

	{WNI_CFG_EDCA_ETSI_ACBK,
	 WNI_CFG_EDCA_ETSI_ACBK_LEN,
	 17,
	 {0x0, 0x7, 0x0, 0xf, 0x3, 0xff, 0xbb, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0,
	  0xf, 0x3, 0xff, 0x0}},

	{WNI_CFG_EDCA_ETSI_ACBE,
	 WNI_CFG_EDCA_ETSI_ACBE_LEN,
	 17,
	 {0x0, 0x3, 0x0, 0xf, 0x3, 0xff, 0xbb, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0,
	  0xf, 0x3, 0xff, 0x0}},

	{WNI_CFG_EDCA_ETSI_ACVI,
	 WNI_CFG_EDCA_ETSI_ACVI_LEN,
	 17,
	 {0x0, 0x2, 0x0, 0x7, 0x0, 0xf, 0x7d, 0x0, 0x7, 0x0, 0xf, 0xbc, 0x0,
	  0x7, 0x0, 0xf, 0x5e}},

	{WNI_CFG_EDCA_ETSI_ACVO,
	 WNI_CFG_EDCA_ETSI_ACVO_LEN,
	 17,
	 {0x0, 0x2, 0x0, 0x3, 0x0, 0x7, 0x3e, 0x0, 0x3, 0x0, 0x7, 0x66, 0x0,
	  0x3, 0x0, 0x7, 0x2f}},

	{WNI_CFG_EDCA_HOSTAPD_ACVO_LOCAL,
	 WNI_CFG_EDCA_HOSTAPD_ACVO_LOCAL_LEN,
	 18,
	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	  0, 0, 0, 0, 0}},

	{WNI_CFG_EDCA_HOSTAPD_ACVI_LOCAL,
	 WNI_CFG_EDCA_HOSTAPD_ACVI_LOCAL_LEN,
	 18,
	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	  0, 0, 0, 0, 0}},

	{WNI_CFG_EDCA_HOSTAPD_ACBK_LOCAL,
	 WNI_CFG_EDCA_HOSTAPD_ACBK_LOCAL_LEN,
	 18,
	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	  0, 0, 0, 0, 0}},

	{WNI_CFG_EDCA_HOSTAPD_ACBE_LOCAL,
	 WNI_CFG_EDCA_HOSTAPD_ACBE_LOCAL_LEN,
	 18,
	 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	  0, 0, 0, 0, 0}},

	{WNI_CFG_RADAR_CHANNEL_LIST,
	 WNI_CFG_RADAR_CHANNEL_LIST_LEN,
	 15,
	 {0x34, 0x38, 0x3c, 0x40, 0x64, 0x68, 0x6c, 0x70, 0x74, 0x78, 0x7c,
	  0x80, 0x84, 0x88, 0x8c}},

	{WNI_CFG_SCAN_CONTROL_LIST,
	 WNI_CFG_SCAN_CONTROL_LIST_LEN,
	 114,
	 {0x1, 0x1, 0x2, 0x1, 0x3, 0x1, 0x4, 0x1, 0x5, 0x1, 0x6, 0x1, 0x7,
	  0x1, 0x8, 0x1, 0x9,0x1, 0xa, 0x1, 0xb, 0x1, 0xc, 0x1, 0xd, 0x1,
	  0xe, 0x1, 0x22, 0x1, 0x24, 0x1, 0x26, 0x1, 0x28,0x1, 0x2a, 0x1,
	  0x2c, 0x1, 0x2e, 0x1, 0x30, 0x1, 0x32, 0x1, 0x34, 0x0, 0x36, 0x0,
	  0x38, 0x0,0x3a, 0x0, 0x3c, 0x0, 0x3e, 0x0, 0x40, 0x0, 0x64, 0x0,
	  0x68, 0x0, 0x6c, 0x0, 0x70, 0x0, 0x74,0x0, 0x78, 0x0, 0x7c, 0x0,
	  0x80, 0x0, 0x84, 0x0, 0x88, 0x0, 0x8c, 0x0, 0x90, 0x0, 0x95, 0x1,
          0x97, 0x1, 0x99, 0x1, 0x9b, 0x1, 0x9d, 0x1, 0x9f, 0x1, 0xa1, 0x1,
          0xa5, 0x1, 0xf0, 0x1, 0xf2, 0x1, 0xf4, 0x1, 0xf6, 0x1, 0xf8, 0x1,
          0xfa, 0x1, 0xfc, 0x1}},

	{WNI_CFG_SUPPORTED_MCS_SET,
	 WNI_CFG_SUPPORTED_MCS_SET_LEN,
	 16,
	 {0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
	  0x0, 0x0}},

	{WNI_CFG_BASIC_MCS_SET,
	 WNI_CFG_BASIC_MCS_SET_LEN,
	 16,
	 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
	  0x0, 0x0}},

	{WNI_CFG_CURRENT_MCS_SET,
	 WNI_CFG_CURRENT_MCS_SET_LEN,
	 16,
	 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
	  0x0, 0x0}},

	{WNI_CFG_BG_SCAN_CHANNEL_LIST,
	 WNI_CFG_BG_SCAN_CHANNEL_LIST_LEN,
	 55,
	 {0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c,0x40, 0x1, 0x6, 0xb, 0x22,
	  0x26, 0x2a, 0x2e, 0x2,  0x3, 0x4, 0x5, 0x7, 0x8, 0x9, 0xa, 0xc, 0xd,
	  0xe, 0x64, 0x68, 0x6c, 0x70, 0x74,0x78, 0x7c, 0x80, 0x84, 0x88, 0x8c,
	  0x95, 0x97, 0x99, 0x9b, 0x9d, 0x9f, 0xa1, 0x32, 0x36,0x3a, 0x3e, 0xf0,
	  0xf2, 0xf4, 0xf6, 0xf8, 0xfa, 0xfc}},

	{WNI_CFG_PROBE_REQ_ADDNIE_DATA,
	 WNI_CFG_PROBE_REQ_ADDNIE_DATA_LEN,
	 0,
	 {0}},

	{WNI_CFG_PROBE_RSP_ADDNIE_DATA1,
	 WNI_CFG_PROBE_RSP_ADDNIE_DATA1_LEN,
	 0,
	 {0}},

	{WNI_CFG_PROBE_RSP_ADDNIE_DATA2,
	 WNI_CFG_PROBE_RSP_ADDNIE_DATA2_LEN,
	 0,
	 {0}},

	{WNI_CFG_PROBE_RSP_ADDNIE_DATA3,
	 WNI_CFG_PROBE_RSP_ADDNIE_DATA3_LEN,
	 0,
	 {0}},

	{WNI_CFG_ASSOC_RSP_ADDNIE_DATA,
	 WNI_CFG_ASSOC_RSP_ADDNIE_DATA_LEN,
	 0,
	 {0}},

	{WNI_CFG_PROBE_REQ_ADDNP2PIE_DATA,
	 WNI_CFG_PROBE_REQ_ADDNP2PIE_DATA_LEN,
	 0,
	 {0}},

	{WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA,
	 WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA_LEN,
	 0,
	 {0}},

	{WNI_CFG_WPS_UUID,
	 WNI_CFG_WPS_UUID_LEN,
	 6,
	 {0xa, 0xb, 0xc, 0xd, 0xe, 0xf}}
};

/*--------------------------------------------------------------------*/
/* Static function prototypes                                         */
/*--------------------------------------------------------------------*/
static void ProcDnldRsp        (tpAniSirGlobal, tANI_U16, tANI_U32*);
static void ProcGetReq         (tpAniSirGlobal, tANI_U16, tANI_U32*);
static void ProcSetReq         (tpAniSirGlobal, tANI_U16, tANI_U32*);
static void ProcSetReqNoRsp    (tpAniSirGlobal, tANI_U16, tANI_U32*);

static tANI_U8 CheckParam(tpAniSirGlobal, tANI_U16, tANI_U32, tANI_U32, tANI_U32*);
static void GetStrValue(tANI_U8*, tANI_U8*, tANI_U32);


/*--------------------------------------------------------------------*/
/* Module global variables                                            */
/*--------------------------------------------------------------------*/

// CFG function table
void    (*gCfgFunc[])(tpAniSirGlobal, tANI_U16, tANI_U32*) =
{ ProcDnldRsp,
    ProcGetReq,
    ProcSetReq,
    ProcSetReqNoRsp
};

/**---------------------------------------------------------------------
 * cfgProcessMbMsg()
 *
 *FUNCTION:
 * CFG mailbox message processing function.
 *
 *LOGIC:
 *
 *ASSUMPTIONS:
 * None.
 *
 *NOTE:
 *
 * @param pMsg    Message pointer
 *
 * @return None.
 *
 */
void
cfgProcessMbMsg(tpAniSirGlobal pMac, tSirMbMsg *pMsg)
{
    tANI_U16    index;
    tANI_U16    len;
    tANI_U32   *pParam;

    // Use type[7:0] as index to function table
    index = CFG_GET_FUNC_INDX(pMsg->type);

    if (index >= (sizeof(gCfgFunc) / sizeof(gCfgFunc[0])))
    {
        vos_mem_free(pMsg);
        return;
    }
    len    = pMsg->msgLen - WNI_CFG_MB_HDR_LEN;
    pParam = ((tANI_U32*)pMsg) + 1;

    // Call processing function
    gCfgFunc[index](pMac, len, pParam);

    // Free up buffer
    vos_mem_free(pMsg);

} /*** end cfgProcessMbMsg() ***/

/**---------------------------------------------------------------------
 * ProcDnldRsp()
 *
 * FUNCTION:
 * This function processes CFG_DNLD_RSP message from host.
 *
 * LOGIC:
 *
 * ASSUMPTIONS:
 *
 * NOTE:
 *
 * @param length:  message length
 * @param pParam:  parameter list pointer
 *
 * @return None
 *
 */
static void
ProcDnldRsp(tpAniSirGlobal pMac, tANI_U16 length, tANI_U32 *pParam)
{
    tANI_S32    i;

    tANI_U32    expLen, retVal, bufStart, bufEnd;
    tANI_U32    *pSrc, *pDst, *pDstEnd;
    tANI_U32    strSize, j;
    tANI_U8     pStr[CFG_MAX_STR_LEN];
    tpCfgBinHdr pHdr;
    tANI_U32    logLevel;
    tSirMsgQ    mmhMsg;
    tANI_U32    param_list[WNI_CFG_DNLD_CNF_NUM];

    // First Dword must contain the AP or STA magic dword
    PELOGW(cfgLog(pMac, LOGW, FL("CFG size %d bytes MAGIC dword is 0x%x"),
           length, sirReadU32N((tANI_U8*)pParam) );)

    // if the string is not correct, return failure
        if (*pParam == CFG_STA_MAGIC_DWORD) {}




    else
    {
        PELOGE(cfgLog(pMac, LOGE, FL("Invalid magic dword 0x%x"),sirReadU32N((tANI_U8*)pParam) );)
        retVal = WNI_CFG_INVALID_LEN;
        goto end;
    }

    pParam++;
    length -= 4;

    // Verify message length
    {
        pMac->cfg.gCfgMaxIBufSize = CFG_STA_IBUF_MAX_SIZE;
        pMac->cfg.gCfgMaxSBufSize = CFG_STA_SBUF_MAX_SIZE;
    }

    // Parse the Cfg header
    pHdr = (tpCfgBinHdr) pParam;
    pParam += (sizeof(tCfgBinHdr) >> 2);
    PELOGW(cfgLog(pMac, LOGW, FL("CFG hdr totParams %d intParams %d strBufSize %d/%d"),
           pHdr->controlSize, pHdr->iBufSize, pHdr->sBufSize, pMac->cfg.gCfgMaxSBufSize);)

    expLen = ((WNI_CFG_MAX + 3 * pMac->cfg.gCfgMaxIBufSize) << 2) +
             pHdr->sBufSize + sizeof(tCfgBinHdr);

    if (length != expLen)
    {
        PELOGE(cfgLog(pMac, LOGE, FL("<CFG> DNLD_RSP invalid length %d (exp %d)"),
               length, expLen);)
        retVal = WNI_CFG_INVALID_LEN;
        goto end;
    }


    if (pHdr->controlSize != WNI_CFG_MAX)
    {
        PELOGE(cfgLog(pMac, LOGE, FL("<CFG> Total parameter count mismatch"));)
        retVal = WNI_CFG_INVALID_LEN;
        goto end;
    }

    if (pHdr->iBufSize != pMac->cfg.gCfgMaxIBufSize)
    {
        PELOGE(cfgLog(pMac, LOGE, FL("<CFG> Integer parameter count mismatch"));)
        retVal = WNI_CFG_INVALID_LEN;
        goto end;
    }

    // Copy control array
    pDst = (tANI_U32*)pMac->cfg.gCfgEntry;
    pDstEnd = pDst + WNI_CFG_MAX;
    pSrc = pParam;
    while (pDst < pDstEnd)
    {
        *pDst++ = *pSrc++;
    }
    // Copy default values
    pDst = pMac->cfg.gCfgIBuf;
    pDstEnd = pDst + pMac->cfg.gCfgMaxIBufSize;
    while (pDst < pDstEnd)
    {
        *pDst++ = *pSrc++;
    }

    // Copy min values
    pDst = pMac->cfg.gCfgIBufMin;
    pDstEnd = pDst + pMac->cfg.gCfgMaxIBufSize;
    while (pDst < pDstEnd)
    {
        *pDst++ = *pSrc++;
    }

    // Copy max values
    pDst = pMac->cfg.gCfgIBufMax;
    pDstEnd = pDst + pMac->cfg.gCfgMaxIBufSize;
    while (pDst < pDstEnd)
    {
        *pDst++ = *pSrc++;
    }

    for (i=0; i<pMac->cfg.gCfgMaxIBufSize; i++)
        if (pMac->cfg.gCfgIBuf[i] < pMac->cfg.gCfgIBufMin[i] ||
            pMac->cfg.gCfgIBuf[i] > pMac->cfg.gCfgIBufMax[i])
        {
            PELOGE(cfgLog(pMac, LOGE, FL("cfg id %d Invalid def value %d "
                            "min %d max %d"),
                   i, pMac->cfg.gCfgIBuf[i], pMac->cfg.gCfgIBufMin[i],
                   pMac->cfg.gCfgIBufMax[i]);)
        }

    // Calculate max string buffer lengths for all string parameters
    bufEnd = pMac->cfg.gCfgMaxSBufSize;
    for (i = WNI_CFG_MAX - 1; i >= 0; i--)
    {
        if ((pMac->cfg.gCfgEntry[i].control & CFG_CTL_INT) != 0)
            continue;

        if ((pMac->cfg.gCfgEntry[i].control & CFG_CTL_VALID) == 0)
            continue;

        bufStart = pMac->cfg.gCfgEntry[i].control & CFG_BUF_INDX_MASK;
        pMac->cfg.gCfgSBuf[bufStart] = (tANI_U8)(bufEnd - bufStart - 2);

       PELOG1(cfgLog(pMac, LOG1, FL("id %d max %d bufStart %d bufEnd %d"),
               i, pMac->cfg.gCfgSBuf[bufStart], bufStart, bufEnd);)

        bufEnd = bufStart;
    }

    // Initialize string defaults
    strSize = pHdr->sBufSize;
    while (strSize)
    {
        tANI_U32 paramId, paramLen, paramLenCeil4;

        if (strSize < 4)
        {
            PELOGE(cfgLog(pMac, LOGE, FL("Error parsing str defaults, rem %d bytes"), strSize);)
            retVal = WNI_CFG_INVALID_LEN;
            goto end;
        }
        paramId = *pSrc >> 16;
        paramLen = *pSrc & 0xff;
        pSrc++;
        strSize -= 4;

        paramLenCeil4 = ((paramLen + 3) >> 2);
        if (strSize < paramLenCeil4 << 2)
        {
            PELOGE(cfgLog(pMac, LOGE, FL("Error parsing str defaults, rem %d bytes"), strSize);)
            PELOGE(cfgLog(pMac, LOGE, FL("param id %d len %d bytes"), paramId, paramLen);)
            retVal = WNI_CFG_INVALID_LEN;
            goto end;
        }
        for (j=0; j < paramLenCeil4; j++)
        {
            pStr[4*j] = (tANI_U8) (*pSrc >> 24) & 0xff;
            pStr[4*j+1] = (tANI_U8) (*pSrc >> 16) & 0xff;
            pStr[4*j+2] = (tANI_U8) (*pSrc >> 8) & 0xff;
            pStr[4*j+3] = (tANI_U8) (*pSrc) & 0xff;

            pSrc++;
            strSize -= 4;
        }

        PELOG1(cfgLog(pMac, LOG1, FL("set str id %d len %d"), paramId, paramLen);)

        if (cfgSetStr(pMac, (tANI_U16) paramId, pStr, paramLen) != eSIR_SUCCESS)
        {
            PELOGE(cfgLog(pMac, LOGE, FL("Error setting str default param %d len %d"), paramId, paramLen);)
            retVal = WNI_CFG_INVALID_LEN;
            goto end;
        }
    }

    // Set the default log level based on config
    wlan_cfgGetInt(pMac, WNI_CFG_LOG_LEVEL, &logLevel);
    for (i = 0; i < LOG_ENTRY_NUM; i++)
        pMac->utils.gLogEvtLevel[i] = pMac->utils.gLogDbgLevel[i] = logLevel;

    // Set status to READY
    pMac->cfg.gCfgStatus = CFG_SUCCESS;
    retVal = WNI_CFG_SUCCESS;
    PELOG1(cfgLog(pMac, LOG1, "<CFG> Completed successfully");)

    end:

    if ( retVal != WNI_CFG_SUCCESS )
        pMac->cfg.gCfgStatus = CFG_FAILURE;

    // Send response message to host
    param_list[WNI_CFG_DNLD_CNF_RES] = retVal;
    cfgSendHostMsg(pMac, WNI_CFG_DNLD_CNF, WNI_CFG_DNLD_CNF_LEN,
                   WNI_CFG_DNLD_CNF_NUM, param_list, 0, 0);

    // Notify WDA that the config has downloaded
    mmhMsg.type = SIR_CFG_DOWNLOAD_COMPLETE_IND;
    mmhMsg.bodyptr = NULL;
    mmhMsg.bodyval = 0;

    MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type));
    if (wdaPostCtrlMsg(pMac, &mmhMsg) != eSIR_SUCCESS)
    {
        PELOGE(cfgLog(pMac, LOGE, FL("WDAPostMsgApi failed!"));)
    }

} /*** end procDnldRsp() ***/


/**---------------------------------------------------------------------
 * ProcGetReq()
 *
 * FUNCTION:
 * This function processes CFG_GET_REQ message from host.
 *
 * LOGIC:
 *
 * ASSUMPTIONS:
 *
 * NOTE:
 * For every parameter ID specified on the list, CFG will send a separate
 * CFG_GET_RSP back to host.
 *
 * @param length:  message length
 * @param pParam:  parameter list pointer
 *
 * @return None
 *
 */
static void
ProcGetReq(tpAniSirGlobal pMac, tANI_U16 length, tANI_U32 *pParam)
{
    tANI_U16    cfgId, i;
    tANI_U32    value, valueLen, result;
    tANI_U32    *pValue;
    tANI_U32    param_list[WNI_CFG_GET_RSP_NUM];

    PELOG1(cfgLog(pMac, LOG1, FL("Rcvd cfg get request %d bytes"), length);)
    for (i=0; i<length/4; i++)
        PELOG2(cfgLog(pMac, LOG2, FL("[%2d] 0x%08x"), i, pParam[i]);)

    if (!pMac->cfg.gCfgStatus)
    {
        cfgId = (tANI_U16)sirReadU32N((tANI_U8*)pParam);
        PELOGE(cfgLog(pMac, LOGE, FL("CFG not ready, param %d"), cfgId);)
        param_list[WNI_CFG_GET_RSP_RES]  = WNI_CFG_NOT_READY;
        param_list[WNI_CFG_GET_RSP_PID]  = cfgId;
        param_list[WNI_CFG_GET_RSP_PLEN] = 0;
        cfgSendHostMsg(pMac, WNI_CFG_GET_RSP, WNI_CFG_GET_RSP_PARTIAL_LEN,
                       WNI_CFG_GET_RSP_NUM, param_list, 0, 0);
    }
    else
    {
        // Process all parameter ID's on the list
        while (length >= sizeof(tANI_U32))
        {
            cfgId = (tANI_U16)*pParam++;
            pValue   = 0;
            valueLen = 0;

            PELOG1(cfgLog(pMac, LOG1, FL("Cfg get param %d"), cfgId);)

            // Check for valid parameter ID, etc...
            if (CheckParam(pMac, cfgId, CFG_CTL_RE, WNI_CFG_WO_PARAM, &result))
            {
                if ((pMac->cfg.gCfgEntry[cfgId].control & CFG_CTL_INT) != 0)
                {
                    // Get integer parameter
                    result = (wlan_cfgGetInt(pMac, cfgId, &value) == eSIR_SUCCESS ?
                              WNI_CFG_SUCCESS : WNI_CFG_OTHER_ERROR);
                    pValue   = &value;
                    valueLen = sizeof(tANI_U32);
                }
                else
                {
                    // Get string parameter
                    valueLen = sizeof(pMac->cfg.gSBuffer);
                    result = (wlan_cfgGetStr(pMac, cfgId, pMac->cfg.gSBuffer, &valueLen)
                              == eSIR_SUCCESS ?
                              WNI_CFG_SUCCESS : WNI_CFG_OTHER_ERROR);
                    pValue = (tANI_U32*)pMac->cfg.gSBuffer;
                }
            }
            else
            {
                PELOGE(cfgLog(pMac, LOGE, FL("Check param failed, param %d"), cfgId);)
                result = WNI_CFG_INVALID_LEN;
            }

            // Send response message to host
            param_list[WNI_CFG_GET_RSP_RES]  = result;
            param_list[WNI_CFG_GET_RSP_PID]  = cfgId;
            param_list[WNI_CFG_GET_RSP_PLEN] = valueLen;

            // We need to round up buffer length to word-increment
            valueLen = (((valueLen + 3) >> 2) << 2);
            cfgSendHostMsg(pMac, WNI_CFG_GET_RSP,
                           WNI_CFG_GET_RSP_PARTIAL_LEN + valueLen,
                           WNI_CFG_GET_RSP_NUM, param_list, valueLen, pValue);

            // Decrement length
            length -= sizeof(tANI_U32);
        }
    }

} /*** end procGetReq() ***/



/**---------------------------------------------------------------------
 * ProcSetReqInternal()
 *
 * FUNCTION:
 * This function processes CFG_SET_REQ message from host.
 *
 * LOGIC:
 *
 * ASSUMPTIONS:
 * - The message content is coded in TLV format.
 * - For string parameter, the length field is byte accurate.  However,
 *   the next TLV set will begin on the next word boundary.
 *
 * NOTE:
 * - For every parameter ID specified on the list, CFG will send a separate
 * CFG_SET_RSP back to host.
 *
 * @param length:  message length
 * @param pParam:  parameter list pointer
 * @param fRsp: whether to send response to host. TRUE means sending.
 * @return None
 *
 */
static void
ProcSetReqInternal(tpAniSirGlobal pMac, tANI_U16 length, tANI_U32 *pParam, tANI_BOOLEAN fRsp)
{
    tANI_U16    cfgId, valueLen, valueLenRoundedUp4;
    tANI_U32    value, result;
    tANI_U32    param_list[WNI_CFG_SET_CNF_NUM];

    PELOG1(cfgLog(pMac, LOG1, FL("Rcvd cfg set request %d bytes"), length);)

    if (!pMac->cfg.gCfgStatus)
    {
        cfgId = (tANI_U16)sirReadU32N((tANI_U8*)pParam);
        PELOG1(cfgLog(pMac, LOGW, FL("CFG not ready, param %d"), cfgId);)
        if( fRsp )
        {
           param_list[WNI_CFG_SET_CNF_RES] = WNI_CFG_NOT_READY;
           param_list[WNI_CFG_SET_CNF_PID] = cfgId;
           cfgSendHostMsg(pMac, WNI_CFG_SET_CNF, WNI_CFG_SET_CNF_LEN,
                          WNI_CFG_SET_CNF_NUM, param_list, 0, 0);
        }
    }
    else
    {
        // Process all TLVs in buffer
        while (length >= (sizeof(tANI_U32) * 2))
        {
            cfgId    = (tANI_U16) *pParam++;
            valueLen = (tANI_U16) *pParam++;
            length -= (sizeof(tANI_U32) * 2);
            // value length rounded up to a 4 byte multiple
            valueLenRoundedUp4 = (((valueLen + 3) >> 2) << 2);

            // Check for valid request before proceeding
            if (CheckParam(pMac, cfgId, CFG_CTL_WE, WNI_CFG_RO_PARAM, &result))
            {
                PELOG1(cfgLog(pMac, LOGW, (char *) gCfgParamName[cfgId]);)
                // Process integer parameter
                if ((pMac->cfg.gCfgEntry[cfgId].control & CFG_CTL_INT) != 0)
                {
                    // Set VALUE
                    if (valueLen != sizeof(tANI_U32))
                    {
                        PELOGE(cfgLog(pMac, LOGE, FL("Invalid value length %d in set param %d (tot %d)"),
                               valueLen, cfgId, length);)
                        result = WNI_CFG_INVALID_LEN;
                    }
                    else
                    {
                        value = *pParam;
                        PELOG1(cfgLog(pMac, LOGW, FL("Cfg set int %d len %d(%d) val %d"),
                               cfgId, valueLen, valueLenRoundedUp4, value);)
                        result = (cfgSetInt(pMac, cfgId, value) == eSIR_SUCCESS ?
                                  WNI_CFG_SUCCESS : WNI_CFG_OTHER_ERROR);
                        if (result == WNI_CFG_SUCCESS)
                        {
                            if (cfgNeedRestart(pMac, cfgId))
                            {
                                result = WNI_CFG_NEED_RESTART ;
                            }
                            else
                                if (cfgNeedReload(pMac, cfgId))
                                {
                                   result = WNI_CFG_NEED_RELOAD ;
                                }
                        }
                    }
                }
                // Process string parameter
                else
                {
                    if ((valueLenRoundedUp4 > length) ||
                        (valueLen > CFG_MAX_STR_LEN))
                    {
                       PELOGE(cfgLog(pMac, LOGE, FL("Invalid string length %d"
                              "in set param %d (tot %d)"), valueLen,
                                                     cfgId, length);)
                       result = WNI_CFG_INVALID_LEN;
                    }
                    else
                    {
                        GetStrValue((tANI_U8*)pParam, pMac->cfg.gSBuffer, valueLen);
                        PELOG1(cfgLog(pMac, LOGW, FL("Cfg set str %d len %d(%d) bytes"),
                               cfgId, valueLen, valueLenRoundedUp4);)
                        result = (cfgSetStr(pMac, cfgId, pMac->cfg.gSBuffer, valueLen) == eSIR_SUCCESS ?
                                  WNI_CFG_SUCCESS : WNI_CFG_OTHER_ERROR);
                        if (result == WNI_CFG_SUCCESS)
                        {
                            if (cfgNeedRestart(pMac, cfgId))
                            {
                                result = WNI_CFG_NEED_RESTART ;
                            }
                            else
                                if (cfgNeedReload(pMac, cfgId))
                                {
                                   result = WNI_CFG_NEED_RELOAD ;
                                }
                        }
                    }
                }
            }
            else
            {
                PELOGE(cfgLog(pMac, LOGE, FL("Check param failed, param %d"), cfgId);)
                result = WNI_CFG_INVALID_LEN;
            }

            if( fRsp )
            {
                /* Send confirm message to host */
                param_list[WNI_CFG_SET_CNF_RES] = result;
                param_list[WNI_CFG_SET_CNF_PID] = cfgId;
                cfgSendHostMsg(pMac, WNI_CFG_SET_CNF, WNI_CFG_SET_CNF_LEN,
                               WNI_CFG_SET_CNF_NUM, param_list, 0, 0);
            }
            else
            {
                PELOGW(cfgLog( pMac, LOG2, "  CFGID %d no rsp", cfgId);)
            }

            if (valueLenRoundedUp4 > length)
                length = 0;
            else
            {
                length -= valueLenRoundedUp4;
                pParam += (valueLenRoundedUp4 >> 2);
            }
        }
    }
}



static void
ProcSetReq(tpAniSirGlobal pMac, tANI_U16 length, tANI_U32 *pParam)
{
    ProcSetReqInternal( pMac, length, pParam, eANI_BOOLEAN_TRUE );
}

static void
ProcSetReqNoRsp(tpAniSirGlobal pMac, tANI_U16 length, tANI_U32 *pParam)
{
    ProcSetReqInternal( pMac, length, pParam, eANI_BOOLEAN_FALSE );
}



/**---------------------------------------------------------------------
 * CheckParam()
 *
 * FUNCTION:
 * This function is called to perform various check on a parameter.
 *
 * LOGIC:
 * -  If cfgId is out of bound or parameter is not valid, result
 *    WNI_CFG_INVALID_PID is returned at address specified in pResult.
 *
 * -  If specified 'flag' is not set in the parameter control entry,
 *    'failedResult' is returned at address specified in pResult.
 *
 * ASSUMPTIONS:
 * Since this function is used internally, 'pResult' is always valid.
 *
 * NOTE:
 *
 * @param None
 *
 * @return true:   Parameter is valid and matches checked condition \n
 * @return false:  Parameter either is not valid or does not match
 *                 checked condition.
 *
 */
static tANI_U8
CheckParam(tpAniSirGlobal pMac, tANI_U16 cfgId, tANI_U32 flag, tANI_U32 failedResult, tANI_U32 *pResult)
{
    // Check if parameter ID is out of bound
    if (cfgId >= WNI_CFG_MAX)
    {
        PELOGE(cfgLog(pMac, LOGE, FL("Invalid param id %d"), cfgId);)
        *pResult = WNI_CFG_INVALID_PID;
    }
    else
    {
        // Check if parameter is valid
        if ((pMac->cfg.gCfgEntry[cfgId].control & CFG_CTL_VALID) == 0)
        {
            PELOGE(cfgLog(pMac, LOGE, FL("Param id %d not valid"), cfgId);)
            *pResult = WNI_CFG_INVALID_PID;
        }
        else
        {
            // Check control field against flag
            if ((pMac->cfg.gCfgEntry[cfgId].control & flag) == 0)
            {
                PELOGE(cfgLog(pMac, LOGE, FL("Param id %d wrong permissions %x"),
                       cfgId, pMac->cfg.gCfgEntry[cfgId].control);)
                *pResult = failedResult;
            }
            else
                return(true);
        }
    }
    return(false);

} /*** cfgParamCheck() ***/


/**---------------------------------------------------------------------
 * GetStrValue()
 *
 * FUNCTION:
 * This function copies a string value from the specified buffer.
 *
 * LOGIC:
 *
 * ASSUMPTIONS:
 *
 * NOTE:
 *
 * @param pBuf:    input data buffer
 * @param pValue:  address where data is returned
 * @param length:  number of bytes to copy
 *
 * @return None
 *
 */
static void
GetStrValue(tANI_U8 *pBuf, tANI_U8 *pValue, tANI_U32 length)
{
    tANI_U8     *pEnd;

    pEnd = pValue + length;
    while (pValue < pEnd)
        *pValue++ = *pBuf++;
} /*** end GetStrValue() ***/


/**---------------------------------------------------------------------
 * processCfgDownloadReq()
 *
 * FUNCTION: This function reads the cfg_static array and
 * populates the cfg data structure.
 *
 * LOGIC:
 *
 * ASSUMPTIONS:
 *
 * NOTE:
 *
 * @param pMac: Pointer to Mac Structure
 *
 * @return None
 *
 */

void
processCfgDownloadReq(tpAniSirGlobal pMac)
{
    int32_t     i;
    uint32_t    index;
    uint8_t     *dst_ptr, *src_ptr;
    uint8_t     len;
    struct      cfgstatic_string *str_cfg;
    uint32_t    buf_start, buf_end, log_level, ret_val;
    uint32_t    icount = 0;
    uint32_t    scount = 0;

    for (i = 0; i < WNI_CFG_MAX ; i++) {
        if ((cfg_static[i].control & CFG_CTL_VALID) != 0) {
            if (!(cfg_static[i].control & CFG_CTL_INT)) {
                str_cfg = (struct cfgstatic_string *)cfg_static[i].p_str_data;
                if (str_cfg == NULL) {
                    PELOGE(cfgLog(pMac, LOGE,
                            FL("str_cfg is NULL for ConfigID : %d"),
                            i);)
                    continue;
                }
                index = scount & CFG_BUF_INDX_MASK;
                scount += str_cfg->max_len + 1 + 1;
            } else {
                index = icount & CFG_BUF_INDX_MASK;
                icount++;
            }
        } else {
            index = 0;
        }

        pMac->cfg.gCfgEntry[i].control = cfg_static[i].control | index;
    }

    /*Fill the SBUF wih maxLength*/
    buf_end = pMac->cfg.gCfgMaxSBufSize;

    for (i = WNI_CFG_MAX - 1; i >= 0; i--)
    {
        if ((pMac->cfg.gCfgEntry[i].control & CFG_CTL_INT) != 0)
            continue;

        if ((pMac->cfg.gCfgEntry[i].control & CFG_CTL_VALID) == 0)
            continue;

        buf_start = pMac->cfg.gCfgEntry[i].control & CFG_BUF_INDX_MASK;
        pMac->cfg.gCfgSBuf[buf_start] = (tANI_U8)(buf_end - buf_start - 2);

        PELOG1(cfgLog(pMac, LOG1, FL("id %d max %d buf_start %d buf_end %d"),
               i, pMac->cfg.gCfgSBuf[buf_start], buf_start, buf_end);)

        buf_end = buf_start;
    }

    for (i = 0; i < WNI_CFG_MAX ; i++) {
        index = pMac->cfg.gCfgEntry[i].control & CFG_BUF_INDX_MASK;

        if ((pMac->cfg.gCfgEntry[i].control & CFG_CTL_INT) != 0) {
            pMac->cfg.gCfgIBufMin[index] = cfg_static[i].cfg_imin;
            pMac->cfg.gCfgIBufMax[index] = cfg_static[i].cfg_imax;
            pMac->cfg.gCfgIBuf[index]    = cfg_static[i].cfg_ival;
        } else {
            uint8_t max_saved_len;

            if ((pMac->cfg.gCfgEntry[i].control & CFG_CTL_VALID) == 0)
                continue;

            if (index >= CFG_STA_SBUF_MAX_SIZE) {
                cfgLog(pMac, LOGE, FL("str_cfg id %d index %d too long"),
                       i, index);
                continue;
            }

            dst_ptr = &pMac->cfg.gCfgSBuf[index];
            str_cfg = (struct cfgstatic_string *)cfg_static[i].p_str_data;
            src_ptr = str_cfg->data;

            if ((dst_ptr == NULL) || (str_cfg == NULL) || (src_ptr == NULL))
                continue;

            max_saved_len = *dst_ptr;
            len = str_cfg->length;
            if (len > max_saved_len)
                continue;

            *dst_ptr++ = str_cfg->max_len;
            *dst_ptr++ = len;
            while (len) {
                *dst_ptr++ = *src_ptr++;
                len--;
            }
        }
    }

    // Set the default log level based on config
    wlan_cfgGetInt(pMac, WNI_CFG_LOG_LEVEL, &log_level);
    for (i = 0; i < LOG_ENTRY_NUM; i++)
        pMac->utils.gLogEvtLevel[i] = pMac->utils.gLogDbgLevel[i] = log_level;

    // Set status to READY
    pMac->cfg.gCfgStatus = CFG_SUCCESS;
    ret_val = WNI_CFG_SUCCESS;
    PELOG1(cfgLog(pMac, LOG1, "<CFG> Completed successfully");)
} /*** end ProcessDownloadReq() ***/
