qcacmn: populate qos_null in rx state

sw_frame_group_id decides process for frame. USER_STATS tlv case uses
sw_frame_group_id to add qos_null frame control to rx_status.

Change-Id: Ia3da8dbe4fc4c2d0f21fa8864e6b4e87170ba8f6
This commit is contained in:
Ruben Columbus
2019-11-13 14:09:16 -08:00
committed by nshrivas
parent ab6b497e6d
commit fadeef890b
8 changed files with 42 additions and 7 deletions

View File

@@ -486,6 +486,8 @@ struct hal_rx_ppdu_info {
uint32_t hdr_len; uint32_t hdr_len;
/* MPDU FCS error */ /* MPDU FCS error */
bool fcs_err; bool fcs_err;
/* Id to indicate how to process mpdu */
uint8_t sw_frame_group_id;
struct hal_rx_ppdu_msdu_info rx_msdu_info[HAL_MAX_UL_MU_USERS]; struct hal_rx_ppdu_msdu_info rx_msdu_info[HAL_MAX_UL_MU_USERS];
/* first msdu payload for all mpdus in ppdu */ /* first msdu payload for all mpdus in ppdu */
struct hal_rx_msdu_payload_info ppdu_msdu_info[HAL_RX_MAX_MPDU]; struct hal_rx_msdu_payload_info ppdu_msdu_info[HAL_RX_MAX_MPDU];

View File

@@ -485,14 +485,18 @@ hal_rx_status_get_tlv_info_generic(void *rx_tlv_hdr, void *ppduinfo,
HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_10, HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_10,
OTHER_MSDU_COUNT); OTHER_MSDU_COUNT);
ppdu_info->rx_status.frame_control_info_valid = if (ppdu_info->sw_frame_group_id
HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_3, != HAL_MPDU_SW_FRAME_GROUP_NULL_DATA) {
FRAME_CONTROL_INFO_VALID); ppdu_info->rx_status.frame_control_info_valid =
HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_3,
FRAME_CONTROL_INFO_VALID);
if (ppdu_info->rx_status.frame_control_info_valid) if (ppdu_info->rx_status.frame_control_info_valid)
ppdu_info->rx_status.frame_control = ppdu_info->rx_status.frame_control =
HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_4, HAL_RX_GET(rx_tlv,
FRAME_CONTROL_FIELD); RX_PPDU_END_USER_STATS_4,
FRAME_CONTROL_FIELD);
}
ppdu_info->rx_status.data_sequence_control_info_valid = ppdu_info->rx_status.data_sequence_control_info_valid =
HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_3, HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_3,
@@ -1368,6 +1372,17 @@ hal_rx_status_get_tlv_info_generic(void *rx_tlv_hdr, void *ppduinfo,
RX_MPDU_INFO_14, RX_MPDU_INFO_14,
MPDU_FRAME_CONTROL_FIELD); MPDU_FRAME_CONTROL_FIELD);
ppdu_info->sw_frame_group_id =
HAL_RX_GET_SW_FRAME_GROUP_ID(rx_mpdu_start);
if (ppdu_info->sw_frame_group_id ==
HAL_MPDU_SW_FRAME_GROUP_NULL_DATA) {
ppdu_info->rx_status.frame_control_info_valid =
ppdu_info->nac_info.fc_valid;
ppdu_info->rx_status.frame_control =
ppdu_info->nac_info.frame_control;
}
ppdu_info->nac_info.mac_addr2_valid = ppdu_info->nac_info.mac_addr2_valid =
HAL_RX_GET_MAC_ADDR2_VALID(rx_mpdu_start); HAL_RX_GET_MAC_ADDR2_VALID(rx_mpdu_start);

View File

@@ -264,6 +264,9 @@
#define HAL_RX_GET_PPDU_ID(rx_mpdu_start) \ #define HAL_RX_GET_PPDU_ID(rx_mpdu_start) \
HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, PHY_PPDU_ID) HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, PHY_PPDU_ID)
#define HAL_RX_GET_SW_FRAME_GROUP_ID(rx_mpdu_start) \
HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, SW_FRAME_GROUP_ID)
#define HAL_REO_R0_CONFIG(soc, reg_val, reo_params) \ #define HAL_REO_R0_CONFIG(soc, reg_val, reo_params) \
do { \ do { \
(reg_val) &= \ (reg_val) &= \

View File

@@ -270,6 +270,9 @@
#define HAL_RX_GET_PPDU_ID(rx_mpdu_start) \ #define HAL_RX_GET_PPDU_ID(rx_mpdu_start) \
HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, PHY_PPDU_ID) HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, PHY_PPDU_ID)
#define HAL_RX_GET_SW_FRAME_GROUP_ID(rx_mpdu_start) \
HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, SW_FRAME_GROUP_ID)
#define HAL_REO_R0_CONFIG(soc, reg_val, reo_params) \ #define HAL_REO_R0_CONFIG(soc, reg_val, reo_params) \
do { \ do { \
reg_val &= \ reg_val &= \

View File

@@ -273,6 +273,9 @@
#define HAL_RX_GET_PPDU_ID(rx_mpdu_start) \ #define HAL_RX_GET_PPDU_ID(rx_mpdu_start) \
HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_9, PHY_PPDU_ID) HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_9, PHY_PPDU_ID)
#define HAL_RX_GET_SW_FRAME_GROUP_ID(rx_mpdu_start) \
HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_9, SW_FRAME_GROUP_ID)
#define HAL_REO_R0_CONFIG(soc, reg_val, reo_params) \ #define HAL_REO_R0_CONFIG(soc, reg_val, reo_params) \
do { \ do { \
reg_val &= \ reg_val &= \

View File

@@ -253,6 +253,9 @@
#define HAL_RX_GET_PPDU_ID(rx_mpdu_start) \ #define HAL_RX_GET_PPDU_ID(rx_mpdu_start) \
HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, PHY_PPDU_ID) HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, PHY_PPDU_ID)
#define HAL_RX_GET_SW_FRAME_GROUP_ID(rx_mpdu_start) \
HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, SW_FRAME_GROUP_ID)
#define HAL_REO_R0_CONFIG(soc, reg_val, reo_params) \ #define HAL_REO_R0_CONFIG(soc, reg_val, reo_params) \
do { \ do { \
reg_val &= \ reg_val &= \

View File

@@ -262,6 +262,9 @@
#define HAL_RX_GET_PPDU_ID(rx_mpdu_start) \ #define HAL_RX_GET_PPDU_ID(rx_mpdu_start) \
HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, PHY_PPDU_ID) HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, PHY_PPDU_ID)
#define HAL_RX_GET_SW_FRAME_GROUP_ID(rx_mpdu_start) \
HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, SW_FRAME_GROUP_ID)
#define HAL_REO_R0_CONFIG(soc, reg_val, reo_params) \ #define HAL_REO_R0_CONFIG(soc, reg_val, reo_params) \
do { \ do { \
reg_val &= \ reg_val &= \

View File

@@ -47,6 +47,9 @@
#define HAL_RX_GET_PPDU_ID(rx_mpdu_start) \ #define HAL_RX_GET_PPDU_ID(rx_mpdu_start) \
HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_9, PHY_PPDU_ID) HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_9, PHY_PPDU_ID)
#define HAL_RX_GET_SW_FRAME_GROUP_ID(rx_mpdu_start) \
HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_9, SW_FRAME_GROUP_ID)
#define HAL_REO_R0_CONFIG(soc, reg_val, reo_params) \ #define HAL_REO_R0_CONFIG(soc, reg_val, reo_params) \
do { \ do { \
reg_val &= \ reg_val &= \