195 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/******************************************************************************3 *4 * Copyright(c) 2009 - 2014 Intel Corporation. All rights reserved.5 * Copyright(c) 2016-2017 Intel Deutschland GmbH6 *****************************************************************************/7 8#if !defined(__IWLWIFI_DEVICE_TRACE_IO) || defined(TRACE_HEADER_MULTI_READ)9#define __IWLWIFI_DEVICE_TRACE_IO10 11#include <linux/tracepoint.h>12#include <linux/pci.h>13 14#undef TRACE_SYSTEM15#define TRACE_SYSTEM iwlwifi_io16 17TRACE_EVENT(iwlwifi_dev_ioread32,18 TP_PROTO(const struct device *dev, u32 offs, u32 val),19 TP_ARGS(dev, offs, val),20 TP_STRUCT__entry(21 DEV_ENTRY22 __field(u32, offs)23 __field(u32, val)24 ),25 TP_fast_assign(26 DEV_ASSIGN;27 __entry->offs = offs;28 __entry->val = val;29 ),30 TP_printk("[%s] read io[%#x] = %#x",31 __get_str(dev), __entry->offs, __entry->val)32);33 34TRACE_EVENT(iwlwifi_dev_iowrite8,35 TP_PROTO(const struct device *dev, u32 offs, u8 val),36 TP_ARGS(dev, offs, val),37 TP_STRUCT__entry(38 DEV_ENTRY39 __field(u32, offs)40 __field(u8, val)41 ),42 TP_fast_assign(43 DEV_ASSIGN;44 __entry->offs = offs;45 __entry->val = val;46 ),47 TP_printk("[%s] write io[%#x] = %#x)",48 __get_str(dev), __entry->offs, __entry->val)49);50 51TRACE_EVENT(iwlwifi_dev_iowrite32,52 TP_PROTO(const struct device *dev, u32 offs, u32 val),53 TP_ARGS(dev, offs, val),54 TP_STRUCT__entry(55 DEV_ENTRY56 __field(u32, offs)57 __field(u32, val)58 ),59 TP_fast_assign(60 DEV_ASSIGN;61 __entry->offs = offs;62 __entry->val = val;63 ),64 TP_printk("[%s] write io[%#x] = %#x)",65 __get_str(dev), __entry->offs, __entry->val)66);67 68TRACE_EVENT(iwlwifi_dev_iowrite64,69 TP_PROTO(const struct device *dev, u64 offs, u64 val),70 TP_ARGS(dev, offs, val),71 TP_STRUCT__entry(72 DEV_ENTRY73 __field(u64, offs)74 __field(u64, val)75 ),76 TP_fast_assign(77 DEV_ASSIGN;78 __entry->offs = offs;79 __entry->val = val;80 ),81 TP_printk("[%s] write io[%llu] = %llu)",82 __get_str(dev), __entry->offs, __entry->val)83);84 85TRACE_EVENT(iwlwifi_dev_iowrite_prph32,86 TP_PROTO(const struct device *dev, u32 offs, u32 val),87 TP_ARGS(dev, offs, val),88 TP_STRUCT__entry(89 DEV_ENTRY90 __field(u32, offs)91 __field(u32, val)92 ),93 TP_fast_assign(94 DEV_ASSIGN;95 __entry->offs = offs;96 __entry->val = val;97 ),98 TP_printk("[%s] write PRPH[%#x] = %#x)",99 __get_str(dev), __entry->offs, __entry->val)100);101 102TRACE_EVENT(iwlwifi_dev_iowrite_prph64,103 TP_PROTO(const struct device *dev, u64 offs, u64 val),104 TP_ARGS(dev, offs, val),105 TP_STRUCT__entry(106 DEV_ENTRY107 __field(u64, offs)108 __field(u64, val)109 ),110 TP_fast_assign(111 DEV_ASSIGN;112 __entry->offs = offs;113 __entry->val = val;114 ),115 TP_printk("[%s] write PRPH[%llu] = %llu)",116 __get_str(dev), __entry->offs, __entry->val)117);118 119TRACE_EVENT(iwlwifi_dev_ioread_prph32,120 TP_PROTO(const struct device *dev, u32 offs, u32 val),121 TP_ARGS(dev, offs, val),122 TP_STRUCT__entry(123 DEV_ENTRY124 __field(u32, offs)125 __field(u32, val)126 ),127 TP_fast_assign(128 DEV_ASSIGN;129 __entry->offs = offs;130 __entry->val = val;131 ),132 TP_printk("[%s] read PRPH[%#x] = %#x",133 __get_str(dev), __entry->offs, __entry->val)134);135 136TRACE_EVENT(iwlwifi_dev_irq,137 TP_PROTO(const struct device *dev),138 TP_ARGS(dev),139 TP_STRUCT__entry(140 DEV_ENTRY141 ),142 TP_fast_assign(143 DEV_ASSIGN;144 ),145 /* TP_printk("") doesn't compile */146 TP_printk("%d", 0)147);148 149TRACE_EVENT(iwlwifi_dev_irq_msix,150 TP_PROTO(const struct device *dev, struct msix_entry *msix_entry,151 bool defirq, u32 inta_fh, u32 inta_hw),152 TP_ARGS(dev, msix_entry, defirq, inta_fh, inta_hw),153 TP_STRUCT__entry(154 DEV_ENTRY155 __field(u32, entry)156 __field(u8, defirq)157 __field(u32, inta_fh)158 __field(u32, inta_hw)159 ),160 TP_fast_assign(161 DEV_ASSIGN;162 __entry->entry = msix_entry->entry;163 __entry->defirq = defirq;164 __entry->inta_fh = inta_fh;165 __entry->inta_hw = inta_hw;166 ),167 TP_printk("entry:%d defirq:%d fh:0x%x, hw:0x%x",168 __entry->entry, __entry->defirq,169 __entry->inta_fh, __entry->inta_hw)170);171 172TRACE_EVENT(iwlwifi_dev_ict_read,173 TP_PROTO(const struct device *dev, u32 index, u32 value),174 TP_ARGS(dev, index, value),175 TP_STRUCT__entry(176 DEV_ENTRY177 __field(u32, index)178 __field(u32, value)179 ),180 TP_fast_assign(181 DEV_ASSIGN;182 __entry->index = index;183 __entry->value = value;184 ),185 TP_printk("[%s] read ict[%d] = %#.8x",186 __get_str(dev), __entry->index, __entry->value)187);188#endif /* __IWLWIFI_DEVICE_TRACE_IO */189 190#undef TRACE_INCLUDE_PATH191#define TRACE_INCLUDE_PATH .192#undef TRACE_INCLUDE_FILE193#define TRACE_INCLUDE_FILE iwl-devtrace-io194#include <trace/define_trace.h>195