0001
0002
0003
0004
0005
0006
0007
0008 #undef TRACE_SYSTEM
0009 #define TRACE_SYSTEM snd_firewire_motu
0010
0011 #if !defined(_SND_FIREWIRE_MOTU_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
0012 #define _SND_FIREWIRE_MOTU_TRACE_H
0013
0014 #include <linux/tracepoint.h>
0015
0016 static void copy_sph(u32 *frame, __be32 *buffer, unsigned int data_blocks,
0017 unsigned int data_block_quadlets);
0018 static void copy_message(u64 *frames, __be32 *buffer, unsigned int data_blocks,
0019 unsigned int data_block_quadlets);
0020
0021 TRACE_EVENT(data_block_sph,
0022 TP_PROTO(struct amdtp_stream *s, unsigned int data_blocks, __be32 *buffer),
0023 TP_ARGS(s, data_blocks, buffer),
0024 TP_STRUCT__entry(
0025 __field(int, src)
0026 __field(int, dst)
0027 __field(unsigned int, data_blocks)
0028 __dynamic_array(u32, tstamps, data_blocks)
0029 ),
0030 TP_fast_assign(
0031 if (s->direction == AMDTP_IN_STREAM) {
0032 __entry->src = fw_parent_device(s->unit)->node_id;
0033 __entry->dst = fw_parent_device(s->unit)->card->node_id;
0034 } else {
0035 __entry->src = fw_parent_device(s->unit)->card->node_id;
0036 __entry->dst = fw_parent_device(s->unit)->node_id;
0037 }
0038 __entry->data_blocks = data_blocks;
0039 copy_sph(__get_dynamic_array(tstamps), buffer, data_blocks, s->data_block_quadlets);
0040 ),
0041 TP_printk(
0042 "%04x %04x %u %s",
0043 __entry->src,
0044 __entry->dst,
0045 __entry->data_blocks,
0046 __print_array(__get_dynamic_array(tstamps), __entry->data_blocks, 4)
0047 )
0048 );
0049
0050 TRACE_EVENT(data_block_message,
0051 TP_PROTO(struct amdtp_stream *s, unsigned int data_blocks, __be32 *buffer),
0052 TP_ARGS(s, data_blocks, buffer),
0053 TP_STRUCT__entry(
0054 __field(int, src)
0055 __field(int, dst)
0056 __field(unsigned int, data_blocks)
0057 __dynamic_array(u64, messages, data_blocks)
0058 ),
0059 TP_fast_assign(
0060 if (s->direction == AMDTP_IN_STREAM) {
0061 __entry->src = fw_parent_device(s->unit)->node_id;
0062 __entry->dst = fw_parent_device(s->unit)->card->node_id;
0063 } else {
0064 __entry->src = fw_parent_device(s->unit)->card->node_id;
0065 __entry->dst = fw_parent_device(s->unit)->node_id;
0066 }
0067 __entry->data_blocks = data_blocks;
0068 copy_message(__get_dynamic_array(messages), buffer, data_blocks, s->data_block_quadlets);
0069 ),
0070 TP_printk(
0071 "%04x %04x %u %s",
0072 __entry->src,
0073 __entry->dst,
0074 __entry->data_blocks,
0075 __print_array(__get_dynamic_array(messages), __entry->data_blocks, 8)
0076 )
0077 );
0078
0079 #endif
0080
0081 #undef TRACE_INCLUDE_PATH
0082 #define TRACE_INCLUDE_PATH .
0083 #undef TRACE_INCLUDE_FILE
0084 #define TRACE_INCLUDE_FILE amdtp-motu-trace
0085 #include <trace/define_trace.h>