Selaa lähdekoodia

qcacmn: Add HAL APIs in hal_generic_api.h

Add the following macros:
1. HAL_RX_GET_FC_VALID
2. HAL_RX_GET_TO_DS_FLAG
3. HAL_RX_GET_MAC_ADDR2_VALID
4. HAL_RX_GET_FILTER_CATEGORY
5. HAL_RX_GET_PPDU_ID

Also add function pointers to
retrieve the flags from the above
macros.
Change-Id: I334b198588ceba77cd30bdde7ebc500cdbe18358
CRs-Fixed: 2522133
Venkata Sharath Chandra Manchala 5 vuotta sitten
vanhempi
sitoutus
b7d2df16b5

+ 7 - 13
hal/wifi3.0/hal_generic_api.h

@@ -1380,19 +1380,15 @@ hal_rx_status_get_tlv_info_generic(void *rx_tlv_hdr, void *ppduinfo,
 		uint8_t *rx_mpdu_start =
 			(uint8_t *)rx_tlv + HAL_RX_OFFSET(UNIFIED_RX_MPDU_START_0,
 					RX_MPDU_INFO_RX_MPDU_INFO_DETAILS);
-		uint32_t ppdu_id = HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0,
-					      PHY_PPDU_ID);
+		uint32_t ppdu_id =
+				HAL_RX_GET_PPDU_ID(rx_mpdu_start);
 		uint8_t filter_category = 0;
 
 		ppdu_info->nac_info.fc_valid =
-			HAL_RX_GET(rx_mpdu_start,
-				   RX_MPDU_INFO_2,
-				   MPDU_FRAME_CONTROL_VALID);
+				HAL_RX_GET_FC_VALID(rx_mpdu_start);
 
 		ppdu_info->nac_info.to_ds_flag =
-			HAL_RX_GET(rx_mpdu_start,
-				   RX_MPDU_INFO_2,
-				   TO_DS);
+				HAL_RX_GET_TO_DS_FLAG(rx_mpdu_start);
 
 		ppdu_info->nac_info.frame_control =
 			HAL_RX_GET(rx_mpdu_start,
@@ -1400,9 +1396,7 @@ hal_rx_status_get_tlv_info_generic(void *rx_tlv_hdr, void *ppduinfo,
 				   MPDU_FRAME_CONTROL_FIELD);
 
 		ppdu_info->nac_info.mac_addr2_valid =
-			HAL_RX_GET(rx_mpdu_start,
-				   RX_MPDU_INFO_2,
-				   MAC_ADDR_AD2_VALID);
+				HAL_RX_GET_MAC_ADDR2_VALID(rx_mpdu_start);
 
 		*(uint16_t *)&ppdu_info->nac_info.mac_addr2[0] =
 			HAL_RX_GET(rx_mpdu_start,
@@ -1425,8 +1419,8 @@ hal_rx_status_get_tlv_info_generic(void *rx_tlv_hdr, void *ppduinfo,
 				MPDU_LENGTH);
 		}
 
-		filter_category = HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0,
-							RXPCU_MPDU_FILTER_IN_CATEGORY);
+		filter_category =
+				HAL_RX_GET_FILTER_CATEGORY(rx_mpdu_start);
 
 		if (filter_category == 0)
 			ppdu_info->rx_status.rxpcu_filter_pass = 1;

+ 5 - 0
hal/wifi3.0/hal_internal.h

@@ -415,6 +415,11 @@ struct hal_hw_txrx_ops {
 	void * (*hal_rx_msdu_desc_info_ptr_get)(void *msdu0);
 	void * (*hal_ent_mpdu_desc_info)(void *hw_addr);
 	void * (*hal_dst_mpdu_desc_info)(void *hw_addr);
+	uint8_t (*hal_rx_get_fc_valid)(uint8_t *buf);
+	uint8_t (*hal_rx_get_to_ds_flag)(uint8_t *buf);
+	uint8_t (*hal_rx_get_mac_addr2_valid)(uint8_t *buf);
+	uint8_t (*hal_rx_get_filter_category)(uint8_t *buf);
+	uint32_t (*hal_rx_get_ppdu_id)(uint8_t *buf);
 };
 
 /**

+ 44 - 0
hal/wifi3.0/hal_rx.h

@@ -3370,4 +3370,48 @@ void *hal_dst_mpdu_desc_info(hal_soc_handle_t hal_soc_hdl,
 
 	return hal_soc->ops->hal_dst_mpdu_desc_info(hw_addr);
 }
+
+static inline
+uint8_t hal_rx_get_fc_valid(hal_soc_handle_t hal_soc_hdl,
+			    uint8_t *buf)
+{
+	struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
+
+	return hal_soc->ops->hal_rx_get_fc_valid(buf);
+}
+
+static inline
+uint8_t hal_rx_get_to_ds_flag(hal_soc_handle_t hal_soc_hdl, uint8_t *buf)
+{
+	struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
+
+	return hal_soc->ops->hal_rx_get_to_ds_flag(buf);
+}
+
+static inline
+uint8_t hal_rx_get_mac_addr2_valid(hal_soc_handle_t hal_soc_hdl,
+				   uint8_t *buf)
+{
+	struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
+
+	return hal_soc->ops->hal_rx_get_mac_addr2_valid(buf);
+}
+
+static inline
+uint8_t hal_rx_get_filter_category(hal_soc_handle_t hal_soc_hdl,
+				   uint8_t *buf)
+{
+	struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
+
+	return hal_soc->ops->hal_rx_get_filter_category(buf);
+}
+
+static inline
+uint32_t hal_rx_get_ppdu_id(hal_soc_handle_t hal_soc_hdl,
+			    uint8_t *buf)
+{
+	struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
+
+	return hal_soc->ops->hal_rx_get_ppdu_id(buf);
+}
 #endif /* _HAL_RX_H */

+ 32 - 0
hal/wifi3.0/qca6290/hal_6290.c

@@ -782,6 +782,33 @@ void *hal_dst_mpdu_desc_info_6290(void *dst_ring_desc)
 {
 	return (void *)HAL_DST_MPDU_DESC_INFO(dst_ring_desc);
 }
+
+static
+uint8_t hal_rx_get_fc_valid_6290(uint8_t *buf)
+{
+	return HAL_RX_GET_FC_VALID(buf);
+}
+
+static uint8_t hal_rx_get_to_ds_flag_6290(uint8_t *buf)
+{
+	return HAL_RX_GET_TO_DS_FLAG(buf);
+}
+
+static uint8_t hal_rx_get_mac_addr2_valid_6290(uint8_t *buf)
+{
+	return HAL_RX_GET_MAC_ADDR2_VALID(buf);
+}
+
+static uint8_t hal_rx_get_filter_category_6290(uint8_t *buf)
+{
+	return HAL_RX_GET_FILTER_CATEGORY(buf);
+}
+
+static uint32_t
+hal_rx_get_ppdu_id_6290(uint8_t *buf)
+{
+	return HAL_RX_GET_PPDU_ID(buf);
+}
 struct hal_hw_txrx_ops qca6290_hal_hw_txrx_ops = {
 	/* init and setup */
 	hal_srng_dst_hw_init_generic,
@@ -853,6 +880,11 @@ struct hal_hw_txrx_ops qca6290_hal_hw_txrx_ops = {
 	hal_rx_msdu_desc_info_ptr_get_6290,
 	hal_ent_mpdu_desc_info_6290,
 	hal_dst_mpdu_desc_info_6290,
+	hal_rx_get_fc_valid_6290,
+	hal_rx_get_to_ds_flag_6290,
+	hal_rx_get_mac_addr2_valid_6290,
+	hal_rx_get_filter_category_6290,
+	hal_rx_get_ppdu_id_6290,
 };
 
 struct hal_hw_srng_config hw_srng_table_6290[] = {

+ 15 - 0
hal/wifi3.0/qca6290/hal_6290_rx.h

@@ -249,6 +249,21 @@
 	(uint8_t *)(dst_ring_desc) +			\
 	REO_DESTINATION_RING_2_RX_MPDU_DESC_INFO_RX_MPDU_DESC_INFO_DETAILS_OFFSET
 
+#define HAL_RX_GET_FC_VALID(rx_mpdu_start)	\
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_2, MPDU_FRAME_CONTROL_VALID)
+
+#define HAL_RX_GET_TO_DS_FLAG(rx_mpdu_start)	\
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_2, TO_DS)
+
+#define HAL_RX_GET_MAC_ADDR2_VALID(rx_mpdu_start) \
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_2, MAC_ADDR_AD2_VALID)
+
+#define HAL_RX_GET_FILTER_CATEGORY(rx_mpdu_start) \
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, RXPCU_MPDU_FILTER_IN_CATEGORY)
+
+#define HAL_RX_GET_PPDU_ID(rx_mpdu_start)	\
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, PHY_PPDU_ID)
+
 #if defined(QCA_WIFI_QCA6290_11AX)
 #define HAL_RX_MSDU_START_MIMO_SS_BITMAP(_rx_msdu_start)\
 	(_HAL_MS((*_OFFSET_TO_WORD_PTR((_rx_msdu_start),\

+ 32 - 0
hal/wifi3.0/qca6390/hal_6390.c

@@ -781,6 +781,33 @@ void *hal_dst_mpdu_desc_info_6390(void *dst_ring_desc)
 	return (void *)HAL_DST_MPDU_DESC_INFO(dst_ring_desc);
 }
 
+static
+uint8_t hal_rx_get_fc_valid_6390(uint8_t *buf)
+{
+	return HAL_RX_GET_FC_VALID(buf);
+}
+
+static uint8_t hal_rx_get_to_ds_flag_6390(uint8_t *buf)
+{
+	return HAL_RX_GET_TO_DS_FLAG(buf);
+}
+
+static uint8_t hal_rx_get_mac_addr2_valid_6390(uint8_t *buf)
+{
+	return HAL_RX_GET_MAC_ADDR2_VALID(buf);
+}
+
+static uint8_t hal_rx_get_filter_category_6390(uint8_t *buf)
+{
+	return HAL_RX_GET_FILTER_CATEGORY(buf);
+}
+
+static uint32_t
+hal_rx_get_ppdu_id_6390(uint8_t *buf)
+{
+	return HAL_RX_GET_PPDU_ID(buf);
+}
+
 struct hal_hw_txrx_ops qca6390_hal_hw_txrx_ops = {
 	/* init and setup */
 	hal_srng_dst_hw_init_generic,
@@ -852,6 +879,11 @@ struct hal_hw_txrx_ops qca6390_hal_hw_txrx_ops = {
 	hal_rx_msdu_desc_info_ptr_get_6390,
 	hal_ent_mpdu_desc_info_6390,
 	hal_dst_mpdu_desc_info_6390,
+	hal_rx_get_fc_valid_6390,
+	hal_rx_get_to_ds_flag_6390,
+	hal_rx_get_mac_addr2_valid_6390,
+	hal_rx_get_filter_category_6390,
+	hal_rx_get_ppdu_id_6390,
 };
 
 struct hal_hw_srng_config hw_srng_table_6390[] = {

+ 15 - 0
hal/wifi3.0/qca6390/hal_6390_rx.h

@@ -255,6 +255,21 @@
 	(uint8_t *)(dst_ring_desc) +			\
 	REO_DESTINATION_RING_2_RX_MPDU_DESC_INFO_RX_MPDU_DESC_INFO_DETAILS_OFFSET
 
+#define HAL_RX_GET_FC_VALID(rx_mpdu_start)	\
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_2, MPDU_FRAME_CONTROL_VALID)
+
+#define HAL_RX_GET_TO_DS_FLAG(rx_mpdu_start)	\
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_2, TO_DS)
+
+#define HAL_RX_GET_MAC_ADDR2_VALID(rx_mpdu_start) \
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_2, MAC_ADDR_AD2_VALID)
+
+#define HAL_RX_GET_FILTER_CATEGORY(rx_mpdu_start) \
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, RXPCU_MPDU_FILTER_IN_CATEGORY)
+
+#define HAL_RX_GET_PPDU_ID(rx_mpdu_start)	\
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, PHY_PPDU_ID)
+
 /*
  * hal_rx_msdu_start_nss_get_6390(): API to get the NSS
  * Interval from rx_msdu_start

+ 32 - 0
hal/wifi3.0/qca6490/hal_6490.c

@@ -653,6 +653,33 @@ void *hal_dst_mpdu_desc_info_6490(void *dst_ring_desc)
 	return (void *)HAL_DST_MPDU_DESC_INFO(dst_ring_desc);
 }
 
+static
+uint8_t hal_rx_get_fc_valid_6490(uint8_t *buf)
+{
+	return HAL_RX_GET_FC_VALID(buf);
+}
+
+static uint8_t hal_rx_get_to_ds_flag_6490(uint8_t *buf)
+{
+	return HAL_RX_GET_TO_DS_FLAG(buf);
+}
+
+static uint8_t hal_rx_get_mac_addr2_valid_6490(uint8_t *buf)
+{
+	return HAL_RX_GET_MAC_ADDR2_VALID(buf);
+}
+
+static uint8_t hal_rx_get_filter_category_6490(uint8_t *buf)
+{
+	return HAL_RX_GET_FILTER_CATEGORY(buf);
+}
+
+static uint32_t
+hal_rx_get_ppdu_id_6490(uint8_t *buf)
+{
+	return HAL_RX_GET_PPDU_ID(buf);
+}
+
 struct hal_hw_txrx_ops qca6490_hal_hw_txrx_ops = {
 	/* tx */
 	hal_tx_desc_set_mesh_en_6490,
@@ -686,4 +713,9 @@ struct hal_hw_txrx_ops qca6490_hal_hw_txrx_ops = {
 	hal_rx_msdu_desc_info_ptr_get_6490,
 	hal_ent_mpdu_desc_info_6490,
 	hal_dst_mpdu_desc_info_6490,
+	hal_rx_get_fc_valid_6490,
+	hal_rx_get_to_ds_flag_6490,
+	hal_rx_get_mac_addr2_valid_6490,
+	hal_rx_get_filter_category_6490,
+	hal_rx_get_ppdu_id_6490,
 };

+ 15 - 0
hal/wifi3.0/qca6490/hal_6490_rx.h

@@ -229,3 +229,18 @@
 #define HAL_DST_MPDU_DESC_INFO(dst_ring_desc)		\
 	(uint8_t *)(dst_ring_desc) +			\
 	REO_DESTINATION_RING_2_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_OFFSET
+
+#define HAL_RX_GET_FC_VALID(rx_mpdu_start)	\
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_11, MPDU_FRAME_CONTROL_VALID)
+
+#define HAL_RX_GET_TO_DS_FLAG(rx_mpdu_start)	\
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_11, TO_DS)
+
+#define HAL_RX_GET_MAC_ADDR2_VALID(rx_mpdu_start) \
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_11, MAC_ADDR_AD2_VALID)
+
+#define HAL_RX_GET_FILTER_CATEGORY(rx_mpdu_start) \
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_9, RXPCU_MPDU_FILTER_IN_CATEGORY)
+
+#define HAL_RX_GET_PPDU_ID(rx_mpdu_start)	\
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_9, PHY_PPDU_ID)

+ 32 - 0
hal/wifi3.0/qca8074v1/hal_8074v1.c

@@ -779,6 +779,33 @@ void *hal_dst_mpdu_desc_info_8074v1(void *dst_ring_desc)
 	return (void *)HAL_DST_MPDU_DESC_INFO(dst_ring_desc);
 }
 
+static
+uint8_t hal_rx_get_fc_valid_8074v1(uint8_t *buf)
+{
+	return HAL_RX_GET_FC_VALID(buf);
+}
+
+static uint8_t hal_rx_get_to_ds_flag_8074v1(uint8_t *buf)
+{
+	return HAL_RX_GET_TO_DS_FLAG(buf);
+}
+
+static uint8_t hal_rx_get_mac_addr2_valid_8074v1(uint8_t *buf)
+{
+	return HAL_RX_GET_MAC_ADDR2_VALID(buf);
+}
+
+static uint8_t hal_rx_get_filter_category_8074v1(uint8_t *buf)
+{
+	return HAL_RX_GET_FILTER_CATEGORY(buf);
+}
+
+static uint32_t
+hal_rx_get_ppdu_id_8074v1(uint8_t *buf)
+{
+	return HAL_RX_GET_PPDU_ID(buf);
+}
+
 struct hal_hw_txrx_ops qca8074_hal_hw_txrx_ops = {
 
 	/* init and setup */
@@ -851,6 +878,11 @@ struct hal_hw_txrx_ops qca8074_hal_hw_txrx_ops = {
 	hal_rx_msdu_desc_info_ptr_get_8074v1,
 	hal_ent_mpdu_desc_info_8074v1,
 	hal_dst_mpdu_desc_info_8074v1,
+	hal_rx_get_fc_valid_8074v1,
+	hal_rx_get_to_ds_flag_8074v1,
+	hal_rx_get_mac_addr2_valid_8074v1,
+	hal_rx_get_filter_category_8074v1,
+	hal_rx_get_ppdu_id_8074v1,
 };
 
 struct hal_hw_srng_config hw_srng_table_8074[] = {

+ 15 - 0
hal/wifi3.0/qca8074v1/hal_8074v1_rx.h

@@ -238,6 +238,21 @@
 	(uint8_t *)(dst_ring_desc) +			\
 	REO_DESTINATION_RING_2_RX_MPDU_DESC_INFO_RX_MPDU_DESC_INFO_DETAILS_OFFSET
 
+#define HAL_RX_GET_FC_VALID(rx_mpdu_start)	\
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_2, MPDU_FRAME_CONTROL_VALID)
+
+#define HAL_RX_GET_TO_DS_FLAG(rx_mpdu_start)	\
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_2, TO_DS)
+
+#define HAL_RX_GET_MAC_ADDR2_VALID(rx_mpdu_start) \
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_2, MAC_ADDR_AD2_VALID)
+
+#define HAL_RX_GET_FILTER_CATEGORY(rx_mpdu_start) \
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, RXPCU_MPDU_FILTER_IN_CATEGORY)
+
+#define HAL_RX_GET_PPDU_ID(rx_mpdu_start)	\
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, PHY_PPDU_ID)
+
 /*
  * hal_rx_msdu_start_nss_get_8074(): API to get the NSS
  * Interval from rx_msdu_start

+ 32 - 0
hal/wifi3.0/qca8074v2/hal_8074v2.c

@@ -776,6 +776,33 @@ void *hal_dst_mpdu_desc_info_8074v2(void *dst_ring_desc)
 	return (void *)HAL_DST_MPDU_DESC_INFO(dst_ring_desc);
 }
 
+static
+uint8_t hal_rx_get_fc_valid_8074v2(uint8_t *buf)
+{
+	return HAL_RX_GET_FC_VALID(buf);
+}
+
+static uint8_t hal_rx_get_to_ds_flag_8074v2(uint8_t *buf)
+{
+	return HAL_RX_GET_TO_DS_FLAG(buf);
+}
+
+static uint8_t hal_rx_get_mac_addr2_valid_8074v2(uint8_t *buf)
+{
+	return HAL_RX_GET_MAC_ADDR2_VALID(buf);
+}
+
+static uint8_t hal_rx_get_filter_category_8074v2(uint8_t *buf)
+{
+	return HAL_RX_GET_FILTER_CATEGORY(buf);
+}
+
+static uint32_t
+hal_rx_get_ppdu_id_8074v2(uint8_t *buf)
+{
+	return HAL_RX_GET_PPDU_ID(buf);
+}
+
 struct hal_hw_txrx_ops qca8074v2_hal_hw_txrx_ops = {
 
 	/* init and setup */
@@ -849,6 +876,11 @@ struct hal_hw_txrx_ops qca8074v2_hal_hw_txrx_ops = {
 	hal_rx_msdu_desc_info_ptr_get_8074v2,
 	hal_ent_mpdu_desc_info_8074v2,
 	hal_dst_mpdu_desc_info_8074v2,
+	hal_rx_get_fc_valid_8074v2,
+	hal_rx_get_to_ds_flag_8074v2,
+	hal_rx_get_mac_addr2_valid_8074v2,
+	hal_rx_get_filter_category_8074v2,
+	hal_rx_get_ppdu_id_8074v2,
 };
 
 struct hal_hw_srng_config hw_srng_table_8074v2[] = {

+ 15 - 0
hal/wifi3.0/qca8074v2/hal_8074v2_rx.h

@@ -247,6 +247,21 @@
 	(uint8_t *)(dst_ring_desc) +			\
 	REO_DESTINATION_RING_2_RX_MPDU_DESC_INFO_RX_MPDU_DESC_INFO_DETAILS_OFFSET
 
+#define HAL_RX_GET_FC_VALID(rx_mpdu_start)	\
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_2, MPDU_FRAME_CONTROL_VALID)
+
+#define HAL_RX_GET_TO_DS_FLAG(rx_mpdu_start)	\
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_2, TO_DS)
+
+#define HAL_RX_GET_MAC_ADDR2_VALID(rx_mpdu_start) \
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_2, MAC_ADDR_AD2_VALID)
+
+#define HAL_RX_GET_FILTER_CATEGORY(rx_mpdu_start) \
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, RXPCU_MPDU_FILTER_IN_CATEGORY)
+
+#define HAL_RX_GET_PPDU_ID(rx_mpdu_start)	\
+	HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0, PHY_PPDU_ID)
+
 /*
  * hal_rx_msdu_start_nss_get_8074v2(): API to get the NSS
  * Interval from rx_msdu_start

+ 32 - 0
hal/wifi3.0/qcn9000/hal_9000.c

@@ -785,6 +785,33 @@ void *hal_dst_mpdu_desc_info_9000(void *dst_ring_desc)
 	return (void *)HAL_DST_MPDU_DESC_INFO(dst_ring_desc);
 }
 
+static
+uint8_t hal_rx_get_fc_valid_9000(uint8_t *buf)
+{
+	return HAL_RX_GET_FC_VALID(buf);
+}
+
+static uint8_t hal_rx_get_to_ds_flag_9000(uint8_t *buf)
+{
+	return HAL_RX_GET_TO_DS_FLAG(buf);
+}
+
+static uint8_t hal_rx_get_mac_addr2_valid_9000(uint8_t *buf)
+{
+	return HAL_RX_GET_MAC_ADDR2_VALID(buf);
+}
+
+static uint8_t hal_rx_get_filter_category_9000(uint8_t *buf)
+{
+	return HAL_RX_GET_FILTER_CATEGORY(buf);
+}
+
+static uint32_t
+hal_rx_get_ppdu_id_9000(uint8_t *buf)
+{
+	return HAL_RX_GET_PPDU_ID(buf);
+}
+
 struct hal_hw_txrx_ops qcn9000_hal_hw_txrx_ops = {
 
 	/* init and setup */
@@ -858,6 +885,11 @@ struct hal_hw_txrx_ops qcn9000_hal_hw_txrx_ops = {
 	hal_rx_msdu_desc_info_ptr_get_9000,
 	hal_ent_mpdu_desc_info_9000,
 	hal_dst_mpdu_desc_info_9000,
+	hal_rx_get_fc_valid_9000,
+	hal_rx_get_to_ds_flag_9000,
+	hal_rx_get_mac_addr2_valid_9000,
+	hal_rx_get_filter_category_9000,
+	hal_rx_get_ppdu_id_9000,
 };
 
 struct hal_hw_srng_config hw_srng_table_9000[] = {