diff --git a/dp/wifi3.0/dp_rx_defrag.c b/dp/wifi3.0/dp_rx_defrag.c index 5bd76af3f1..73ccd4e41e 100644 --- a/dp/wifi3.0/dp_rx_defrag.c +++ b/dp/wifi3.0/dp_rx_defrag.c @@ -1386,9 +1386,10 @@ static QDF_STATUS dp_rx_defrag_reo_reinject(struct dp_txrx_peer *txrx_peer, qdf_mem_zero(ent_mpdu_desc_info, sizeof(uint32_t)); mpdu_wrd = (uint32_t *)dst_mpdu_desc_info; - seq_no = hal_rx_get_rx_sequence(soc->hal_soc, qdf_nbuf_data(head)); + seq_no = hal_rx_get_rx_sequence(soc->hal_soc, rx_desc->rx_buf_start); - hal_mpdu_desc_info_set(soc->hal_soc, ent_mpdu_desc_info, seq_no); + hal_mpdu_desc_info_set(soc->hal_soc, ent_ring_desc, ent_mpdu_desc_info, + seq_no); /* qdesc addr */ ent_qdesc_addr = hal_get_reo_ent_desc_qdesc_addr(soc->hal_soc, (uint8_t *)ent_ring_desc); diff --git a/hal/wifi3.0/be/hal_be_generic_api.c b/hal/wifi3.0/be/hal_be_generic_api.c index e67d182370..b8f027f8ee 100644 --- a/hal/wifi3.0/be/hal_be_generic_api.c +++ b/hal/wifi3.0/be/hal_be_generic_api.c @@ -24,6 +24,7 @@ #include "hal_tx.h" //HAL_SET_FLD #include "hal_be_rx.h" //HAL_RX_BUF_RBM_GET #include "rx_reo_queue_1k.h" +#include "hal_be_rx_tlv.h" /* * The 4 bits REO destination ring value is defined as: 0: TCL @@ -640,10 +641,16 @@ hal_msdu_desc_info_set_be(hal_soc_handle_t hal_soc_hdl, static inline void hal_mpdu_desc_info_set_be(hal_soc_handle_t hal_soc_hdl, - void *mpdu_desc, uint32_t seq_no) + void *ent_desc, + void *mpdu_desc, + uint32_t seq_no) { struct rx_mpdu_desc_info *mpdu_desc_info = (struct rx_mpdu_desc_info *)mpdu_desc; + uint8_t *desc = (uint8_t *)ent_desc; + + HAL_RX_FLD_SET(desc, REO_ENTRANCE_RING, + MPDU_SEQUENCE_NUMBER, seq_no); HAL_RX_MPDU_DESC_INFO_SET(mpdu_desc_info, MSDU_COUNT, 0x1); @@ -958,4 +965,10 @@ void hal_hw_txrx_default_ops_attach_be(struct hal_soc *hal_soc) hal_soc->ops->hal_register_reo_send_cmd = hal_register_reo_send_cmd_be; hal_soc->ops->hal_reset_rx_reo_tid_q = hal_reset_rx_reo_tid_q_be; #endif + hal_soc->ops->hal_rx_tlv_get_pn_num = hal_rx_tlv_get_pn_num_be; + hal_soc->ops->hal_rx_get_qdesc_addr = hal_rx_get_qdesc_addr_be; + hal_soc->ops->hal_set_reo_ent_desc_reo_dest_ind = + hal_set_reo_ent_desc_reo_dest_ind_be; + hal_soc->ops->hal_get_reo_ent_desc_qdesc_addr = + hal_get_reo_ent_desc_qdesc_addr_be; } diff --git a/hal/wifi3.0/hal_internal.h b/hal/wifi3.0/hal_internal.h index 6a68be4b39..42e1d6c555 100644 --- a/hal/wifi3.0/hal_internal.h +++ b/hal/wifi3.0/hal_internal.h @@ -1084,7 +1084,9 @@ struct hal_hw_txrx_ops { void *msdu_desc_info, uint32_t dst_ind, uint32_t nbuf_len); void (*hal_mpdu_desc_info_set)(hal_soc_handle_t hal_soc_hdl, - void *mpdu_desc_info, uint32_t seq_no); + void *ent_desc, + void *mpdu_desc_info, + uint32_t seq_no); #ifdef DP_UMAC_HW_RESET_SUPPORT void (*hal_unregister_reo_send_cmd)(struct hal_soc *hal_soc); void (*hal_register_reo_send_cmd)(struct hal_soc *hal_soc); diff --git a/hal/wifi3.0/hal_rx.h b/hal/wifi3.0/hal_rx.h index dc1091eb2f..7035ad252b 100644 --- a/hal/wifi3.0/hal_rx.h +++ b/hal/wifi3.0/hal_rx.h @@ -2710,13 +2710,15 @@ hal_rx_tlv_get_freq(hal_soc_handle_t hal_soc_hdl, uint8_t *buf) } static inline void hal_mpdu_desc_info_set(hal_soc_handle_t hal_soc_hdl, - void *mpdu_desc_info, uint32_t val) + void *desc, + void *mpdu_desc_info, + uint32_t val) { struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl; if (hal_soc->ops->hal_mpdu_desc_info_set) return hal_soc->ops->hal_mpdu_desc_info_set( - hal_soc_hdl, mpdu_desc_info, val); + hal_soc_hdl, desc, mpdu_desc_info, val); } static inline void hal_msdu_desc_info_set(hal_soc_handle_t hal_soc_hdl, diff --git a/hal/wifi3.0/kiwi/hal_kiwi.c b/hal/wifi3.0/kiwi/hal_kiwi.c index e0f7344121..dfe893c055 100644 --- a/hal/wifi3.0/kiwi/hal_kiwi.c +++ b/hal/wifi3.0/kiwi/hal_kiwi.c @@ -2265,14 +2265,6 @@ static void hal_hw_txrx_ops_attach_kiwi(struct hal_soc *hal_soc) hal_rx_msdu_start_msdu_len_set_be; hal_soc->ops->hal_rx_tlv_populate_mpdu_desc_info = hal_rx_tlv_populate_mpdu_desc_info_kiwi; - hal_soc->ops->hal_rx_tlv_get_pn_num = - hal_rx_tlv_get_pn_num_be; - hal_soc->ops->hal_get_reo_ent_desc_qdesc_addr = - hal_get_reo_ent_desc_qdesc_addr_be; - hal_soc->ops->hal_rx_get_qdesc_addr = - hal_rx_get_qdesc_addr_be; - hal_soc->ops->hal_set_reo_ent_desc_reo_dest_ind = - hal_set_reo_ent_desc_reo_dest_ind_be; hal_soc->ops->hal_get_idle_link_bm_id = hal_get_idle_link_bm_id_kiwi; #ifdef WLAN_FEATURE_MARK_FIRST_WAKEUP_PACKET hal_soc->ops->hal_get_first_wow_wakeup_packet = diff --git a/hal/wifi3.0/li/hal_li_generic_api.c b/hal/wifi3.0/li/hal_li_generic_api.c index ed50305b2b..da2159cb71 100644 --- a/hal/wifi3.0/li/hal_li_generic_api.c +++ b/hal/wifi3.0/li/hal_li_generic_api.c @@ -1022,7 +1022,9 @@ hal_rx_msdu_reo_dst_ind_get_li(hal_soc_handle_t hal_soc_hdl, static inline void hal_mpdu_desc_info_set_li(hal_soc_handle_t hal_soc_hdl, - void *mpdu_desc, uint32_t seq_no) + void *ent_desc, + void *mpdu_desc, + uint32_t seq_no) { struct rx_mpdu_desc_info *mpdu_desc_info = (struct rx_mpdu_desc_info *)mpdu_desc;