Linux Audio

Check our new training course

Loading...
Note: File does not exist in v4.10.11.
  1/* SPDX-License-Identifier: BSD-3-Clause-Clear */
  2/*
  3 * Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
  4 * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
  5 */
  6
  7#if !defined(_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
  8
  9#include <linux/tracepoint.h>
 10#include "core.h"
 11
 12#define _TRACE_H_
 13
 14/* create empty functions when tracing is disabled */
 15#if !defined(CONFIG_ATH12K_TRACING)
 16#undef TRACE_EVENT
 17#define TRACE_EVENT(name, proto, ...) \
 18static inline void trace_ ## name(proto) {}
 19#endif /* !CONFIG_ATH12K_TRACING || __CHECKER__ */
 20
 21#undef TRACE_SYSTEM
 22#define TRACE_SYSTEM ath12k
 23
 24TRACE_EVENT(ath12k_htt_pktlog,
 25	    TP_PROTO(struct ath12k *ar, const void *buf, u16 buf_len,
 26		     u32 pktlog_checksum),
 27
 28	TP_ARGS(ar, buf, buf_len, pktlog_checksum),
 29
 30	TP_STRUCT__entry(
 31		__string(device, dev_name(ar->ab->dev))
 32		__string(driver, dev_driver_string(ar->ab->dev))
 33		__field(u16, buf_len)
 34		__field(u32, pktlog_checksum)
 35		__dynamic_array(u8, pktlog, buf_len)
 36	),
 37
 38	TP_fast_assign(
 39		__assign_str(device, dev_name(ar->ab->dev));
 40		__assign_str(driver, dev_driver_string(ar->ab->dev));
 41		__entry->buf_len = buf_len;
 42		__entry->pktlog_checksum = pktlog_checksum;
 43		memcpy(__get_dynamic_array(pktlog), buf, buf_len);
 44	),
 45
 46	TP_printk(
 47		"%s %s size %u pktlog_checksum %d",
 48		__get_str(driver),
 49		__get_str(device),
 50		__entry->buf_len,
 51		__entry->pktlog_checksum
 52	 )
 53);
 54
 55TRACE_EVENT(ath12k_htt_ppdu_stats,
 56	    TP_PROTO(struct ath12k *ar, const void *data, size_t len),
 57
 58	TP_ARGS(ar, data, len),
 59
 60	TP_STRUCT__entry(
 61		__string(device, dev_name(ar->ab->dev))
 62		__string(driver, dev_driver_string(ar->ab->dev))
 63		__field(u16, len)
 64		__field(u32, info)
 65		__field(u32, sync_tstmp_lo_us)
 66		__field(u32, sync_tstmp_hi_us)
 67		__field(u32, mlo_offset_lo)
 68		__field(u32, mlo_offset_hi)
 69		__field(u32, mlo_offset_clks)
 70		__field(u32, mlo_comp_clks)
 71		__field(u32, mlo_comp_timer)
 72		__dynamic_array(u8, ppdu, len)
 73	),
 74
 75	TP_fast_assign(
 76		__assign_str(device, dev_name(ar->ab->dev));
 77		__assign_str(driver, dev_driver_string(ar->ab->dev));
 78		__entry->len = len;
 79		__entry->info = ar->pdev->timestamp.info;
 80		__entry->sync_tstmp_lo_us = ar->pdev->timestamp.sync_timestamp_hi_us;
 81		__entry->sync_tstmp_hi_us = ar->pdev->timestamp.sync_timestamp_lo_us;
 82		__entry->mlo_offset_lo = ar->pdev->timestamp.mlo_offset_lo;
 83		__entry->mlo_offset_hi = ar->pdev->timestamp.mlo_offset_hi;
 84		__entry->mlo_offset_clks = ar->pdev->timestamp.mlo_offset_clks;
 85		__entry->mlo_comp_clks = ar->pdev->timestamp.mlo_comp_clks;
 86		__entry->mlo_comp_timer = ar->pdev->timestamp.mlo_comp_timer;
 87		memcpy(__get_dynamic_array(ppdu), data, len);
 88	),
 89
 90	TP_printk(
 91		"%s %s ppdu len %d",
 92		__get_str(driver),
 93		__get_str(device),
 94		__entry->len
 95	 )
 96);
 97
 98TRACE_EVENT(ath12k_htt_rxdesc,
 99	    TP_PROTO(struct ath12k *ar, const void *data, size_t type, size_t len),
100
101	TP_ARGS(ar, data, type, len),
102
103	TP_STRUCT__entry(
104		__string(device, dev_name(ar->ab->dev))
105		__string(driver, dev_driver_string(ar->ab->dev))
106		__field(u16, len)
107		__field(u16, type)
108		__field(u32, info)
109		__field(u32, sync_tstmp_lo_us)
110		__field(u32, sync_tstmp_hi_us)
111		__field(u32, mlo_offset_lo)
112		__field(u32, mlo_offset_hi)
113		__field(u32, mlo_offset_clks)
114		__field(u32, mlo_comp_clks)
115		__field(u32, mlo_comp_timer)
116		__dynamic_array(u8, rxdesc, len)
117	),
118
119	TP_fast_assign(
120		__assign_str(device, dev_name(ar->ab->dev));
121		__assign_str(driver, dev_driver_string(ar->ab->dev));
122		__entry->len = len;
123		__entry->type = type;
124		__entry->info = ar->pdev->timestamp.info;
125		__entry->sync_tstmp_lo_us = ar->pdev->timestamp.sync_timestamp_hi_us;
126		__entry->sync_tstmp_hi_us = ar->pdev->timestamp.sync_timestamp_lo_us;
127		__entry->mlo_offset_lo = ar->pdev->timestamp.mlo_offset_lo;
128		__entry->mlo_offset_hi = ar->pdev->timestamp.mlo_offset_hi;
129		__entry->mlo_offset_clks = ar->pdev->timestamp.mlo_offset_clks;
130		__entry->mlo_comp_clks = ar->pdev->timestamp.mlo_comp_clks;
131		__entry->mlo_comp_timer = ar->pdev->timestamp.mlo_comp_timer;
132		memcpy(__get_dynamic_array(rxdesc), data, len);
133	),
134
135	TP_printk(
136		"%s %s rxdesc len %d",
137		__get_str(driver),
138		__get_str(device),
139		__entry->len
140	 )
141);
142
143#endif /* _TRACE_H_ || TRACE_HEADER_MULTI_READ*/
144
145/* we don't want to use include/trace/events */
146#undef TRACE_INCLUDE_PATH
147#define TRACE_INCLUDE_PATH .
148#undef TRACE_INCLUDE_FILE
149#define TRACE_INCLUDE_FILE trace
150
151/* This part must be outside protection */
152#include <trace/define_trace.h>