Просмотр исходного кода

qcacmn: Add HAL API support to get l3 type from pkt tlvs

Add HAL API support to get l3 type from pkt tlvs for
WCN6450 target.

Change-Id: I50ab1baed5fbf1b81151f13481dfbeca38d9f992
CRs-Fixed: 3659241
Karthik Kantamneni 1 год назад
Родитель
Сommit
f1e6f44d64
2 измененных файлов с 22 добавлено и 0 удалено
  1. 16 0
      hal/wifi3.0/wcn6450/hal_wcn6450.c
  2. 6 0
      hal/wifi3.0/wcn6450/hal_wcn6450_rx.h

+ 16 - 0
hal/wifi3.0/wcn6450/hal_wcn6450.c

@@ -1754,6 +1754,20 @@ static inline uint8_t hal_get_first_wow_wakeup_packet_6450(uint8_t *buf)
 }
 #endif
 
+/**
+ * hal_rx_tlv_l3_type_get_6450() - Function to retrieve l3_type
+ * @buf: Network buffer
+ *
+ * Return: l3_type
+ */
+static uint32_t hal_rx_tlv_l3_type_get_6450(uint8_t *buf)
+{
+	struct rx_pkt_tlvs *pkt_tlvs = hal_rx_get_pkt_tlvs(buf);
+	struct rx_msdu_end *msdu_end = &pkt_tlvs->msdu_end_tlv.rx_msdu_end;
+
+	return HAL_RX_MSDU_END_L3_TYPE_GET(msdu_end);
+}
+
 /**
  * hal_rx_msdu_start_get_len_6450(): API to get the MSDU length
  * from rx_msdu_start TLV
@@ -1987,6 +2001,8 @@ static void hal_hw_txrx_ops_attach_wcn6450(struct hal_soc *hal_soc)
 #endif
 	hal_soc->ops->hal_compute_reo_remap_ix0 =
 				hal_compute_reo_remap_ix0_6450;
+	hal_soc->ops->hal_rx_tlv_l3_type_get =
+		hal_rx_tlv_l3_type_get_6450;
 	hal_soc->ops->hal_rx_tlv_msdu_len_get =
 				hal_rx_msdu_start_get_len_6450;
 }

+ 6 - 0
hal/wifi3.0/wcn6450/hal_wcn6450_rx.h

@@ -73,6 +73,12 @@
 		RX_MSDU_END_10_L3_HEADER_PADDING_MASK,		\
 		RX_MSDU_END_10_L3_HEADER_PADDING_LSB))
 
+#define HAL_RX_MSDU_END_L3_TYPE_GET(_rx_msdu_end)		\
+	(_HAL_MS((*_OFFSET_TO_WORD_PTR(_rx_msdu_end,		\
+		RX_MSDU_END_5_L3_TYPE_OFFSET)),			\
+		RX_MSDU_END_5_L3_TYPE_MASK,			\
+		RX_MSDU_END_5_L3_TYPE_LSB))
+
 #define HAL_RX_MPDU_ENCRYPTION_INFO_VALID(_rx_mpdu_info)	\
 	(_HAL_MS((*_OFFSET_TO_WORD_PTR(_rx_mpdu_info,		\
 	RX_MPDU_INFO_11_FRAME_ENCRYPTION_INFO_VALID_OFFSET)),	\