|
@@ -193,6 +193,24 @@ static uint8_t hal_rx_get_tlv_9000(void *rx_tlv)
|
|
|
return HAL_RX_GET(rx_tlv, PHYRX_RSSI_LEGACY_0, RECEIVE_BANDWIDTH);
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * hal_rx_mpdu_start_tlv_tag_valid_9000 () - API to check if RX_MPDU_START
|
|
|
+ * tlv tag is valid
|
|
|
+ *
|
|
|
+ *@rx_tlv_hdr: start address of rx_pkt_tlvs
|
|
|
+ *
|
|
|
+ * Return: true if RX_MPDU_START is valied, else false.
|
|
|
+ */
|
|
|
+uint8_t hal_rx_mpdu_start_tlv_tag_valid_9000(void *rx_tlv_hdr)
|
|
|
+{
|
|
|
+ struct rx_pkt_tlvs *rx_desc = (struct rx_pkt_tlvs *)rx_tlv_hdr;
|
|
|
+ uint32_t tlv_tag;
|
|
|
+
|
|
|
+ tlv_tag = HAL_RX_GET_USER_TLV32_TYPE(&rx_desc->mpdu_start_tlv);
|
|
|
+
|
|
|
+ return tlv_tag == WIFIRX_MPDU_START_E ? true : false;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* hal_rx_proc_phyrx_other_receive_info_tlv_9000(): API to get tlv info
|
|
|
*
|
|
@@ -918,19 +936,17 @@ static uint32_t hal_rx_tid_get_9000(hal_soc_handle_t hal_soc_hdl, uint8_t *buf)
|
|
|
|
|
|
/**
|
|
|
* hal_rx_hw_desc_get_ppduid_get_9000(): retrieve ppdu id
|
|
|
- * @hw_desc_addr: hw addr
|
|
|
+ * @rx_tlv_hdr: rx tlv header
|
|
|
+ * @rxdma_dst_ring_desc: rxdma HW descriptor
|
|
|
*
|
|
|
* Return: ppdu id
|
|
|
*/
|
|
|
-static uint32_t hal_rx_hw_desc_get_ppduid_get_9000(void *hw_desc_addr)
|
|
|
+static uint32_t hal_rx_hw_desc_get_ppduid_get_9000(void *rx_tlv_hdr,
|
|
|
+ void *rxdma_dst_ring_desc)
|
|
|
{
|
|
|
- struct rx_mpdu_info *rx_mpdu_info;
|
|
|
- struct rx_pkt_tlvs *rx_desc = (struct rx_pkt_tlvs *)hw_desc_addr;
|
|
|
+ struct reo_entrance_ring *reo_ent = rxdma_dst_ring_desc;
|
|
|
|
|
|
- rx_mpdu_info =
|
|
|
- &rx_desc->mpdu_start_tlv.rx_mpdu_start.rx_mpdu_info_details;
|
|
|
-
|
|
|
- return HAL_RX_GET(rx_mpdu_info, RX_MPDU_INFO_9, PHY_PPDU_ID);
|
|
|
+ return reo_ent->phy_ppdu_id;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1130,7 +1146,13 @@ static uint8_t hal_rx_get_filter_category_9000(uint8_t *buf)
|
|
|
static uint32_t
|
|
|
hal_rx_get_ppdu_id_9000(uint8_t *buf)
|
|
|
{
|
|
|
- return HAL_RX_GET_PPDU_ID(buf);
|
|
|
+ struct rx_mpdu_info *rx_mpdu_info;
|
|
|
+ struct rx_pkt_tlvs *rx_desc = (struct rx_pkt_tlvs *)buf;
|
|
|
+
|
|
|
+ rx_mpdu_info =
|
|
|
+ &rx_desc->mpdu_start_tlv.rx_mpdu_start.rx_mpdu_info_details;
|
|
|
+
|
|
|
+ return HAL_RX_GET_PPDU_ID(rx_mpdu_info);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1466,6 +1488,7 @@ struct hal_hw_txrx_ops qcn9000_hal_hw_txrx_ops = {
|
|
|
NULL,
|
|
|
NULL,
|
|
|
NULL,
|
|
|
+ hal_rx_mpdu_start_tlv_tag_valid_9000,
|
|
|
};
|
|
|
|
|
|
struct hal_hw_srng_config hw_srng_table_9000[] = {
|