qcacld-3.0: Add EDCA mlme cfg API

Add mlme cfg api functions to get EDCA parameters.
Also remove the legacy CFG item definitions.

Change-Id: I075240279e2cf3fda4424b77b7cfcf50ac9619f4
CRs-Fixed: 2316205
This commit is contained in:
Pragaspathi Thilagaraj
2018-09-16 00:18:26 +05:30
zatwierdzone przez Nitesh Shrivastav
rodzic 03efaa5442
commit fe1efeccfc
8 zmienionych plików z 385 dodań i 429 usunięć

Wyświetl plik

@@ -25,9 +25,43 @@
#include <wlan_mlme_public_struct.h>
#include <wlan_objmgr_psoc_obj.h>
#include <wlan_cmn.h>
#include "sme_api.h"
/**
* wlan_mlme_get_cfg_str() - Copy the uint8_t array for a particular CFG
* @dst: pointer to the destination buffer.
* @cfg_str: pointer to the cfg string structure
* @len: length to be copied
*
* Return: QDF_STATUS_SUCCESS or QDF_STATUS_E_FAILURE
*/
QDF_STATUS wlan_mlme_get_cfg_str(uint8_t *dst, struct mlme_cfg_str *cfg_str,
qdf_size_t *len);
/**
* wlan_mlme_set_cfg_str() - Set values for a particular CFG
* @src: pointer to the source buffer.
* @dst_cfg_str: pointer to the cfg string structure to be modified
* @len: length to be written
*
* Return: QDF_STATUS_SUCCESS or QDF_STATUS_E_FAILURE
*/
QDF_STATUS wlan_mlme_set_cfg_str(uint8_t *src, struct mlme_cfg_str *dst_cfg_str,
qdf_size_t len);
/**
* wlan_mlme_get_edca_params() - get the EDCA parameters corresponding to the
* edca profile access category
* @edca_params: pointer to mlme edca parameters structure
* @data: data to which the parameter is to be copied
* @edca_ac: edca ac type enum passed to get the cfg value
*
* Return QDF_STATUS_SUCCESS or QDF_STATUS_E_FAILURE
*
*/
QDF_STATUS wlan_mlme_get_edca_params(struct wlan_mlme_edca_params *edca_params,
uint8_t *data, enum e_edca_type edca_ac);
/**
* wlan_mlme_get_ht_cap_info() - Get the HT cap info config
* @psoc: pointer to psoc object

Wyświetl plik

@@ -28,17 +28,20 @@
#define CFG_PMKID_MODES_OKC (0x1)
#define CFG_PMKID_MODES_PMKSA_CACHING (0x2)
#define CFG_EDCA_DATA_LEN 17
#define CFG_STR_DATA_LEN 17
#define CFG_EDCA_DATA_LEN 17
/**
* struct mlme_cfg_str - generic structure for all mlme CFG string items
*
* @len: length of the string
* @max_len: maximum data length allowed
* @len: valid no. of elements of the data
* @data: uint8_t array to store values
*/
struct mlme_cfg_str {
qdf_size_t max_len;
qdf_size_t len;
uint8_t data[CFG_EDCA_DATA_LEN];
uint8_t data[CFG_STR_DATA_LEN];
};
/**
@@ -96,25 +99,37 @@ enum e_edca_type {
edca_etsi_acvo_bcast
};
#define CFG_EDCA_PROFILE_ACM_IDX 0
#define CFG_EDCA_PROFILE_AIFSN_IDX 1
#define CFG_EDCA_PROFILE_CWMINA_IDX 2
#define CFG_EDCA_PROFILE_CWMAXA_IDX 4
#define CFG_EDCA_PROFILE_TXOPA_IDX 6
#define CFG_EDCA_PROFILE_CWMINB_IDX 7
#define CFG_EDCA_PROFILE_CWMAXB_IDX 9
#define CFG_EDCA_PROFILE_TXOPB_IDX 11
#define CFG_EDCA_PROFILE_CWMING_IDX 12
#define CFG_EDCA_PROFILE_CWMAXG_IDX 14
#define CFG_EDCA_PROFILE_TXOPG_IDX 16
/**
* struct mlme_edca_params - EDCA pramaters related config items
*
* @ani_acbk_l: EDCA parameters for ANI local access category background
* @ani_acbe_l: EDCA parameters for ANI local access category best effort
* @ani_acvi_l: EDCA parameters for ANI local access category video
* @ani_acvo_l: EDCA parameters for ANI local access category voice
* @ani_acbk_b: EDCA parameters for ANI bcast access category background
* @ani_acbe_b: EDCA parameters for ANI bcast access category best effort
* @ani_acvi_b: EDCA parameters for ANI bcast access category video
* @ani_acvo_b: EDCA parameters for ANI bcast access category voice
* @wme_acbk_l: EDCA parameters for WME local access category background
* @wme_acbe_l: EDCA parameters for WME local access category best effort
* @wme_acvi_l: EDCA parameters for WME local access category video
* @wme_acvo_l: EDCA parameters for WME local access category voice
* @wme_acbk_b: EDCA parameters for WME bcast access category background
* @wme_acbe_b: EDCA parameters for WME bcast access category best effort
* @wme_acvi_b: EDCA parameters for WME bcast access category video
* @wme_acvo_b: EDCA parameters for WME bcast access category voice
* @ani_acbk_l: EDCA parameters for ANI local access category background
* @ani_acbe_l: EDCA parameters for ANI local access category best effort
* @ani_acvi_l: EDCA parameters for ANI local access category video
* @ani_acvo_l: EDCA parameters for ANI local access category voice
* @ani_acbk_b: EDCA parameters for ANI bcast access category background
* @ani_acbe_b: EDCA parameters for ANI bcast access category best effort
* @ani_acvi_b: EDCA parameters for ANI bcast access category video
* @ani_acvo_b: EDCA parameters for ANI bcast access category voice
* @wme_acbk_l: EDCA parameters for WME local access category background
* @wme_acbe_l: EDCA parameters for WME local access category best effort
* @wme_acvi_l: EDCA parameters for WME local access category video
* @wme_acvo_l: EDCA parameters for WME local access category voice
* @wme_acbk_b: EDCA parameters for WME bcast access category background
* @wme_acbe_b: EDCA parameters for WME bcast access category best effort
* @wme_acvi_b: EDCA parameters for WME bcast access category video
* @wme_acvo_b: EDCA parameters for WME bcast access category voice
* @etsi_acbk_l: EDCA parameters for ETSI local access category background
* @etsi_acbe_l: EDCA parameters for ETSI local access category best effort
* @etsi_acvi_l: EDCA parameters for ETSI local access category video