xref: /openbmc/linux/drivers/misc/mei/mei-trace.h (revision 762f99f4f3cb41a775b5157dd761217beba65873)
19fff0425STomas Winkler /* SPDX-License-Identifier: GPL-2.0 */
2a0a927d0STomas Winkler /*
31e55b609STomas Winkler  * Copyright (c) 2015-2016, Intel Corporation. All rights reserved.
4a0a927d0STomas Winkler  * Intel Management Engine Interface (Intel MEI) Linux driver
5a0a927d0STomas Winkler  */
6a0a927d0STomas Winkler 
7a0a927d0STomas Winkler #if !defined(_MEI_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
8a0a927d0STomas Winkler #define _MEI_TRACE_H_
9a0a927d0STomas Winkler 
10a0a927d0STomas Winkler #include <linux/stringify.h>
11a0a927d0STomas Winkler #include <linux/types.h>
12a0a927d0STomas Winkler #include <linux/tracepoint.h>
13a0a927d0STomas Winkler 
14d2b5851dSTomas Winkler #include <linux/device.h>
15d2b5851dSTomas Winkler 
16a0a927d0STomas Winkler #undef TRACE_SYSTEM
17a0a927d0STomas Winkler #define TRACE_SYSTEM mei
18a0a927d0STomas Winkler 
19a0a927d0STomas Winkler TRACE_EVENT(mei_reg_read,
20a0a927d0STomas Winkler 	TP_PROTO(const struct device *dev, const char *reg, u32 offs, u32 val),
21a0a927d0STomas Winkler 	TP_ARGS(dev, reg, offs, val),
22a0a927d0STomas Winkler 	TP_STRUCT__entry(
23a0a927d0STomas Winkler 		__string(dev, dev_name(dev))
24a0a927d0STomas Winkler 		__field(const char *, reg)
25a0a927d0STomas Winkler 		__field(u32, offs)
26a0a927d0STomas Winkler 		__field(u32, val)
27a0a927d0STomas Winkler 	),
28a0a927d0STomas Winkler 	TP_fast_assign(
29*78c14b38SJoe Perches 		__assign_str(dev, dev_name(dev));
30a0a927d0STomas Winkler 		__entry->reg  = reg;
31a0a927d0STomas Winkler 		__entry->offs = offs;
32a0a927d0STomas Winkler 		__entry->val = val;
33a0a927d0STomas Winkler 	),
34a0a927d0STomas Winkler 	TP_printk("[%s] read %s:[%#x] = %#x",
35a0a927d0STomas Winkler 		  __get_str(dev), __entry->reg, __entry->offs, __entry->val)
36a0a927d0STomas Winkler );
37a0a927d0STomas Winkler 
38a0a927d0STomas Winkler TRACE_EVENT(mei_reg_write,
39a0a927d0STomas Winkler 	TP_PROTO(const struct device *dev, const char *reg, u32 offs, u32 val),
40a0a927d0STomas Winkler 	TP_ARGS(dev, reg, offs, val),
41a0a927d0STomas Winkler 	TP_STRUCT__entry(
42a0a927d0STomas Winkler 		__string(dev, dev_name(dev))
43a0a927d0STomas Winkler 		__field(const char *, reg)
44a0a927d0STomas Winkler 		__field(u32, offs)
45a0a927d0STomas Winkler 		__field(u32, val)
46a0a927d0STomas Winkler 	),
47a0a927d0STomas Winkler 	TP_fast_assign(
48*78c14b38SJoe Perches 		__assign_str(dev, dev_name(dev));
49a0a927d0STomas Winkler 		__entry->reg = reg;
50a0a927d0STomas Winkler 		__entry->offs = offs;
51a0a927d0STomas Winkler 		__entry->val = val;
52a0a927d0STomas Winkler 	),
53e8466b33SAlexander Usyskin 	TP_printk("[%s] write %s[%#x] = %#x",
54a0a927d0STomas Winkler 		  __get_str(dev), __entry->reg,  __entry->offs, __entry->val)
55a0a927d0STomas Winkler );
56a0a927d0STomas Winkler 
57a96c5482STomas Winkler TRACE_EVENT(mei_pci_cfg_read,
58a96c5482STomas Winkler 	TP_PROTO(const struct device *dev, const char *reg, u32 offs, u32 val),
59a96c5482STomas Winkler 	TP_ARGS(dev, reg, offs, val),
60a96c5482STomas Winkler 	TP_STRUCT__entry(
61a96c5482STomas Winkler 		__string(dev, dev_name(dev))
62a96c5482STomas Winkler 		__field(const char *, reg)
63a96c5482STomas Winkler 		__field(u32, offs)
64a96c5482STomas Winkler 		__field(u32, val)
65a96c5482STomas Winkler 	),
66a96c5482STomas Winkler 	TP_fast_assign(
67*78c14b38SJoe Perches 		__assign_str(dev, dev_name(dev));
68a96c5482STomas Winkler 		__entry->reg  = reg;
69a96c5482STomas Winkler 		__entry->offs = offs;
70a96c5482STomas Winkler 		__entry->val = val;
71a96c5482STomas Winkler 	),
72a96c5482STomas Winkler 	TP_printk("[%s] pci cfg read %s:[%#x] = %#x",
73a96c5482STomas Winkler 		  __get_str(dev), __entry->reg, __entry->offs, __entry->val)
74a96c5482STomas Winkler );
75a96c5482STomas Winkler 
76a0a927d0STomas Winkler #endif /* _MEI_TRACE_H_ */
77a0a927d0STomas Winkler 
78a0a927d0STomas Winkler /* This part must be outside protection */
79a0a927d0STomas Winkler #undef TRACE_INCLUDE_PATH
80a0a927d0STomas Winkler #undef TRACE_INCLUDE_FILE
81a0a927d0STomas Winkler #define TRACE_INCLUDE_PATH .
82a0a927d0STomas Winkler #define TRACE_INCLUDE_FILE mei-trace
83a0a927d0STomas Winkler #include <trace/define_trace.h>
84