Browse Source

qcacmn: Update PPDU specific fields in Rx monitor HAL parsing

Update PPDU specific fields in Rx monitor HAL parsing.
Also correct the offset to be used for user info in EHT_SIG_HDR.

Change-Id: I9dd133d3617754475f097b54b6e1e460f2e67baa
CRs-Fixed: 3153475
Harsh Kumar Bijlani 3 years ago
parent
commit
ff6dd1fab7
2 changed files with 17 additions and 3 deletions
  1. 16 2
      hal/wifi3.0/be/hal_be_api_mon.h
  2. 1 1
      hal/wifi3.0/qcn9224/hal_9224.c

+ 16 - 2
hal/wifi3.0/be/hal_be_api_mon.h

@@ -1213,6 +1213,7 @@ hal_rx_parse_eht_sig_mumimo_user_info(struct hal_soc *hal_soc, void *tlv,
 				QDF_MON_STATUS_EHT_USER_STA_ID_SHIFT);
 	ppdu_info->rx_status.eht_user_info[user_idx] |= (user_info->mcs <<
 				QDF_MON_STATUS_EHT_USER_MCS_SHIFT);
+	ppdu_info->rx_status.mcs = user_info->mcs;
 
 	ppdu_info->rx_status.eht_user_info[user_idx] |= (user_info->coding <<
 					QDF_MON_STATUS_EHT_USER_CODING_SHIFT);
@@ -1252,8 +1253,12 @@ hal_rx_parse_eht_sig_non_mumimo_user_info(struct hal_soc *hal_soc, void *tlv,
 				QDF_MON_STATUS_EHT_USER_STA_ID_SHIFT);
 	ppdu_info->rx_status.eht_user_info[user_idx] |= (user_info->mcs <<
 				QDF_MON_STATUS_EHT_USER_MCS_SHIFT);
+	ppdu_info->rx_status.mcs = user_info->mcs;
+
 	ppdu_info->rx_status.eht_user_info[user_idx] |= (user_info->nss <<
 					QDF_MON_STATUS_EHT_USER_NSS_SHIFT);
+	ppdu_info->rx_status.nss = user_info->nss + 1;
+
 	ppdu_info->rx_status.eht_user_info[user_idx] |=
 				(user_info->beamformed <<
 				QDF_MON_STATUS_EHT_USER_BEAMFORMING_SHIFT);
@@ -1361,14 +1366,16 @@ static inline uint32_t
 hal_rx_parse_eht_sig_non_ofdma(struct hal_soc *hal_soc, void *tlv,
 			       struct hal_rx_ppdu_info *ppdu_info)
 {
+	void *user_info = (void *)((uint8_t *)tlv + 4);
+
 	hal_rx_parse_usig_overflow(hal_soc, tlv, ppdu_info);
 	hal_rx_parse_non_ofdma_users(hal_soc, tlv, ppdu_info);
 
 	if (hal_rx_is_mu_mimo_user(hal_soc, ppdu_info))
-		hal_rx_parse_eht_sig_mumimo_user_info(hal_soc, tlv,
+		hal_rx_parse_eht_sig_mumimo_user_info(hal_soc, user_info,
 						      ppdu_info);
 	else
-		hal_rx_parse_eht_sig_non_mumimo_user_info(hal_soc, tlv,
+		hal_rx_parse_eht_sig_non_mumimo_user_info(hal_soc, user_info,
 							  ppdu_info);
 
 	return HAL_TLV_STATUS_PPDU_NOT_DONE;
@@ -1419,8 +1426,11 @@ hal_rx_parse_cmn_usr_info(struct hal_soc *hal_soc, uint8_t *tlv,
 
 	ppdu_info->rx_status.eht_data[0] |= (cmn_usr_info->cp_setting <<
 					     QDF_MON_STATUS_EHT_GI_SHIFT);
+	ppdu_info->rx_status.sgi = cmn_usr_info->cp_setting;
+
 	ppdu_info->rx_status.eht_data[0] |= (cmn_usr_info->ltf_size <<
 					     QDF_MON_STATUS_EHT_LTF_SHIFT);
+	ppdu_info->rx_status.ltf_size = cmn_usr_info->ltf_size;
 
 	return HAL_TLV_STATUS_PPDU_NOT_DONE;
 }
@@ -1499,6 +1509,10 @@ hal_rx_parse_receive_user_info(struct hal_soc *hal_soc, uint8_t *tlv,
 				(rx_usr_info->dl_ofdma_content_channel <<
 				 QDF_MON_STATUS_EHT_CONTENT_CH_INDEX_SHIFT);
 
+	ppdu_info->rx_status.reception_type = rx_usr_info->reception_type;
+	ppdu_info->rx_status.is_stbc = rx_usr_info->stbc;
+	ppdu_info->rx_status.ldpc = rx_usr_info->ldpc;
+
 	if (!(rx_usr_info->reception_type == HAL_RX_TYPE_MU_MIMO ||
 	      rx_usr_info->reception_type == HAL_RX_TYPE_MU_OFDMA ||
 	      rx_usr_info->reception_type == HAL_RX_TYPE_MU_OFMDA_MIMO))

+ 1 - 1
hal/wifi3.0/qcn9224/hal_9224.c

@@ -1751,7 +1751,7 @@ static void hal_hw_txrx_ops_attach_qcn9224(struct hal_soc *hal_soc)
 	hal_soc->ops->hal_reo_status_get_header =
 					hal_reo_status_get_header_9224;
 	hal_soc->ops->hal_rx_status_get_tlv_info =
-					hal_rx_status_get_tlv_info_generic_be;
+					hal_rx_status_get_tlv_info_wrapper_be;
 	hal_soc->ops->hal_rx_wbm_err_info_get =
 					hal_rx_wbm_err_info_get_generic_be;
 	hal_soc->ops->hal_tx_set_pcp_tid_map =