Merge "qcacmn: Read ppdu_id from reo_entrance ring"
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
f707a73551
@@ -447,8 +447,8 @@ dp_rx_chain_msdus(struct dp_soc *soc, qdf_nbuf_t nbuf,
|
|||||||
QDF_NBUF_CB_RX_NUM_ELEMENTS_IN_LIST
|
QDF_NBUF_CB_RX_NUM_ELEMENTS_IN_LIST
|
||||||
(dp_pdev->invalid_peer_head_msdu) >= DP_MAX_INVALID_BUFFERS)) {
|
(dp_pdev->invalid_peer_head_msdu) >= DP_MAX_INVALID_BUFFERS)) {
|
||||||
qdf_nbuf_set_rx_chfrag_start(nbuf, 1);
|
qdf_nbuf_set_rx_chfrag_start(nbuf, 1);
|
||||||
dp_pdev->ppdu_id = hal_rx_hw_desc_get_ppduid_get(soc->hal_soc,
|
dp_pdev->ppdu_id = hal_rx_get_ppdu_id(soc->hal_soc,
|
||||||
rx_tlv_hdr);
|
rx_tlv_hdr);
|
||||||
dp_pdev->first_nbuf = true;
|
dp_pdev->first_nbuf = true;
|
||||||
|
|
||||||
/* If the new nbuf received is the first msdu of the
|
/* If the new nbuf received is the first msdu of the
|
||||||
|
@@ -371,8 +371,9 @@ dp_rx_mon_mpdu_pop(struct dp_soc *soc, uint32_t mac_id,
|
|||||||
__func__, i, *ppdu_id, num_msdus);
|
__func__, i, *ppdu_id, num_msdus);
|
||||||
|
|
||||||
if (is_first_msdu) {
|
if (is_first_msdu) {
|
||||||
if (!HAL_RX_HW_DESC_MPDU_VALID(
|
if (!hal_rx_mpdu_start_tlv_tag_valid(
|
||||||
rx_desc_tlv)) {
|
soc->hal_soc,
|
||||||
|
rx_desc_tlv)) {
|
||||||
drop_mpdu = true;
|
drop_mpdu = true;
|
||||||
qdf_nbuf_free(msdu);
|
qdf_nbuf_free(msdu);
|
||||||
msdu = NULL;
|
msdu = NULL;
|
||||||
@@ -383,7 +384,8 @@ dp_rx_mon_mpdu_pop(struct dp_soc *soc, uint32_t mac_id,
|
|||||||
|
|
||||||
msdu_ppdu_id = hal_rx_hw_desc_get_ppduid_get(
|
msdu_ppdu_id = hal_rx_hw_desc_get_ppduid_get(
|
||||||
soc->hal_soc,
|
soc->hal_soc,
|
||||||
rx_desc_tlv);
|
rx_desc_tlv,
|
||||||
|
rxdma_dst_ring_desc);
|
||||||
is_first_msdu = false;
|
is_first_msdu = false;
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP,
|
QDF_TRACE(QDF_MODULE_ID_DP,
|
||||||
|
@@ -432,7 +432,8 @@ struct hal_hw_txrx_ops {
|
|||||||
uint8_t (*hal_rx_get_mpdu_sequence_control_valid)(uint8_t *buf);
|
uint8_t (*hal_rx_get_mpdu_sequence_control_valid)(uint8_t *buf);
|
||||||
bool (*hal_rx_is_unicast)(uint8_t *buf);
|
bool (*hal_rx_is_unicast)(uint8_t *buf);
|
||||||
uint32_t (*hal_rx_tid_get)(hal_soc_handle_t hal_soc_hdl, uint8_t *buf);
|
uint32_t (*hal_rx_tid_get)(hal_soc_handle_t hal_soc_hdl, uint8_t *buf);
|
||||||
uint32_t (*hal_rx_hw_desc_get_ppduid_get)(void *hw_desc_addr);
|
uint32_t (*hal_rx_hw_desc_get_ppduid_get)(void *rx_tlv_hdr,
|
||||||
|
void *rxdma_dst_ring_desc);
|
||||||
uint32_t (*hal_rx_mpdu_start_mpdu_qos_control_valid_get)(uint8_t *buf);
|
uint32_t (*hal_rx_mpdu_start_mpdu_qos_control_valid_get)(uint8_t *buf);
|
||||||
uint32_t (*hal_rx_msdu_end_sa_sw_peer_id_get)(uint8_t *buf);
|
uint32_t (*hal_rx_msdu_end_sa_sw_peer_id_get)(uint8_t *buf);
|
||||||
void * (*hal_rx_msdu0_buffer_addr_lsb)(void *link_desc_addr);
|
void * (*hal_rx_msdu0_buffer_addr_lsb)(void *link_desc_addr);
|
||||||
@@ -470,6 +471,7 @@ struct hal_hw_txrx_ops {
|
|||||||
bool (*hal_rx_get_fisa_flow_agg_continuation)(uint8_t *buf);
|
bool (*hal_rx_get_fisa_flow_agg_continuation)(uint8_t *buf);
|
||||||
uint8_t (*hal_rx_get_fisa_flow_agg_count)(uint8_t *buf);
|
uint8_t (*hal_rx_get_fisa_flow_agg_count)(uint8_t *buf);
|
||||||
bool (*hal_rx_get_fisa_timeout)(uint8_t *buf);
|
bool (*hal_rx_get_fisa_timeout)(uint8_t *buf);
|
||||||
|
uint8_t (*hal_rx_mpdu_start_tlv_tag_valid)(void *rx_tlv_hdr);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -3243,17 +3243,20 @@ hal_rx_msdu_flow_idx_invalid(hal_soc_handle_t hal_soc_hdl,
|
|||||||
/**
|
/**
|
||||||
* hal_rx_hw_desc_get_ppduid_get() - Retrieve ppdu id
|
* hal_rx_hw_desc_get_ppduid_get() - Retrieve ppdu id
|
||||||
* @hal_soc_hdl: hal_soc handle
|
* @hal_soc_hdl: hal_soc handle
|
||||||
* @hw_desc_addr: hardware descriptor address
|
* @rx_tlv_hdr: Rx_tlv_hdr
|
||||||
|
* @rxdma_dst_ring_desc: Rx HW descriptor
|
||||||
*
|
*
|
||||||
* Return: 0 - success/ non-zero failure
|
* Return: ppdu id
|
||||||
*/
|
*/
|
||||||
static inline
|
static inline
|
||||||
uint32_t hal_rx_hw_desc_get_ppduid_get(hal_soc_handle_t hal_soc_hdl,
|
uint32_t hal_rx_hw_desc_get_ppduid_get(hal_soc_handle_t hal_soc_hdl,
|
||||||
void *hw_desc_addr)
|
void *rx_tlv_hdr,
|
||||||
|
void *rxdma_dst_ring_desc)
|
||||||
{
|
{
|
||||||
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
|
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
|
||||||
|
|
||||||
return hal_soc->ops->hal_rx_hw_desc_get_ppduid_get(hw_desc_addr);
|
return hal_soc->ops->hal_rx_hw_desc_get_ppduid_get(rx_tlv_hdr,
|
||||||
|
rxdma_dst_ring_desc);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -3616,4 +3619,23 @@ hal_rx_get_fisa_timeout(hal_soc_handle_t hal_soc_hdl, uint8_t *buf)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* hal_rx_mpdu_start_tlv_tag_valid - API to check if RX_MPDU_START tlv
|
||||||
|
* tag is valid
|
||||||
|
*
|
||||||
|
* @hal_soc_hdl: HAL SOC handle
|
||||||
|
* @rx_tlv_hdr: start address of rx_pkt_tlvs
|
||||||
|
*
|
||||||
|
* Return: true if RX_MPDU_START tlv tag is valid, else false
|
||||||
|
*/
|
||||||
|
|
||||||
|
static inline uint8_t
|
||||||
|
hal_rx_mpdu_start_tlv_tag_valid(hal_soc_handle_t hal_soc_hdl,
|
||||||
|
void *rx_tlv_hdr)
|
||||||
|
{
|
||||||
|
struct hal_soc *hal = (struct hal_soc *)hal_soc_hdl;
|
||||||
|
|
||||||
|
return hal->ops->hal_rx_mpdu_start_tlv_tag_valid(rx_tlv_hdr);
|
||||||
|
}
|
||||||
#endif /* _HAL_RX_H */
|
#endif /* _HAL_RX_H */
|
||||||
|
@@ -595,14 +595,16 @@ static uint32_t hal_rx_tid_get_6290(hal_soc_handle_t hal_soc_hdl, uint8_t *buf)
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* hal_rx_hw_desc_get_ppduid_get_6290(): retrieve ppdu id
|
* hal_rx_hw_desc_get_ppduid_get_6290(): retrieve ppdu id
|
||||||
* @hw_desc_addr: hw addr
|
* @rx_tlv_hdr: start address of rx_pkt_tlvs
|
||||||
|
* @rxdma_dst_ring_desc: Rx HW descriptor
|
||||||
*
|
*
|
||||||
* Return: ppdu id
|
* Return: ppdu id
|
||||||
*/
|
*/
|
||||||
static uint32_t hal_rx_hw_desc_get_ppduid_get_6290(void *hw_desc_addr)
|
static uint32_t hal_rx_hw_desc_get_ppduid_get_6290(void *rx_tlv_hdr,
|
||||||
|
void *rxdma_dst_ring_desc)
|
||||||
{
|
{
|
||||||
struct rx_mpdu_info *rx_mpdu_info;
|
struct rx_mpdu_info *rx_mpdu_info;
|
||||||
struct rx_pkt_tlvs *rx_desc = (struct rx_pkt_tlvs *)hw_desc_addr;
|
struct rx_pkt_tlvs *rx_desc = (struct rx_pkt_tlvs *)rx_tlv_hdr;
|
||||||
|
|
||||||
rx_mpdu_info =
|
rx_mpdu_info =
|
||||||
&rx_desc->mpdu_start_tlv.rx_mpdu_start.rx_mpdu_info_details;
|
&rx_desc->mpdu_start_tlv.rx_mpdu_start.rx_mpdu_info_details;
|
||||||
|
@@ -593,14 +593,16 @@ static uint32_t hal_rx_tid_get_6390(hal_soc_handle_t hal_soc_hdl, uint8_t *buf)
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* hal_rx_hw_desc_get_ppduid_get_6390(): retrieve ppdu id
|
* hal_rx_hw_desc_get_ppduid_get_6390(): retrieve ppdu id
|
||||||
* @hw_desc_addr: hw addr
|
* @rx_tlv_hdr: start address of rx_pkt_tlvs
|
||||||
|
* @rxdma_dst_ring_desc: Rx HW descriptor
|
||||||
*
|
*
|
||||||
* Return: ppdu id
|
* Return: ppdu id
|
||||||
*/
|
*/
|
||||||
static uint32_t hal_rx_hw_desc_get_ppduid_get_6390(void *hw_desc_addr)
|
static uint32_t hal_rx_hw_desc_get_ppduid_get_6390(void *rx_tlv_hdr,
|
||||||
|
void *rxdma_dst_ring_desc)
|
||||||
{
|
{
|
||||||
struct rx_mpdu_info *rx_mpdu_info;
|
struct rx_mpdu_info *rx_mpdu_info;
|
||||||
struct rx_pkt_tlvs *rx_desc = (struct rx_pkt_tlvs *)hw_desc_addr;
|
struct rx_pkt_tlvs *rx_desc = (struct rx_pkt_tlvs *)rx_tlv_hdr;
|
||||||
|
|
||||||
rx_mpdu_info =
|
rx_mpdu_info =
|
||||||
&rx_desc->mpdu_start_tlv.rx_mpdu_start.rx_mpdu_info_details;
|
&rx_desc->mpdu_start_tlv.rx_mpdu_start.rx_mpdu_info_details;
|
||||||
|
@@ -973,14 +973,16 @@ static uint32_t hal_rx_tid_get_6490(hal_soc_handle_t hal_soc_hdl, uint8_t *buf)
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* hal_rx_hw_desc_get_ppduid_get_6490(): retrieve ppdu id
|
* hal_rx_hw_desc_get_ppduid_get_6490(): retrieve ppdu id
|
||||||
* @hw_desc_addr: hw addr
|
* @rx_tlv_hdr: start address of rx_pkt_tlvs
|
||||||
|
* @rxdma_dst_ring_desc: Rx HW descriptor
|
||||||
*
|
*
|
||||||
* Return: ppdu id
|
* Return: ppdu id
|
||||||
*/
|
*/
|
||||||
static uint32_t hal_rx_hw_desc_get_ppduid_get_6490(void *hw_desc_addr)
|
static uint32_t hal_rx_hw_desc_get_ppduid_get_6490(void *rx_tlv_hdr,
|
||||||
|
void *rxdma_dst_ring_desc)
|
||||||
{
|
{
|
||||||
struct rx_mpdu_info *rx_mpdu_info;
|
struct rx_mpdu_info *rx_mpdu_info;
|
||||||
struct rx_pkt_tlvs *rx_desc = (struct rx_pkt_tlvs *)hw_desc_addr;
|
struct rx_pkt_tlvs *rx_desc = (struct rx_pkt_tlvs *)rx_tlv_hdr;
|
||||||
|
|
||||||
rx_mpdu_info =
|
rx_mpdu_info =
|
||||||
&rx_desc->mpdu_start_tlv.rx_mpdu_start.rx_mpdu_info_details;
|
&rx_desc->mpdu_start_tlv.rx_mpdu_start.rx_mpdu_info_details;
|
||||||
|
@@ -603,14 +603,16 @@ static uint32_t hal_rx_tid_get_8074v1(hal_soc_handle_t hal_soc_hdl,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* hal_rx_hw_desc_get_ppduid_get_8074v1(): retrieve ppdu id
|
* hal_rx_hw_desc_get_ppduid_get_8074v1(): retrieve ppdu id
|
||||||
* @hw_desc_addr: hw addr
|
* @rx_tlv_hdr: Rx tlv header
|
||||||
|
* @rxdma_dst_ring_desc: Rx HW descriptor
|
||||||
*
|
*
|
||||||
* Return: ppdu id
|
* Return: ppdu id
|
||||||
*/
|
*/
|
||||||
static uint32_t hal_rx_hw_desc_get_ppduid_get_8074v1(void *hw_desc_addr)
|
static uint32_t hal_rx_hw_desc_get_ppduid_get_8074v1(void *rx_tlv_hdr,
|
||||||
|
void *rxdma_dst_ring_desc)
|
||||||
{
|
{
|
||||||
struct rx_mpdu_info *rx_mpdu_info;
|
struct rx_mpdu_info *rx_mpdu_info;
|
||||||
struct rx_pkt_tlvs *rx_desc = (struct rx_pkt_tlvs *)hw_desc_addr;
|
struct rx_pkt_tlvs *rx_desc = (struct rx_pkt_tlvs *)rx_tlv_hdr;
|
||||||
|
|
||||||
rx_mpdu_info =
|
rx_mpdu_info =
|
||||||
&rx_desc->mpdu_start_tlv.rx_mpdu_start.rx_mpdu_info_details;
|
&rx_desc->mpdu_start_tlv.rx_mpdu_start.rx_mpdu_info_details;
|
||||||
@@ -815,7 +817,13 @@ static uint8_t hal_rx_get_filter_category_8074v1(uint8_t *buf)
|
|||||||
static uint32_t
|
static uint32_t
|
||||||
hal_rx_get_ppdu_id_8074v1(uint8_t *buf)
|
hal_rx_get_ppdu_id_8074v1(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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -985,6 +993,25 @@ uint16_t hal_rx_get_rx_sequence_8074v1(uint8_t *buf)
|
|||||||
return HAL_RX_MPDU_GET_SEQUENCE_NUMBER(rx_mpdu_info);
|
return HAL_RX_MPDU_GET_SEQUENCE_NUMBER(rx_mpdu_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* hal_rx_mpdu_start_tlv_tag_valid_8074v1 () - 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_8074v1(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;
|
||||||
|
}
|
||||||
|
|
||||||
struct hal_hw_txrx_ops qca8074_hal_hw_txrx_ops = {
|
struct hal_hw_txrx_ops qca8074_hal_hw_txrx_ops = {
|
||||||
|
|
||||||
/* init and setup */
|
/* init and setup */
|
||||||
@@ -1083,6 +1110,7 @@ struct hal_hw_txrx_ops qca8074_hal_hw_txrx_ops = {
|
|||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
|
hal_rx_mpdu_start_tlv_tag_valid_8074v1,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct hal_hw_srng_config hw_srng_table_8074[] = {
|
struct hal_hw_srng_config hw_srng_table_8074[] = {
|
||||||
|
@@ -588,14 +588,16 @@ static uint32_t hal_rx_tid_get_8074v2(hal_soc_handle_t hal_soc_hdl,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* hal_rx_hw_desc_get_ppduid_get_8074v2(): retrieve ppdu id
|
* hal_rx_hw_desc_get_ppduid_get_8074v2(): retrieve ppdu id
|
||||||
* @hw_desc_addr: hw addr
|
* @rx_tlv_hdr: packtet rx tlv header
|
||||||
|
* @rxdma_dst_ring_desc: rxdma HW descriptor
|
||||||
*
|
*
|
||||||
* Return: ppdu id
|
* Return: ppdu id
|
||||||
*/
|
*/
|
||||||
static uint32_t hal_rx_hw_desc_get_ppduid_get_8074v2(void *hw_desc_addr)
|
static uint32_t hal_rx_hw_desc_get_ppduid_get_8074v2(void *rx_tlv_hdr,
|
||||||
|
void *rxdma_dst_ring_desc)
|
||||||
{
|
{
|
||||||
struct rx_mpdu_info *rx_mpdu_info;
|
struct rx_mpdu_info *rx_mpdu_info;
|
||||||
struct rx_pkt_tlvs *rx_desc = (struct rx_pkt_tlvs *)hw_desc_addr;
|
struct rx_pkt_tlvs *rx_desc = (struct rx_pkt_tlvs *)rx_tlv_hdr;
|
||||||
|
|
||||||
rx_mpdu_info =
|
rx_mpdu_info =
|
||||||
&rx_desc->mpdu_start_tlv.rx_mpdu_start.rx_mpdu_info_details;
|
&rx_desc->mpdu_start_tlv.rx_mpdu_start.rx_mpdu_info_details;
|
||||||
@@ -800,7 +802,13 @@ static uint8_t hal_rx_get_filter_category_8074v2(uint8_t *buf)
|
|||||||
static uint32_t
|
static uint32_t
|
||||||
hal_rx_get_ppdu_id_8074v2(uint8_t *buf)
|
hal_rx_get_ppdu_id_8074v2(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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -983,6 +991,24 @@ static inline qdf_iomem_t hal_get_window_address_8074v2(struct hal_soc *hal_soc,
|
|||||||
return addr;
|
return addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* hal_rx_mpdu_start_tlv_tag_valid_8074v2 () - 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_8074v2(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;
|
||||||
|
}
|
||||||
|
|
||||||
struct hal_hw_txrx_ops qca8074v2_hal_hw_txrx_ops = {
|
struct hal_hw_txrx_ops qca8074v2_hal_hw_txrx_ops = {
|
||||||
|
|
||||||
/* init and setup */
|
/* init and setup */
|
||||||
@@ -1088,6 +1114,7 @@ struct hal_hw_txrx_ops qca8074v2_hal_hw_txrx_ops = {
|
|||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
|
hal_rx_mpdu_start_tlv_tag_valid_8074v2,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct hal_hw_srng_config hw_srng_table_8074v2[] = {
|
struct hal_hw_srng_config hw_srng_table_8074v2[] = {
|
||||||
|
@@ -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);
|
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
|
* 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
|
* 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
|
* 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 reo_entrance_ring *reo_ent = rxdma_dst_ring_desc;
|
||||||
struct rx_pkt_tlvs *rx_desc = (struct rx_pkt_tlvs *)hw_desc_addr;
|
|
||||||
|
|
||||||
rx_mpdu_info =
|
return reo_ent->phy_ppdu_id;
|
||||||
&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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1130,7 +1146,13 @@ static uint8_t hal_rx_get_filter_category_9000(uint8_t *buf)
|
|||||||
static uint32_t
|
static uint32_t
|
||||||
hal_rx_get_ppdu_id_9000(uint8_t *buf)
|
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,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
|
hal_rx_mpdu_start_tlv_tag_valid_9000,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct hal_hw_srng_config hw_srng_table_9000[] = {
|
struct hal_hw_srng_config hw_srng_table_9000[] = {
|
||||||
|
Reference in New Issue
Block a user