소스 검색

qcacmn: Get buffer_timestamp from wbm release ring

Upon TX completion, get buffer_timestamp from wbm release
ring descriptor.

Change-Id: I0203b51c52a265711e62afc3a940392674ac014a
CRs-Fixed: 2978492
Jia Ding 4 년 전
부모
커밋
ffcab816e9
2개의 변경된 파일23개의 추가작업 그리고 0개의 파일을 삭제
  1. 5 0
      hal/wifi3.0/hal_tx.h
  2. 18 0
      hal/wifi3.0/li/hal_li_generic_api.h

+ 5 - 0
hal/wifi3.0/hal_tx.h

@@ -178,6 +178,8 @@ do {                                            \
  * @transmit_cnt: Number of times this frame has been transmitted
  * @transmit_cnt: Number of times this frame has been transmitted
  * @tid: TID of the flow or MPDU queue
  * @tid: TID of the flow or MPDU queue
  * @peer_id: Peer ID of the flow or MPDU queue
  * @peer_id: Peer ID of the flow or MPDU queue
+ * @buffer_timestamp: Frame system entrance timestamp in units of 1024
+ *		      microseconds
  */
  */
 struct hal_tx_completion_status {
 struct hal_tx_completion_status {
 	uint8_t status;
 	uint8_t status;
@@ -200,6 +202,9 @@ struct hal_tx_completion_status {
 	uint8_t transmit_cnt;
 	uint8_t transmit_cnt;
 	uint8_t tid;
 	uint8_t tid;
 	uint16_t peer_id;
 	uint16_t peer_id;
+#ifdef WLAN_FEATURE_TSF_UPLINK_DELAY
+	uint32_t buffer_timestamp:19;
+#endif
 };
 };
 
 
 /**
 /**

+ 18 - 0
hal/wifi3.0/li/hal_li_generic_api.h

@@ -68,6 +68,22 @@ void hal_rx_wbm_err_info_get_generic_li(void *wbm_desc,
 	wbm_er_info->rxdma_err_code = HAL_RX_WBM_RXDMA_ERROR_CODE_GET(wbm_desc);
 	wbm_er_info->rxdma_err_code = HAL_RX_WBM_RXDMA_ERROR_CODE_GET(wbm_desc);
 }
 }
 
 
+#ifdef WLAN_FEATURE_TSF_UPLINK_DELAY
+static inline void
+hal_tx_comp_get_buffer_timestamp(void *desc,
+				 struct hal_tx_completion_status *ts)
+{
+	ts->buffer_timestamp = HAL_TX_DESC_GET(desc, WBM_RELEASE_RING_4,
+					       BUFFER_TIMESTAMP);
+}
+#else /* !WLAN_FEATURE_TSF_UPLINK_DELAY */
+static inline void
+hal_tx_comp_get_buffer_timestamp(void *desc,
+				 struct hal_tx_completion_status *ts)
+{
+}
+#endif /* WLAN_FEATURE_TSF_UPLINK_DELAY */
+
 /**
 /**
  * hal_tx_comp_get_status() - TQM Release reason
  * hal_tx_comp_get_status() - TQM Release reason
  * @hal_desc: completion ring Tx status
  * @hal_desc: completion ring Tx status
@@ -135,6 +151,8 @@ hal_tx_comp_get_status_generic_li(void *desc, void *ts1,
 
 
 	ts->tsf = HAL_TX_DESC_GET(desc, UNIFIED_WBM_RELEASE_RING_6,
 	ts->tsf = HAL_TX_DESC_GET(desc, UNIFIED_WBM_RELEASE_RING_6,
 			TX_RATE_STATS_INFO_TX_RATE_STATS);
 			TX_RATE_STATS_INFO_TX_RATE_STATS);
+
+	hal_tx_comp_get_buffer_timestamp(desc, ts);
 }
 }
 
 
 /**
 /**