brintos

brintos / linux-shallow public Read only

0
0
Text · 4.7 KiB · 253c67a Raw
180 lines · c
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, 2024 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_EVENT17#define TRACE_EVENT(name, proto, ...) \18static inline void trace_ ## name(proto) {}19#endif /* !CONFIG_ATH12K_TRACING || __CHECKER__ */20 21#undef TRACE_SYSTEM22#define TRACE_SYSTEM ath12k23 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);40		__assign_str(driver);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_checksum52	 )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);77		__assign_str(driver);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->len95	 )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);121		__assign_str(driver);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->len140	 )141);142 143TRACE_EVENT(ath12k_wmi_diag,144	    TP_PROTO(struct ath12k_base *ab, const void *data, size_t len),145 146	TP_ARGS(ab, data, len),147 148	TP_STRUCT__entry(149		__string(device, dev_name(ab->dev))150		__string(driver, dev_driver_string(ab->dev))151		__field(u16, len)152		__dynamic_array(u8, data, len)153	),154 155	TP_fast_assign(156		__assign_str(device);157		__assign_str(driver);158		__entry->len = len;159		memcpy(__get_dynamic_array(data), data, len);160	),161 162	TP_printk(163		"%s %s tlv diag len %d",164		__get_str(driver),165		__get_str(device),166		__entry->len167	)168);169 170#endif /* _TRACE_H_ || TRACE_HEADER_MULTI_READ*/171 172/* we don't want to use include/trace/events */173#undef TRACE_INCLUDE_PATH174#define TRACE_INCLUDE_PATH .175#undef TRACE_INCLUDE_FILE176#define TRACE_INCLUDE_FILE trace177 178/* This part must be outside protection */179#include <trace/define_trace.h>180