brintos

brintos / linux-shallow public Read only

0
0
Text · 2.5 KiB · 3d36f12 Raw
86 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * amdtp-motu-trace.h - tracepoint definitions to dump a part of packet data4 *5 * Copyright (c) 2017 Takashi Sakamoto6 */7 8#undef TRACE_SYSTEM9#define TRACE_SYSTEM		snd_firewire_motu10 11#if !defined(_SND_FIREWIRE_MOTU_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)12#define _SND_FIREWIRE_MOTU_TRACE_H13 14#include <linux/tracepoint.h>15 16static void copy_sph(u32 *frame, __be32 *buffer, unsigned int data_blocks,17		     unsigned int data_block_quadlets);18static void copy_message(u64 *frames, __be32 *buffer, unsigned int data_blocks,19			 unsigned int data_block_quadlets);20 21TRACE_EVENT(data_block_sph,22	TP_PROTO(struct amdtp_stream *s, unsigned int data_blocks, __be32 *buffer),23	TP_ARGS(s, data_blocks, buffer),24	TP_STRUCT__entry(25		__field(int, src)26		__field(int, dst)27		__field(unsigned int, data_blocks)28		__dynamic_array(u32, tstamps, data_blocks)29	),30	TP_fast_assign(31		if (s->direction == AMDTP_IN_STREAM) {32			__entry->src = fw_parent_device(s->unit)->node_id;33			__entry->dst = fw_parent_device(s->unit)->card->node_id;34		} else {35			__entry->src = fw_parent_device(s->unit)->card->node_id;36			__entry->dst = fw_parent_device(s->unit)->node_id;37		}38		__entry->data_blocks = data_blocks;39		copy_sph(__get_dynamic_array(tstamps), buffer, data_blocks, s->data_block_quadlets);40	),41	TP_printk(42		"%04x %04x %u %s",43		__entry->src,44		__entry->dst,45		__entry->data_blocks,46		__print_array(__get_dynamic_array(tstamps), __entry->data_blocks, 4)47	)48);49 50TRACE_EVENT(data_block_message,51	TP_PROTO(struct amdtp_stream *s, unsigned int data_blocks, __be32 *buffer),52	TP_ARGS(s, data_blocks, buffer),53	TP_STRUCT__entry(54		__field(int, src)55		__field(int, dst)56		__field(unsigned int, data_blocks)57		__dynamic_array(u64, messages, data_blocks)58	),59	TP_fast_assign(60		if (s->direction == AMDTP_IN_STREAM) {61			__entry->src = fw_parent_device(s->unit)->node_id;62			__entry->dst = fw_parent_device(s->unit)->card->node_id;63		} else {64			__entry->src = fw_parent_device(s->unit)->card->node_id;65			__entry->dst = fw_parent_device(s->unit)->node_id;66		}67		__entry->data_blocks = data_blocks;68		copy_message(__get_dynamic_array(messages), buffer, data_blocks, s->data_block_quadlets);69	),70	TP_printk(71		"%04x %04x %u %s",72		__entry->src,73		__entry->dst,74		__entry->data_blocks,75		__print_array(__get_dynamic_array(messages), __entry->data_blocks, 8)76	)77);78 79#endif80 81#undef TRACE_INCLUDE_PATH82#define TRACE_INCLUDE_PATH	.83#undef TRACE_INCLUDE_FILE84#define TRACE_INCLUDE_FILE	amdtp-motu-trace85#include <trace/define_trace.h>86