Commit | Line | Data |
---|---|---|
baedc630 NK |
1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
2 | /* | |
ea89a742 | 3 | * Copyright(c) 2022 Intel Corporation |
baedc630 NK |
4 | * |
5 | * Author: Noah Klayman <noah.klayman@intel.com> | |
6 | */ | |
7 | ||
8 | #undef TRACE_SYSTEM | |
9 | #define TRACE_SYSTEM sof_intel | |
10 | ||
11 | #if !defined(_TRACE_SOF_INTEL_H) || defined(TRACE_HEADER_MULTI_READ) | |
12 | #define _TRACE_SOF_INTEL_H | |
13 | #include <linux/tracepoint.h> | |
d272b657 | 14 | #include <sound/hdaudio.h> |
baedc630 NK |
15 | #include "../../../sound/soc/sof/sof-audio.h" |
16 | ||
17 | TRACE_EVENT(sof_intel_hda_irq, | |
18 | TP_PROTO(struct snd_sof_dev *sdev, char *source), | |
19 | TP_ARGS(sdev, source), | |
20 | TP_STRUCT__entry( | |
21 | __string(device_name, dev_name(sdev->dev)) | |
22 | __string(source, source) | |
23 | ), | |
24 | TP_fast_assign( | |
25 | __assign_str(device_name, dev_name(sdev->dev)); | |
26 | __assign_str(source, source); | |
27 | ), | |
28 | TP_printk("device_name=%s source=%s", | |
29 | __get_str(device_name), __get_str(source)) | |
30 | ); | |
31 | ||
d272b657 BL |
32 | DECLARE_EVENT_CLASS(sof_intel_ipc_firmware_template, |
33 | TP_ARGS(struct snd_sof_dev *sdev, u32 msg, u32 msg_ext), | |
34 | TP_PROTO(sdev, msg, msg_ext), | |
35 | TP_STRUCT__entry( | |
36 | __string(device_name, dev_name(sdev->dev)) | |
37 | __field(u32, msg) | |
38 | __field(u32, msg_ext) | |
39 | ), | |
40 | TP_fast_assign( | |
41 | __assign_str(device_name, dev_name(sdev->dev)); | |
42 | __entry->msg = msg; | |
43 | __entry->msg_ext = msg_ext; | |
44 | ), | |
45 | TP_printk("device_name=%s msg=%#x msg_ext=%#x", | |
46 | __get_str(device_name), __entry->msg, __entry->msg_ext) | |
47 | ); | |
48 | ||
49 | DEFINE_EVENT(sof_intel_ipc_firmware_template, sof_intel_ipc_firmware_response, | |
50 | TP_PROTO(struct snd_sof_dev *sdev, u32 msg, u32 msg_ext), | |
51 | TP_ARGS(sdev, msg, msg_ext) | |
52 | ); | |
53 | ||
54 | DEFINE_EVENT(sof_intel_ipc_firmware_template, sof_intel_ipc_firmware_initiated, | |
55 | TP_PROTO(struct snd_sof_dev *sdev, u32 msg, u32 msg_ext), | |
56 | TP_ARGS(sdev, msg, msg_ext) | |
57 | ); | |
58 | ||
59 | TRACE_EVENT(sof_intel_D0I3C_updated, | |
60 | TP_PROTO(struct snd_sof_dev *sdev, u8 reg), | |
61 | TP_ARGS(sdev, reg), | |
62 | TP_STRUCT__entry( | |
63 | __string(device_name, dev_name(sdev->dev)) | |
64 | __field(u8, reg) | |
65 | ), | |
66 | TP_fast_assign( | |
67 | __assign_str(device_name, dev_name(sdev->dev)); | |
68 | __entry->reg = reg; | |
69 | ), | |
70 | TP_printk("device_name=%s register=%#x", | |
71 | __get_str(device_name), __entry->reg) | |
72 | ); | |
73 | ||
74 | TRACE_EVENT(sof_intel_hda_irq_ipc_check, | |
75 | TP_PROTO(struct snd_sof_dev *sdev, u32 irq_status), | |
76 | TP_ARGS(sdev, irq_status), | |
77 | TP_STRUCT__entry( | |
78 | __string(device_name, dev_name(sdev->dev)) | |
79 | __field(u32, irq_status) | |
80 | ), | |
81 | TP_fast_assign( | |
82 | __assign_str(device_name, dev_name(sdev->dev)); | |
83 | __entry->irq_status = irq_status; | |
84 | ), | |
85 | TP_printk("device_name=%s irq_status=%#x", | |
86 | __get_str(device_name), __entry->irq_status) | |
87 | ); | |
88 | ||
89 | TRACE_EVENT(sof_intel_hda_dsp_pcm, | |
90 | TP_PROTO(struct snd_sof_dev *sdev, | |
91 | struct hdac_stream *hstream, | |
92 | struct snd_pcm_substream *substream, | |
93 | snd_pcm_uframes_t pos | |
94 | ), | |
95 | TP_ARGS(sdev, hstream, substream, pos), | |
96 | TP_STRUCT__entry( | |
97 | __string(device_name, dev_name(sdev->dev)) | |
98 | __field(u32, hstream_index) | |
99 | __field(u32, substream) | |
100 | __field(unsigned long, pos) | |
101 | ), | |
102 | TP_fast_assign( | |
103 | __assign_str(device_name, dev_name(sdev->dev)); | |
104 | __entry->hstream_index = hstream->index; | |
105 | __entry->substream = substream->stream; | |
106 | __entry->pos = pos; | |
107 | ), | |
108 | TP_printk("device_name=%s hstream_index=%d substream=%d pos=%lu", | |
109 | __get_str(device_name), __entry->hstream_index, | |
110 | __entry->substream, __entry->pos) | |
111 | ); | |
112 | ||
113 | TRACE_EVENT(sof_intel_hda_dsp_stream_status, | |
114 | TP_PROTO(struct device *dev, struct hdac_stream *s, u32 status), | |
115 | TP_ARGS(dev, s, status), | |
116 | TP_STRUCT__entry( | |
117 | __string(device_name, dev_name(dev)) | |
118 | __field(u32, stream) | |
119 | __field(u32, status) | |
120 | ), | |
121 | TP_fast_assign( | |
122 | __assign_str(device_name, dev_name(dev)); | |
123 | __entry->stream = s->index; | |
124 | __entry->status = status; | |
125 | ), | |
126 | TP_printk("device_name=%s stream=%d status=%#x", | |
127 | __get_str(device_name), __entry->stream, __entry->status) | |
128 | ); | |
129 | ||
130 | TRACE_EVENT(sof_intel_hda_dsp_check_stream_irq, | |
131 | TP_PROTO(struct snd_sof_dev *sdev, u32 status), | |
132 | TP_ARGS(sdev, status), | |
133 | TP_STRUCT__entry( | |
134 | __string(device_name, dev_name(sdev->dev)) | |
135 | __field(u32, status) | |
136 | ), | |
137 | TP_fast_assign( | |
138 | __assign_str(device_name, dev_name(sdev->dev)); | |
139 | __entry->status = status; | |
140 | ), | |
141 | TP_printk("device_name=%s status=%#x", | |
142 | __get_str(device_name), __entry->status) | |
143 | ); | |
144 | ||
baedc630 NK |
145 | #endif /* _TRACE_SOF_INTEL_H */ |
146 | ||
147 | /* This part must be outside protection */ | |
148 | #include <trace/define_trace.h> |