aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRajkumar Manoharan <rmanohar@qti.qualcomm.com>2014-10-03 01:02:47 -0400
committerKalle Valo <kvalo@qca.qualcomm.com>2014-10-07 10:10:40 -0400
commita0883cf7e75af66917c5ceff7a81ebb6d11b14af (patch)
tree44f4f03177d002b5ffe1e4172f9a4d228854a60b
parentbfdd7937ab1a3ee0d02dc2d6876c597539a0d37d (diff)
ath10k: add tracing for rx descriptor
Upon the reception of frame, the descriptor status are reported to user space by tracepoint. This is useful for collecting rx statistics. Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
-rw-r--r--drivers/net/wireless/ath/ath10k/htt_rx.c4
-rw-r--r--drivers/net/wireless/ath/ath10k/trace.h29
2 files changed, 33 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c
index a078451b4620..7add88ea0e2e 100644
--- a/drivers/net/wireless/ath/ath10k/htt_rx.c
+++ b/drivers/net/wireless/ath/ath10k/htt_rx.c
@@ -316,6 +316,7 @@ static int ath10k_htt_rx_amsdu_pop(struct ath10k_htt *htt,
316 int msdu_len, msdu_chaining = 0; 316 int msdu_len, msdu_chaining = 0;
317 struct sk_buff *msdu, *next; 317 struct sk_buff *msdu, *next;
318 struct htt_rx_desc *rx_desc; 318 struct htt_rx_desc *rx_desc;
319 u32 tsf;
319 320
320 lockdep_assert_held(&htt->rx_ring.lock); 321 lockdep_assert_held(&htt->rx_ring.lock);
321 322
@@ -447,6 +448,9 @@ static int ath10k_htt_rx_amsdu_pop(struct ath10k_htt *htt,
447 last_msdu = __le32_to_cpu(rx_desc->msdu_end.info0) & 448 last_msdu = __le32_to_cpu(rx_desc->msdu_end.info0) &
448 RX_MSDU_END_INFO0_LAST_MSDU; 449 RX_MSDU_END_INFO0_LAST_MSDU;
449 450
451 tsf = __le32_to_cpu(rx_desc->ppdu_end.tsf_timestamp);
452 trace_ath10k_htt_rx_desc(ar, tsf, &rx_desc->attention,
453 sizeof(*rx_desc) - sizeof(u32));
450 if (last_msdu) { 454 if (last_msdu) {
451 msdu->next = NULL; 455 msdu->next = NULL;
452 break; 456 break;
diff --git a/drivers/net/wireless/ath/ath10k/trace.h b/drivers/net/wireless/ath/ath10k/trace.h
index 971ff23b6007..3841667e3a85 100644
--- a/drivers/net/wireless/ath/ath10k/trace.h
+++ b/drivers/net/wireless/ath/ath10k/trace.h
@@ -281,6 +281,35 @@ TRACE_EVENT(ath10k_htt_pktlog,
281 ) 281 )
282); 282);
283 283
284TRACE_EVENT(ath10k_htt_rx_desc,
285 TP_PROTO(struct ath10k *ar, u32 tsf, void *rxdesc, u16 len),
286
287 TP_ARGS(ar, tsf, rxdesc, len),
288
289 TP_STRUCT__entry(
290 __string(device, dev_name(ar->dev))
291 __string(driver, dev_driver_string(ar->dev))
292 __field(u32, tsf)
293 __field(u16, len)
294 __dynamic_array(u8, rxdesc, len)
295 ),
296
297 TP_fast_assign(
298 __assign_str(device, dev_name(ar->dev));
299 __assign_str(driver, dev_driver_string(ar->dev));
300 __entry->tsf = tsf;
301 __entry->len = len;
302 memcpy(__get_dynamic_array(rxdesc), rxdesc, len);
303 ),
304
305 TP_printk(
306 "%s %s %u len %hu",
307 __get_str(driver),
308 __get_str(device),
309 __entry->tsf,
310 __entry->len
311 )
312);
284#endif /* _TRACE_H_ || TRACE_HEADER_MULTI_READ*/ 313#endif /* _TRACE_H_ || TRACE_HEADER_MULTI_READ*/
285 314
286/* we don't want to use include/trace/events */ 315/* we don't want to use include/trace/events */