qcacld-3.0: Add CFG items of power
Add power items related CFG items in new file, and store the respective inis in MLME component Change-Id: Iac183da52495aca07c6270edeb9f383ab49c1ff5 CRs-Fixed: 2341900
This commit is contained in:

committed by
nshrivas

parent
45afe042a2
commit
57db85a71d
@@ -1420,6 +1420,29 @@ mlme_limit_max_per_index_score(uint32_t per_index_score)
|
|||||||
return per_index_score;
|
return per_index_score;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void mlme_init_power_cfg(struct wlan_objmgr_psoc *psoc,
|
||||||
|
struct wlan_mlme_power *power)
|
||||||
|
{
|
||||||
|
power->tx_power_2g = cfg_get(psoc, CFG_SET_TXPOWER_LIMIT2G);
|
||||||
|
power->tx_power_5g = cfg_get(psoc, CFG_SET_TXPOWER_LIMIT5G);
|
||||||
|
|
||||||
|
power->max_tx_power_24.max_len = CFG_MAX_TX_POWER_2_4_LEN;
|
||||||
|
qdf_uint8_array_parse(cfg_default(CFG_MAX_TX_POWER_2_4),
|
||||||
|
power->max_tx_power_24.data,
|
||||||
|
sizeof(power->max_tx_power_24.data),
|
||||||
|
&power->max_tx_power_24.len);
|
||||||
|
|
||||||
|
power->max_tx_power_5.max_len = CFG_MAX_TX_POWER_5_LEN;
|
||||||
|
qdf_uint8_array_parse(cfg_default(CFG_MAX_TX_POWER_5),
|
||||||
|
power->max_tx_power_5.data,
|
||||||
|
sizeof(power->max_tx_power_5.data),
|
||||||
|
&power->max_tx_power_5.len);
|
||||||
|
|
||||||
|
power->power_usage.max_len = CFG_POWER_USAGE_MAX_LEN;
|
||||||
|
power->power_usage.len = CFG_POWER_USAGE_MAX_LEN;
|
||||||
|
qdf_mem_copy(power->power_usage.data, cfg_get(psoc, CFG_POWER_USAGE),
|
||||||
|
power->power_usage.len);
|
||||||
|
}
|
||||||
static void mlme_init_scoring_cfg(struct wlan_objmgr_psoc *psoc,
|
static void mlme_init_scoring_cfg(struct wlan_objmgr_psoc *psoc,
|
||||||
struct wlan_mlme_scoring_cfg *scoring_cfg)
|
struct wlan_mlme_scoring_cfg *scoring_cfg)
|
||||||
{
|
{
|
||||||
@@ -1818,6 +1841,7 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
|
|||||||
mlme_init_scoring_cfg(psoc, &mlme_cfg->scoring);
|
mlme_init_scoring_cfg(psoc, &mlme_cfg->scoring);
|
||||||
mlme_init_threshold_cfg(psoc, &mlme_cfg->threshold);
|
mlme_init_threshold_cfg(psoc, &mlme_cfg->threshold);
|
||||||
mlme_init_acs_cfg(psoc, &mlme_cfg->acs);
|
mlme_init_acs_cfg(psoc, &mlme_cfg->acs);
|
||||||
|
mlme_init_power_cfg(psoc, &mlme_cfg->power);
|
||||||
mlme_init_oce_cfg(psoc, &mlme_cfg->oce);
|
mlme_init_oce_cfg(psoc, &mlme_cfg->oce);
|
||||||
mlme_init_wep_cfg(&mlme_cfg->wep_params);
|
mlme_init_wep_cfg(&mlme_cfg->wep_params);
|
||||||
mlme_init_wps_params_cfg(psoc, &mlme_cfg->wps_params);
|
mlme_init_wps_params_cfg(psoc, &mlme_cfg->wps_params);
|
||||||
|
@@ -27,6 +27,7 @@
|
|||||||
#include "cfg_mlme_edca_params.h"
|
#include "cfg_mlme_edca_params.h"
|
||||||
#include "cfg_mlme_generic.h"
|
#include "cfg_mlme_generic.h"
|
||||||
#include "cfg_mlme_acs.h"
|
#include "cfg_mlme_acs.h"
|
||||||
|
#include "cfg_mlme_power.h"
|
||||||
#include "cfg_mlme_ht_caps.h"
|
#include "cfg_mlme_ht_caps.h"
|
||||||
#include "cfg_mlme_he_caps.h"
|
#include "cfg_mlme_he_caps.h"
|
||||||
#include "cfg_mlme_lfr.h"
|
#include "cfg_mlme_lfr.h"
|
||||||
@@ -62,6 +63,7 @@
|
|||||||
CFG_HE_CAPS_ALL \
|
CFG_HE_CAPS_ALL \
|
||||||
CFG_LFR_ALL \
|
CFG_LFR_ALL \
|
||||||
CFG_MBO_ALL \
|
CFG_MBO_ALL \
|
||||||
|
CFG_MLME_POWER_ALL \
|
||||||
CFG_MLME_PRODUCT_DETAILS_ALL \
|
CFG_MLME_PRODUCT_DETAILS_ALL \
|
||||||
CFG_NSS_CHAINS_ALL \
|
CFG_NSS_CHAINS_ALL \
|
||||||
CFG_OBSS_HT40_ALL \
|
CFG_OBSS_HT40_ALL \
|
||||||
|
120
mlme/dispatcher/inc/cfg_mlme_power.h
Normal file
120
mlme/dispatcher/inc/cfg_mlme_power.h
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
|
* above copyright notice and this permission notice appear in all
|
||||||
|
* copies.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
|
||||||
|
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
|
||||||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
|
||||||
|
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||||
|
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
||||||
|
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DOC: This file contains centralized definitions of converged configuration.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __CFG_MLME_POWER_H
|
||||||
|
#define __CFG_MLME_POWER_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <cfg>
|
||||||
|
* max_tx_power_24 - max tx power allowed for 2.4 ghz
|
||||||
|
* @Min: 0 minimum length of tx power
|
||||||
|
* @Max: default data length of tx power in string format
|
||||||
|
* @Default: 1, 14, 20
|
||||||
|
*/
|
||||||
|
#define CFG_MAX_TX_POWER_2_4_DATA "1, 14, 20"
|
||||||
|
#define CFG_MAX_TX_POWER_2_4 CFG_STRING( \
|
||||||
|
"max_tx_power_24", \
|
||||||
|
0, \
|
||||||
|
sizeof(CFG_MAX_TX_POWER_2_4_DATA) - 1, \
|
||||||
|
CFG_MAX_TX_POWER_2_4_DATA, \
|
||||||
|
"max tx power 24")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <cfg>
|
||||||
|
* max_tx_power_5 - max tx power allowed for 5 ghz
|
||||||
|
* @Min: 0 minimum length of tx power
|
||||||
|
* @Max: default data length of tx power in string format
|
||||||
|
* @Default: 36, 126, 20
|
||||||
|
*/
|
||||||
|
#define CFG_MAX_TX_POWER_5_DATA "36, 126, 20"
|
||||||
|
#define CFG_MAX_TX_POWER_5 CFG_STRING( \
|
||||||
|
"max_tx_power_5", \
|
||||||
|
0, \
|
||||||
|
sizeof(CFG_MAX_TX_POWER_5_DATA) - 1, \
|
||||||
|
CFG_MAX_TX_POWER_5_DATA, \
|
||||||
|
"max tx power 5")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gPowerUsage - power usage name
|
||||||
|
* @Min: "Min" - minimum power usage
|
||||||
|
* @Max: "Max" - maximum power usage
|
||||||
|
* @Default: "Mod"
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define CFG_POWER_USAGE CFG_INI_STRING( \
|
||||||
|
"gPowerUsage", \
|
||||||
|
0, \
|
||||||
|
3, \
|
||||||
|
"Mod", \
|
||||||
|
"power usage")
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* TxPower2g - Limit power in case of 2.4ghz
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 30
|
||||||
|
* @Default: 30
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define CFG_SET_TXPOWER_LIMIT2G CFG_INI_UINT( \
|
||||||
|
"TxPower2g", \
|
||||||
|
0, \
|
||||||
|
30, \
|
||||||
|
30, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"power limit 2g")
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* TxPower5g - Limit power in case of 5ghz
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 30
|
||||||
|
* @Default: 30
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define CFG_SET_TXPOWER_LIMIT5G CFG_INI_UINT( \
|
||||||
|
"TxPower5g", \
|
||||||
|
0, \
|
||||||
|
30, \
|
||||||
|
30, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"power limit 5g")
|
||||||
|
|
||||||
|
#define CFG_MLME_POWER_ALL \
|
||||||
|
CFG(CFG_MAX_TX_POWER_2_4) \
|
||||||
|
CFG(CFG_MAX_TX_POWER_5) \
|
||||||
|
CFG(CFG_POWER_USAGE) \
|
||||||
|
CFG(CFG_SET_TXPOWER_LIMIT2G) \
|
||||||
|
CFG(CFG_SET_TXPOWER_LIMIT5G)
|
||||||
|
|
||||||
|
#endif /* __CFG_MLME_POWER_H */
|
@@ -85,6 +85,25 @@ QDF_STATUS mlme_get_wep_key(struct wlan_mlme_wep_cfg *wep_params,
|
|||||||
QDF_STATUS mlme_set_wep_key(struct wlan_mlme_wep_cfg *wep_params,
|
QDF_STATUS mlme_set_wep_key(struct wlan_mlme_wep_cfg *wep_params,
|
||||||
enum wep_key_id wep_keyid, uint8_t *key_to_set,
|
enum wep_key_id wep_keyid, uint8_t *key_to_set,
|
||||||
qdf_size_t len);
|
qdf_size_t len);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_mlme_get_tx_power() - Get the max tx power in particular band
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @band: 2ghz/5ghz band
|
||||||
|
*
|
||||||
|
* Return: value of tx power in the respective band
|
||||||
|
*/
|
||||||
|
uint8_t wlan_mlme_get_tx_power(struct wlan_objmgr_psoc *psoc,
|
||||||
|
enum band_info band);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_mlme_get_power_usage() - Get the power usage info
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
*
|
||||||
|
* Return: pointer to character array of power usage
|
||||||
|
*/
|
||||||
|
char *wlan_mlme_get_power_usage(struct wlan_objmgr_psoc *psoc);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_mlme_get_ht_cap_info() - Get the HT cap info config
|
* wlan_mlme_get_ht_cap_info() - Get the HT cap info config
|
||||||
* @psoc: pointer to psoc object
|
* @psoc: pointer to psoc object
|
||||||
|
@@ -43,6 +43,9 @@
|
|||||||
|
|
||||||
#define CFG_STR_DATA_LEN 17
|
#define CFG_STR_DATA_LEN 17
|
||||||
#define CFG_EDCA_DATA_LEN 17
|
#define CFG_EDCA_DATA_LEN 17
|
||||||
|
#define CFG_MAX_TX_POWER_2_4_LEN 128
|
||||||
|
#define CFG_MAX_TX_POWER_5_LEN 128
|
||||||
|
#define CFG_POWER_USAGE_MAX_LEN 4
|
||||||
|
|
||||||
#define CFG_VALID_CHANNEL_LIST_LEN 100
|
#define CFG_VALID_CHANNEL_LIST_LEN 100
|
||||||
#define CFG_VALID_CHANNEL_LIST_STRING_LEN (CFG_VALID_CHANNEL_LIST_LEN * 4)
|
#define CFG_VALID_CHANNEL_LIST_STRING_LEN (CFG_VALID_CHANNEL_LIST_LEN * 4)
|
||||||
@@ -1490,6 +1493,55 @@ struct wlan_mlme_threshold {
|
|||||||
uint32_t frag_threshold;
|
uint32_t frag_threshold;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* struct mlme_max_tx_power_24 - power related items
|
||||||
|
* @max_len: max length of string
|
||||||
|
* @len: actual len of string
|
||||||
|
* @data: Data in string format
|
||||||
|
*/
|
||||||
|
struct mlme_max_tx_power_24 {
|
||||||
|
qdf_size_t max_len;
|
||||||
|
qdf_size_t len;
|
||||||
|
uint8_t data[CFG_MAX_TX_POWER_2_4_LEN];
|
||||||
|
};
|
||||||
|
|
||||||
|
/* struct mlme_max_tx_power_5 - power related items
|
||||||
|
* @max_len: max length of string
|
||||||
|
* @len: actual len of string
|
||||||
|
* @data: Data in string format
|
||||||
|
*/
|
||||||
|
struct mlme_max_tx_power_5 {
|
||||||
|
qdf_size_t max_len;
|
||||||
|
qdf_size_t len;
|
||||||
|
uint8_t data[CFG_MAX_TX_POWER_5_LEN];
|
||||||
|
};
|
||||||
|
|
||||||
|
/* struct mlme_power_usage - power related items
|
||||||
|
* @max_len: max length of string
|
||||||
|
* @len: actual len of string
|
||||||
|
* @data: Data in string format
|
||||||
|
*/
|
||||||
|
struct mlme_power_usage {
|
||||||
|
qdf_size_t max_len;
|
||||||
|
qdf_size_t len;
|
||||||
|
char data[CFG_POWER_USAGE_MAX_LEN];
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* struct wlan_mlme_power - power related config items
|
||||||
|
* @max_tx_power_24: max power Tx for 2.4 ghz
|
||||||
|
* @max_tx_power_5: max power Tx for 5 ghz
|
||||||
|
* @power_usage: power usage mode, min, max, mod
|
||||||
|
* @tx_power_2g: limit tx power in 2.4 ghz
|
||||||
|
* @tx_power_5g: limit tx power in 5 ghz
|
||||||
|
*/
|
||||||
|
struct wlan_mlme_power {
|
||||||
|
struct mlme_max_tx_power_24 max_tx_power_24;
|
||||||
|
struct mlme_max_tx_power_5 max_tx_power_5;
|
||||||
|
struct mlme_power_usage power_usage;
|
||||||
|
uint8_t tx_power_2g;
|
||||||
|
uint8_t tx_power_5g;
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* struct wlan_mlme_timeout - mlme timeout related config items
|
* struct wlan_mlme_timeout - mlme timeout related config items
|
||||||
* @join_failure_timeout: join failure timeout
|
* @join_failure_timeout: join failure timeout
|
||||||
@@ -1602,6 +1654,7 @@ struct wlan_mlme_wep_cfg {
|
|||||||
* @threshold: threshold related cfg items
|
* @threshold: threshold related cfg items
|
||||||
* @timeouts: mlme timeout related CFG items
|
* @timeouts: mlme timeout related CFG items
|
||||||
* @twt_cfg: TWT CFG Items
|
* @twt_cfg: TWT CFG Items
|
||||||
|
* @wlan_mlme_power: power related items
|
||||||
* @acs: ACS related CFG items
|
* @acs: ACS related CFG items
|
||||||
* @feature_flags: Feature flag config items
|
* @feature_flags: Feature flag config items
|
||||||
* @wep_params: WEP related config items
|
* @wep_params: WEP related config items
|
||||||
@@ -1633,6 +1686,7 @@ struct wlan_mlme_cfg {
|
|||||||
struct wlan_mlme_threshold threshold;
|
struct wlan_mlme_threshold threshold;
|
||||||
struct wlan_mlme_timeout timeouts;
|
struct wlan_mlme_timeout timeouts;
|
||||||
struct wlan_mlme_cfg_twt twt_cfg;
|
struct wlan_mlme_cfg_twt twt_cfg;
|
||||||
|
struct wlan_mlme_power power;
|
||||||
struct wlan_mlme_acs acs;
|
struct wlan_mlme_acs acs;
|
||||||
struct wlan_mlme_feature_flag feature_flags;
|
struct wlan_mlme_feature_flag feature_flags;
|
||||||
struct wlan_mlme_wep_cfg wep_params;
|
struct wlan_mlme_wep_cfg wep_params;
|
||||||
|
@@ -117,6 +117,31 @@ static inline QDF_STATUS ucfg_mlme_pdev_close(struct wlan_objmgr_pdev *pdev)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_mlme_get_power_usage() - Get the power usage info
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
*
|
||||||
|
* Return: pointer to character array of power usage
|
||||||
|
*/
|
||||||
|
static inline
|
||||||
|
char *ucfg_mlme_get_power_usage(struct wlan_objmgr_psoc *psoc)
|
||||||
|
{
|
||||||
|
return wlan_mlme_get_power_usage(psoc);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ucfg_get_tx_power() - Get the max tx power in particular band
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @band: 2ghz/5ghz band
|
||||||
|
*
|
||||||
|
* Return: value of tx power in the respective band
|
||||||
|
*/
|
||||||
|
static inline
|
||||||
|
uint8_t ucfg_get_tx_power(struct wlan_objmgr_psoc *psoc, uint8_t band)
|
||||||
|
{
|
||||||
|
return wlan_mlme_get_tx_power(psoc, band);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_mlme_get_ht_cap_info() - Get the HT cap info config
|
* ucfg_mlme_get_ht_cap_info() - Get the HT cap info config
|
||||||
* @psoc: pointer to psoc object
|
* @psoc: pointer to psoc object
|
||||||
|
@@ -56,6 +56,41 @@ QDF_STATUS wlan_mlme_set_cfg_str(uint8_t *src, struct mlme_cfg_str *dst_cfg_str,
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t wlan_mlme_get_tx_power(struct wlan_objmgr_psoc *psoc,
|
||||||
|
enum band_info band)
|
||||||
|
{
|
||||||
|
struct wlan_mlme_psoc_obj *mlme_obj;
|
||||||
|
|
||||||
|
mlme_obj = mlme_get_psoc_obj(psoc);
|
||||||
|
if (!mlme_obj) {
|
||||||
|
mlme_err("Failed to get MLME Obj");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (band) {
|
||||||
|
case BAND_2G:
|
||||||
|
return mlme_obj->cfg.power.tx_power_2g;
|
||||||
|
case BAND_5G:
|
||||||
|
return mlme_obj->cfg.power.tx_power_5g;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *wlan_mlme_get_power_usage(struct wlan_objmgr_psoc *psoc)
|
||||||
|
{
|
||||||
|
struct wlan_mlme_psoc_obj *mlme_obj;
|
||||||
|
|
||||||
|
mlme_obj = mlme_get_psoc_obj(psoc);
|
||||||
|
if (!mlme_obj) {
|
||||||
|
mlme_err("Failed to get MLME Obj");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mlme_obj->cfg.power.power_usage.data;
|
||||||
|
}
|
||||||
|
|
||||||
QDF_STATUS wlan_mlme_get_ht_cap_info(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS wlan_mlme_get_ht_cap_info(struct wlan_objmgr_psoc *psoc,
|
||||||
struct mlme_ht_capabilities_info
|
struct mlme_ht_capabilities_info
|
||||||
*ht_cap_info)
|
*ht_cap_info)
|
||||||
|
Reference in New Issue
Block a user