소스 검색

qcacmn: initialize BE specific HAL API callbacks

certain BE specific HAL APIs were only initialized for
KIWI chipset but not for WKK. Now moved all these APIs
under beryllium generic initialization.

These APIs are mainly used in de-frag pkt handling.

CRs-Fixed: 3294784
Change-Id: I6611f1b7ef80b432d24a490ba65880dd55539137
Tallapragada Kalyan 2 년 전
부모
커밋
27da15777b
6개의 변경된 파일27개의 추가작업 그리고 15개의 파일을 삭제
  1. 3 2
      dp/wifi3.0/dp_rx_defrag.c
  2. 14 1
      hal/wifi3.0/be/hal_be_generic_api.c
  3. 3 1
      hal/wifi3.0/hal_internal.h
  4. 4 2
      hal/wifi3.0/hal_rx.h
  5. 0 8
      hal/wifi3.0/kiwi/hal_kiwi.c
  6. 3 1
      hal/wifi3.0/li/hal_li_generic_api.c

+ 3 - 2
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);

+ 14 - 1
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;
 }

+ 3 - 1
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);

+ 4 - 2
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,

+ 0 - 8
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 =

+ 3 - 1
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;