qcacmn: Add wmi config for AST flow override

Add wmi configuration to send AST flow override
config to wlan fw during init

Change-Id: Ia2915b40273bce25ab2cb48fdf34a618991c44bc
This commit is contained in:
Mainak Sen
2019-12-24 14:53:20 +05:30
committed by nshrivas
parent e0a2b69883
commit 394483b4a4
2 changed files with 82 additions and 0 deletions

View File

@@ -373,6 +373,12 @@
#define WMI_HOST_TPC_REGINDEX_MAX 4
#define WMI_HOST_ARRAY_GAIN_NUM_STREAMS 2
/* AST Index for flow override */
#define WMI_CONFIG_MSDU_AST_INDEX_0 0x0
#define WMI_CONFIG_MSDU_AST_INDEX_1 0x1
#define WMI_CONFIG_MSDU_AST_INDEX_2 0x2
#define WMI_CONFIG_MSDU_AST_INDEX_3 0x3
#include "qdf_atomic.h"
#ifdef BIG_ENDIAN_HOST
@@ -5170,6 +5176,15 @@ struct wmi_host_fw_abi_ver {
* @max_num_group_keys: max number of group keys supported for VLAN
* @re_ul_resp: enable 11ax UL response feature (UL-OFDMA) for repeater
* @ipa_disable: disable IPA feature
* @ast_1_valid_mask_enable: mask to enable ast index 1
* @ast_2_valid_mask_enable: mask to enable ast index 2
* @ast_3_valid_mask_enable: mask to enable ast index 3
* @ast_0_flow_mask_enable: mask to enable flow support for ast index 0
* @ast_1_flow_mask_enable: mask to enable flow support for ast index 1
* @ast_2_flow_mask_enable: mask to enable flow support for ast index 2
* @ast_3_flow_mask_enable: mask to enable flow support for ast index 3
* @ast_tid_high_mask_enable: enable tid valid mask for high priority flow
* @ast_tid_low_mask_enable: enable tid valid mask for low priority flow
*/
typedef struct {
uint32_t num_vdevs;
@@ -5257,6 +5272,15 @@ typedef struct {
uint32_t max_num_group_keys;
uint32_t re_ul_resp;
bool ipa_disable;
uint32_t ast_1_valid_mask_enable:1,
ast_2_valid_mask_enable:1,
ast_3_valid_mask_enable:1;
uint32_t ast_0_flow_mask_enable:4,
ast_1_flow_mask_enable:4,
ast_2_flow_mask_enable:4,
ast_3_flow_mask_enable:4,
ast_tid_high_mask_enable:8,
ast_tid_low_mask_enable:8;
} target_resource_config;
/**

View File

@@ -6810,6 +6810,64 @@ void wmi_copy_resource_config(wmi_resource_config *resource_cfg,
WMI_SET_BITS(resource_cfg->flags2, 0, 4,
tgt_res_cfg->re_ul_resp);
/*
* Enable ast flow override per peer
*/
resource_cfg->msdu_flow_override_config0 = 0;
WMI_MSDU_FLOW_AST_ENABLE_SET(
resource_cfg->msdu_flow_override_config0,
WMI_CONFIG_MSDU_AST_INDEX_1,
tgt_res_cfg->ast_1_valid_mask_enable);
WMI_MSDU_FLOW_AST_ENABLE_SET(
resource_cfg->msdu_flow_override_config0,
WMI_CONFIG_MSDU_AST_INDEX_2,
tgt_res_cfg->ast_2_valid_mask_enable);
WMI_MSDU_FLOW_AST_ENABLE_SET(
resource_cfg->msdu_flow_override_config0,
WMI_CONFIG_MSDU_AST_INDEX_3,
tgt_res_cfg->ast_3_valid_mask_enable);
/*
* Enable ast flow mask and TID valid mask configurations
*/
resource_cfg->msdu_flow_override_config1 = 0;
/*Enable UDP flow for Ast index 0*/
WMI_MSDU_FLOW_ASTX_MSDU_FLOW_MASKS_SET(
resource_cfg->msdu_flow_override_config1,
WMI_CONFIG_MSDU_AST_INDEX_0,
tgt_res_cfg->ast_0_flow_mask_enable);
/*Enable Non UDP flow for Ast index 1*/
WMI_MSDU_FLOW_ASTX_MSDU_FLOW_MASKS_SET(
resource_cfg->msdu_flow_override_config1,
WMI_CONFIG_MSDU_AST_INDEX_1,
tgt_res_cfg->ast_1_flow_mask_enable);
/*Enable Hi-Priority flow for Ast index 2*/
WMI_MSDU_FLOW_ASTX_MSDU_FLOW_MASKS_SET(
resource_cfg->msdu_flow_override_config1,
WMI_CONFIG_MSDU_AST_INDEX_2,
tgt_res_cfg->ast_2_flow_mask_enable);
/*Enable Low-Priority flow for Ast index 3*/
WMI_MSDU_FLOW_ASTX_MSDU_FLOW_MASKS_SET(
resource_cfg->msdu_flow_override_config1,
WMI_CONFIG_MSDU_AST_INDEX_3,
tgt_res_cfg->ast_3_flow_mask_enable);
/*Enable all 8 tid for Hi-Pririty Flow Queue*/
WMI_MSDU_FLOW_TID_VALID_HI_MASKS_SET(
resource_cfg->msdu_flow_override_config1,
tgt_res_cfg->ast_tid_high_mask_enable);
/*Enable all 8 tid for Low-Pririty Flow Queue*/
WMI_MSDU_FLOW_TID_VALID_LOW_MASKS_SET(
resource_cfg->msdu_flow_override_config1,
tgt_res_cfg->ast_tid_low_mask_enable);
}
/* copy_hw_mode_id_in_init_cmd() - Helper routine to copy hw_mode in init cmd