1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /******************************************************************************
4 * Copyright(c) 2009 - 2014 Intel Corporation. All rights reserved.
5 * Copyright(c) 2016-2017 Intel Deutschland GmbH
8 * Intel Linux Wireless <linuxwifi@intel.com>
9 * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
11 *****************************************************************************/
13 #if !defined(__IWLWIFI_DEVICE_TRACE_IO) || defined(TRACE_HEADER_MULTI_READ)
14 #define __IWLWIFI_DEVICE_TRACE_IO
16 #include <linux/tracepoint.h>
17 #include <linux/pci.h>
20 #define TRACE_SYSTEM iwlwifi_io
22 TRACE_EVENT(iwlwifi_dev_ioread32
,
23 TP_PROTO(const struct device
*dev
, u32 offs
, u32 val
),
24 TP_ARGS(dev
, offs
, val
),
35 TP_printk("[%s] read io[%#x] = %#x",
36 __get_str(dev
), __entry
->offs
, __entry
->val
)
39 TRACE_EVENT(iwlwifi_dev_iowrite8
,
40 TP_PROTO(const struct device
*dev
, u32 offs
, u8 val
),
41 TP_ARGS(dev
, offs
, val
),
52 TP_printk("[%s] write io[%#x] = %#x)",
53 __get_str(dev
), __entry
->offs
, __entry
->val
)
56 TRACE_EVENT(iwlwifi_dev_iowrite32
,
57 TP_PROTO(const struct device
*dev
, u32 offs
, u32 val
),
58 TP_ARGS(dev
, offs
, val
),
69 TP_printk("[%s] write io[%#x] = %#x)",
70 __get_str(dev
), __entry
->offs
, __entry
->val
)
73 TRACE_EVENT(iwlwifi_dev_iowrite64
,
74 TP_PROTO(const struct device
*dev
, u64 offs
, u64 val
),
75 TP_ARGS(dev
, offs
, val
),
86 TP_printk("[%s] write io[%llu] = %llu)",
87 __get_str(dev
), __entry
->offs
, __entry
->val
)
90 TRACE_EVENT(iwlwifi_dev_iowrite_prph32
,
91 TP_PROTO(const struct device
*dev
, u32 offs
, u32 val
),
92 TP_ARGS(dev
, offs
, val
),
100 __entry
->offs
= offs
;
103 TP_printk("[%s] write PRPH[%#x] = %#x)",
104 __get_str(dev
), __entry
->offs
, __entry
->val
)
107 TRACE_EVENT(iwlwifi_dev_iowrite_prph64
,
108 TP_PROTO(const struct device
*dev
, u64 offs
, u64 val
),
109 TP_ARGS(dev
, offs
, val
),
117 __entry
->offs
= offs
;
120 TP_printk("[%s] write PRPH[%llu] = %llu)",
121 __get_str(dev
), __entry
->offs
, __entry
->val
)
124 TRACE_EVENT(iwlwifi_dev_ioread_prph32
,
125 TP_PROTO(const struct device
*dev
, u32 offs
, u32 val
),
126 TP_ARGS(dev
, offs
, val
),
134 __entry
->offs
= offs
;
137 TP_printk("[%s] read PRPH[%#x] = %#x",
138 __get_str(dev
), __entry
->offs
, __entry
->val
)
141 TRACE_EVENT(iwlwifi_dev_irq
,
142 TP_PROTO(const struct device
*dev
),
150 /* TP_printk("") doesn't compile */
154 TRACE_EVENT(iwlwifi_dev_irq_msix
,
155 TP_PROTO(const struct device
*dev
, struct msix_entry
*msix_entry
,
156 bool defirq
, u32 inta_fh
, u32 inta_hw
),
157 TP_ARGS(dev
, msix_entry
, defirq
, inta_fh
, inta_hw
),
162 __field(u32
, inta_fh
)
163 __field(u32
, inta_hw
)
167 __entry
->entry
= msix_entry
->entry
;
168 __entry
->defirq
= defirq
;
169 __entry
->inta_fh
= inta_fh
;
170 __entry
->inta_hw
= inta_hw
;
172 TP_printk("entry:%d defirq:%d fh:0x%x, hw:0x%x",
173 __entry
->entry
, __entry
->defirq
,
174 __entry
->inta_fh
, __entry
->inta_hw
)
177 TRACE_EVENT(iwlwifi_dev_ict_read
,
178 TP_PROTO(const struct device
*dev
, u32 index
, u32 value
),
179 TP_ARGS(dev
, index
, value
),
187 __entry
->index
= index
;
188 __entry
->value
= value
;
190 TP_printk("[%s] read ict[%d] = %#.8x",
191 __get_str(dev
), __entry
->index
, __entry
->value
)
193 #endif /* __IWLWIFI_DEVICE_TRACE_IO */
195 #undef TRACE_INCLUDE_PATH
196 #define TRACE_INCLUDE_PATH .
197 #undef TRACE_INCLUDE_FILE
198 #define TRACE_INCLUDE_FILE iwl-devtrace-io
199 #include <trace/define_trace.h>