hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/sound/firewire/amdtp-stream-trace.h
....@@ -1,8 +1,8 @@
1
+/* SPDX-License-Identifier: GPL-2.0-only */
12 /*
23 * amdtp-stream-trace.h - tracepoint definitions to dump a part of packet data
34 *
45 * Copyright (c) 2016 Takashi Sakamoto
5
- * Licensed under the terms of the GNU General Public License, version 2.
66 */
77
88 #undef TRACE_SYSTEM
....@@ -13,103 +13,16 @@
1313
1414 #include <linux/tracepoint.h>
1515
16
-TRACE_EVENT(in_packet,
17
- TP_PROTO(const struct amdtp_stream *s, u32 cycles, u32 *cip_header, unsigned int payload_length, unsigned int index),
18
- TP_ARGS(s, cycles, cip_header, payload_length, index),
16
+TRACE_EVENT(amdtp_packet,
17
+ TP_PROTO(const struct amdtp_stream *s, u32 cycles, const __be32 *cip_header, unsigned int payload_length, unsigned int data_blocks, unsigned int data_block_counter, unsigned int packet_index, unsigned int index),
18
+ TP_ARGS(s, cycles, cip_header, payload_length, data_blocks, data_block_counter, packet_index, index),
1919 TP_STRUCT__entry(
2020 __field(unsigned int, second)
2121 __field(unsigned int, cycle)
2222 __field(int, channel)
2323 __field(int, src)
2424 __field(int, dest)
25
- __field(u32, cip_header0)
26
- __field(u32, cip_header1)
27
- __field(unsigned int, payload_quadlets)
28
- __field(unsigned int, packet_index)
29
- __field(unsigned int, irq)
30
- __field(unsigned int, index)
31
- ),
32
- TP_fast_assign(
33
- __entry->second = cycles / CYCLES_PER_SECOND;
34
- __entry->cycle = cycles % CYCLES_PER_SECOND;
35
- __entry->channel = s->context->channel;
36
- __entry->src = fw_parent_device(s->unit)->node_id;
37
- __entry->dest = fw_parent_device(s->unit)->card->node_id;
38
- __entry->cip_header0 = cip_header[0];
39
- __entry->cip_header1 = cip_header[1];
40
- __entry->payload_quadlets = payload_length / 4;
41
- __entry->packet_index = s->packet_index;
42
- __entry->irq = !!in_interrupt();
43
- __entry->index = index;
44
- ),
45
- TP_printk(
46
- "%02u %04u %04x %04x %02d %08x %08x %03u %02u %01u %02u",
47
- __entry->second,
48
- __entry->cycle,
49
- __entry->src,
50
- __entry->dest,
51
- __entry->channel,
52
- __entry->cip_header0,
53
- __entry->cip_header1,
54
- __entry->payload_quadlets,
55
- __entry->packet_index,
56
- __entry->irq,
57
- __entry->index)
58
-);
59
-
60
-TRACE_EVENT(out_packet,
61
- TP_PROTO(const struct amdtp_stream *s, u32 cycles, __be32 *cip_header, unsigned int payload_length, unsigned int index),
62
- TP_ARGS(s, cycles, cip_header, payload_length, index),
63
- TP_STRUCT__entry(
64
- __field(unsigned int, second)
65
- __field(unsigned int, cycle)
66
- __field(int, channel)
67
- __field(int, src)
68
- __field(int, dest)
69
- __field(u32, cip_header0)
70
- __field(u32, cip_header1)
71
- __field(unsigned int, payload_quadlets)
72
- __field(unsigned int, packet_index)
73
- __field(unsigned int, irq)
74
- __field(unsigned int, index)
75
- ),
76
- TP_fast_assign(
77
- __entry->second = cycles / CYCLES_PER_SECOND;
78
- __entry->cycle = cycles % CYCLES_PER_SECOND;
79
- __entry->channel = s->context->channel;
80
- __entry->src = fw_parent_device(s->unit)->card->node_id;
81
- __entry->dest = fw_parent_device(s->unit)->node_id;
82
- __entry->cip_header0 = be32_to_cpu(cip_header[0]);
83
- __entry->cip_header1 = be32_to_cpu(cip_header[1]);
84
- __entry->payload_quadlets = payload_length / 4;
85
- __entry->packet_index = s->packet_index;
86
- __entry->irq = !!in_interrupt();
87
- __entry->index = index;
88
- ),
89
- TP_printk(
90
- "%02u %04u %04x %04x %02d %08x %08x %03u %02u %01u %02u",
91
- __entry->second,
92
- __entry->cycle,
93
- __entry->src,
94
- __entry->dest,
95
- __entry->channel,
96
- __entry->cip_header0,
97
- __entry->cip_header1,
98
- __entry->payload_quadlets,
99
- __entry->packet_index,
100
- __entry->irq,
101
- __entry->index)
102
-);
103
-
104
-TRACE_EVENT(in_packet_without_header,
105
- TP_PROTO(const struct amdtp_stream *s, u32 cycles, unsigned int payload_quadlets, unsigned int data_blocks, unsigned int index),
106
- TP_ARGS(s, cycles, payload_quadlets, data_blocks, index),
107
- TP_STRUCT__entry(
108
- __field(unsigned int, second)
109
- __field(unsigned int, cycle)
110
- __field(int, channel)
111
- __field(int, src)
112
- __field(int, dest)
25
+ __dynamic_array(u8, cip_header, cip_header ? 8 : 0)
11326 __field(unsigned int, payload_quadlets)
11427 __field(unsigned int, data_blocks)
11528 __field(unsigned int, data_block_counter)
....@@ -121,17 +34,26 @@
12134 __entry->second = cycles / CYCLES_PER_SECOND;
12235 __entry->cycle = cycles % CYCLES_PER_SECOND;
12336 __entry->channel = s->context->channel;
124
- __entry->src = fw_parent_device(s->unit)->node_id;
125
- __entry->dest = fw_parent_device(s->unit)->card->node_id;
126
- __entry->payload_quadlets = payload_quadlets;
127
- __entry->data_blocks = data_blocks,
128
- __entry->data_block_counter = s->data_block_counter,
129
- __entry->packet_index = s->packet_index;
37
+ if (s->direction == AMDTP_IN_STREAM) {
38
+ __entry->src = fw_parent_device(s->unit)->node_id;
39
+ __entry->dest = fw_parent_device(s->unit)->card->node_id;
40
+ } else {
41
+ __entry->src = fw_parent_device(s->unit)->card->node_id;
42
+ __entry->dest = fw_parent_device(s->unit)->node_id;
43
+ }
44
+ if (cip_header) {
45
+ memcpy(__get_dynamic_array(cip_header), cip_header,
46
+ __get_dynamic_array_len(cip_header));
47
+ }
48
+ __entry->payload_quadlets = payload_length / sizeof(__be32);
49
+ __entry->data_blocks = data_blocks;
50
+ __entry->data_block_counter = data_block_counter,
51
+ __entry->packet_index = packet_index;
13052 __entry->irq = !!in_interrupt();
13153 __entry->index = index;
13254 ),
13355 TP_printk(
134
- "%02u %04u %04x %04x %02d %03u %02u %03u %02u %01u %02u",
56
+ "%02u %04u %04x %04x %02d %03u %02u %03u %02u %01u %02u %s",
13557 __entry->second,
13658 __entry->cycle,
13759 __entry->src,
....@@ -142,51 +64,9 @@
14264 __entry->data_block_counter,
14365 __entry->packet_index,
14466 __entry->irq,
145
- __entry->index)
146
-);
147
-
148
-TRACE_EVENT(out_packet_without_header,
149
- TP_PROTO(const struct amdtp_stream *s, u32 cycles, unsigned int payload_length, unsigned int data_blocks, unsigned int index),
150
- TP_ARGS(s, cycles, payload_length, data_blocks, index),
151
- TP_STRUCT__entry(
152
- __field(unsigned int, second)
153
- __field(unsigned int, cycle)
154
- __field(int, channel)
155
- __field(int, src)
156
- __field(int, dest)
157
- __field(unsigned int, payload_quadlets)
158
- __field(unsigned int, data_blocks)
159
- __field(unsigned int, data_block_counter)
160
- __field(unsigned int, packet_index)
161
- __field(unsigned int, irq)
162
- __field(unsigned int, index)
163
- ),
164
- TP_fast_assign(
165
- __entry->second = cycles / CYCLES_PER_SECOND;
166
- __entry->cycle = cycles % CYCLES_PER_SECOND;
167
- __entry->channel = s->context->channel;
168
- __entry->src = fw_parent_device(s->unit)->card->node_id;
169
- __entry->dest = fw_parent_device(s->unit)->node_id;
170
- __entry->payload_quadlets = payload_length / 4;
171
- __entry->data_blocks = data_blocks,
172
- __entry->data_block_counter = s->data_block_counter,
173
- __entry->packet_index = s->packet_index;
174
- __entry->irq = !!in_interrupt();
175
- __entry->index = index;
176
- ),
177
- TP_printk(
178
- "%02u %04u %04x %04x %02d %03u %02u %03u %02u %01u %02u",
179
- __entry->second,
180
- __entry->cycle,
181
- __entry->src,
182
- __entry->dest,
183
- __entry->channel,
184
- __entry->payload_quadlets,
185
- __entry->data_blocks,
186
- __entry->data_block_counter,
187
- __entry->packet_index,
188
- __entry->irq,
189
- __entry->index)
67
+ __entry->index,
68
+ __print_array(__get_dynamic_array(cip_header),
69
+ __get_dynamic_array_len(cip_header), 1))
19070 );
19171
19272 #endif