Jelajahi Sumber

qcacld-3.0: Update timestamp in skb on receiving frag indication

Update timestamp in skb as part of rx frag indication
handler.

Change-Id: I9f2217f12aa4006db36f1a4d123287ec863ffdbe
CRs-Fixed: 2575914
Yeshwanth Sriram Guntuka 5 tahun lalu
induk
melakukan
eebaeb7e0b
3 mengubah file dengan 11 tambahan dan 6 penghapusan
  1. 6 6
      core/dp/txrx/ol_rx.c
  2. 2 0
      core/dp/txrx/ol_rx.h
  3. 3 0
      core/dp/txrx/ol_rx_defrag.c

+ 6 - 6
core/dp/txrx/ol_rx.c

@@ -1166,8 +1166,8 @@ ol_rx_filter(struct ol_txrx_vdev_t *vdev,
 
 #ifdef WLAN_FEATURE_TSF_PLUS
 #ifdef CONFIG_HL_SUPPORT
-static inline void ol_rx_timestamp(struct cdp_cfg *cfg_pdev,
-				   void *rx_desc, qdf_nbuf_t msdu)
+void ol_rx_timestamp(struct cdp_cfg *cfg_pdev,
+		     void *rx_desc, qdf_nbuf_t msdu)
 {
 	struct htt_rx_ppdu_desc_t *rx_ppdu_desc;
 
@@ -1198,8 +1198,8 @@ static inline void ol_rx_timestamp_update(ol_txrx_pdev_handle pdev,
 	}
 }
 #else
-static inline void ol_rx_timestamp(struct cdp_cfg *cfg_pdev,
-				   void *rx_desc, qdf_nbuf_t msdu)
+void ol_rx_timestamp(struct cdp_cfg *cfg_pdev,
+		     void *rx_desc, qdf_nbuf_t msdu)
 {
 	struct htt_host_rx_desc_base *rx_mpdu_desc = rx_desc;
 	uint32_t tsf64_low32, tsf64_high32;
@@ -1271,8 +1271,8 @@ static inline void ol_rx_timestamp_update(ol_txrx_pdev_handle pdev,
 }
 #endif
 #else
-static inline void ol_rx_timestamp(struct cdp_cfg *cfg_pdev,
-				   void *rx_desc, qdf_nbuf_t msdu)
+void ol_rx_timestamp(struct cdp_cfg *cfg_pdev,
+		     void *rx_desc, qdf_nbuf_t msdu)
 {
 }
 

+ 2 - 0
core/dp/txrx/ol_rx.h

@@ -117,4 +117,6 @@ ol_rx_mic_error_handler(
 
 void htt_rx_fill_ring_count(htt_pdev_handle pdev);
 
+void ol_rx_timestamp(struct cdp_cfg *cfg_pdev, void *rx_desc, qdf_nbuf_t msdu);
+
 #endif /* _OL_RX__H_ */

+ 3 - 0
core/dp/txrx/ol_rx_defrag.c

@@ -306,6 +306,7 @@ ol_rx_frag_indication_handler(ol_txrx_pdev_handle pdev,
 	uint8_t pktlog_bit;
 	uint32_t msdu_count = 0;
 	int ret;
+	void *rx_desc;
 
 	if (tid >= OL_TXRX_NUM_EXT_TIDS) {
 		ol_txrx_err("%s:  invalid tid, %u\n", __FUNCTION__, tid);
@@ -359,6 +360,8 @@ ol_rx_frag_indication_handler(ol_txrx_pdev_handle pdev,
 		OL_RX_ERR_STATISTICS_1(pdev, peer->vdev, peer, rx_mpdu_desc,
 				       OL_RX_ERR_NONE_FRAG);
 		ol_rx_send_pktlog_event(pdev, peer, head_msdu, pktlog_bit);
+		rx_desc = htt_rx_msdu_desc_retrieve(pdev->htt_pdev, head_msdu);
+		ol_rx_timestamp(pdev->ctrl_pdev, rx_desc, head_msdu);
 		ol_rx_reorder_store_frag(pdev, peer, tid, seq_num, head_msdu);
 	} else {
 		/* invalid frame - discard it */