xref: /linux/sound/hda/common/controller_trace.h (revision 177bf8620cf4ed290ee170a6c5966adc0924b336)
1*05be28feSTakashi Iwai /* SPDX-License-Identifier: GPL-2.0 */
2*05be28feSTakashi Iwai #undef TRACE_SYSTEM
3*05be28feSTakashi Iwai #define TRACE_SYSTEM hda_controller
4*05be28feSTakashi Iwai #define TRACE_INCLUDE_FILE controller_trace
5*05be28feSTakashi Iwai 
6*05be28feSTakashi Iwai #if !defined(_TRACE_HDA_CONTROLLER_H) || defined(TRACE_HEADER_MULTI_READ)
7*05be28feSTakashi Iwai #define _TRACE_HDA_CONTROLLER_H
8*05be28feSTakashi Iwai 
9*05be28feSTakashi Iwai #include <linux/tracepoint.h>
10*05be28feSTakashi Iwai 
11*05be28feSTakashi Iwai struct azx;
12*05be28feSTakashi Iwai struct azx_dev;
13*05be28feSTakashi Iwai 
14*05be28feSTakashi Iwai TRACE_EVENT(azx_pcm_trigger,
15*05be28feSTakashi Iwai 
16*05be28feSTakashi Iwai 	TP_PROTO(struct azx *chip, struct azx_dev *dev, int cmd),
17*05be28feSTakashi Iwai 
18*05be28feSTakashi Iwai 	TP_ARGS(chip, dev, cmd),
19*05be28feSTakashi Iwai 
20*05be28feSTakashi Iwai 	TP_STRUCT__entry(
21*05be28feSTakashi Iwai 		__field( int, card )
22*05be28feSTakashi Iwai 		__field( int, idx )
23*05be28feSTakashi Iwai 		__field( int, cmd )
24*05be28feSTakashi Iwai 	),
25*05be28feSTakashi Iwai 
26*05be28feSTakashi Iwai 	TP_fast_assign(
27*05be28feSTakashi Iwai 		__entry->card = (chip)->card->number;
28*05be28feSTakashi Iwai 		__entry->idx = (dev)->core.index;
29*05be28feSTakashi Iwai 		__entry->cmd = cmd;
30*05be28feSTakashi Iwai 	),
31*05be28feSTakashi Iwai 
32*05be28feSTakashi Iwai 	TP_printk("[%d:%d] cmd=%d", __entry->card, __entry->idx, __entry->cmd)
33*05be28feSTakashi Iwai );
34*05be28feSTakashi Iwai 
35*05be28feSTakashi Iwai TRACE_EVENT(azx_get_position,
36*05be28feSTakashi Iwai 
37*05be28feSTakashi Iwai     TP_PROTO(struct azx *chip, struct azx_dev *dev, unsigned int pos, unsigned int delay),
38*05be28feSTakashi Iwai 
39*05be28feSTakashi Iwai 	    TP_ARGS(chip, dev, pos, delay),
40*05be28feSTakashi Iwai 
41*05be28feSTakashi Iwai 	TP_STRUCT__entry(
42*05be28feSTakashi Iwai 		__field( int, card )
43*05be28feSTakashi Iwai 		__field( int, idx )
44*05be28feSTakashi Iwai 		__field( unsigned int, pos )
45*05be28feSTakashi Iwai 		__field( unsigned int, delay )
46*05be28feSTakashi Iwai 	),
47*05be28feSTakashi Iwai 
48*05be28feSTakashi Iwai 	TP_fast_assign(
49*05be28feSTakashi Iwai 		__entry->card = (chip)->card->number;
50*05be28feSTakashi Iwai 		__entry->idx = (dev)->core.index;
51*05be28feSTakashi Iwai 		__entry->pos = pos;
52*05be28feSTakashi Iwai 		__entry->delay = delay;
53*05be28feSTakashi Iwai 	),
54*05be28feSTakashi Iwai 
55*05be28feSTakashi Iwai 	TP_printk("[%d:%d] pos=%u, delay=%u", __entry->card, __entry->idx, __entry->pos, __entry->delay)
56*05be28feSTakashi Iwai );
57*05be28feSTakashi Iwai 
58*05be28feSTakashi Iwai DECLARE_EVENT_CLASS(azx_pcm,
59*05be28feSTakashi Iwai 	TP_PROTO(struct azx *chip, struct azx_dev *azx_dev),
60*05be28feSTakashi Iwai 
61*05be28feSTakashi Iwai 	TP_ARGS(chip, azx_dev),
62*05be28feSTakashi Iwai 
63*05be28feSTakashi Iwai 	TP_STRUCT__entry(
64*05be28feSTakashi Iwai 		__field( unsigned char, stream_tag )
65*05be28feSTakashi Iwai 	),
66*05be28feSTakashi Iwai 
67*05be28feSTakashi Iwai 	TP_fast_assign(
68*05be28feSTakashi Iwai 		__entry->stream_tag = (azx_dev)->core.stream_tag;
69*05be28feSTakashi Iwai 	),
70*05be28feSTakashi Iwai 
71*05be28feSTakashi Iwai 	TP_printk("stream_tag: %d", __entry->stream_tag)
72*05be28feSTakashi Iwai );
73*05be28feSTakashi Iwai 
74*05be28feSTakashi Iwai DEFINE_EVENT(azx_pcm, azx_pcm_open,
75*05be28feSTakashi Iwai 	TP_PROTO(struct azx *chip, struct azx_dev *azx_dev),
76*05be28feSTakashi Iwai 	TP_ARGS(chip, azx_dev)
77*05be28feSTakashi Iwai );
78*05be28feSTakashi Iwai 
79*05be28feSTakashi Iwai DEFINE_EVENT(azx_pcm, azx_pcm_close,
80*05be28feSTakashi Iwai 	TP_PROTO(struct azx *chip, struct azx_dev *azx_dev),
81*05be28feSTakashi Iwai 	TP_ARGS(chip, azx_dev)
82*05be28feSTakashi Iwai );
83*05be28feSTakashi Iwai 
84*05be28feSTakashi Iwai DEFINE_EVENT(azx_pcm, azx_pcm_hw_params,
85*05be28feSTakashi Iwai 	TP_PROTO(struct azx *chip, struct azx_dev *azx_dev),
86*05be28feSTakashi Iwai 	TP_ARGS(chip, azx_dev)
87*05be28feSTakashi Iwai );
88*05be28feSTakashi Iwai 
89*05be28feSTakashi Iwai DEFINE_EVENT(azx_pcm, azx_pcm_prepare,
90*05be28feSTakashi Iwai 	TP_PROTO(struct azx *chip, struct azx_dev *azx_dev),
91*05be28feSTakashi Iwai 	TP_ARGS(chip, azx_dev)
92*05be28feSTakashi Iwai );
93*05be28feSTakashi Iwai 
94*05be28feSTakashi Iwai #endif /* _TRACE_HDA_CONTROLLER_H */
95*05be28feSTakashi Iwai 
96*05be28feSTakashi Iwai /* This part must be outside protection */
97*05be28feSTakashi Iwai #undef TRACE_INCLUDE_PATH
98*05be28feSTakashi Iwai #define TRACE_INCLUDE_PATH .
99*05be28feSTakashi Iwai #include <trace/define_trace.h>
100