linux/drivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h
<<
>>
Prefs
   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 GmbH
   6 *
   7 * Contact Information:
   8 *  Intel Linux Wireless <linuxwifi@intel.com>
   9 * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
  10 *
  11 *****************************************************************************/
  12
  13#if !defined(__IWLWIFI_DEVICE_TRACE_IO) || defined(TRACE_HEADER_MULTI_READ)
  14#define __IWLWIFI_DEVICE_TRACE_IO
  15
  16#include <linux/tracepoint.h>
  17#include <linux/pci.h>
  18
  19#undef TRACE_SYSTEM
  20#define TRACE_SYSTEM iwlwifi_io
  21
  22TRACE_EVENT(iwlwifi_dev_ioread32,
  23        TP_PROTO(const struct device *dev, u32 offs, u32 val),
  24        TP_ARGS(dev, offs, val),
  25        TP_STRUCT__entry(
  26                DEV_ENTRY
  27                __field(u32, offs)
  28                __field(u32, val)
  29        ),
  30        TP_fast_assign(
  31                DEV_ASSIGN;
  32                __entry->offs = offs;
  33                __entry->val = val;
  34        ),
  35        TP_printk("[%s] read io[%#x] = %#x",
  36                  __get_str(dev), __entry->offs, __entry->val)
  37);
  38
  39TRACE_EVENT(iwlwifi_dev_iowrite8,
  40        TP_PROTO(const struct device *dev, u32 offs, u8 val),
  41        TP_ARGS(dev, offs, val),
  42        TP_STRUCT__entry(
  43                DEV_ENTRY
  44                __field(u32, offs)
  45                __field(u8, val)
  46        ),
  47        TP_fast_assign(
  48                DEV_ASSIGN;
  49                __entry->offs = offs;
  50                __entry->val = val;
  51        ),
  52        TP_printk("[%s] write io[%#x] = %#x)",
  53                  __get_str(dev), __entry->offs, __entry->val)
  54);
  55
  56TRACE_EVENT(iwlwifi_dev_iowrite32,
  57        TP_PROTO(const struct device *dev, u32 offs, u32 val),
  58        TP_ARGS(dev, offs, val),
  59        TP_STRUCT__entry(
  60                DEV_ENTRY
  61                __field(u32, offs)
  62                __field(u32, val)
  63        ),
  64        TP_fast_assign(
  65                DEV_ASSIGN;
  66                __entry->offs = offs;
  67                __entry->val = val;
  68        ),
  69        TP_printk("[%s] write io[%#x] = %#x)",
  70                  __get_str(dev), __entry->offs, __entry->val)
  71);
  72
  73TRACE_EVENT(iwlwifi_dev_iowrite64,
  74        TP_PROTO(const struct device *dev, u64 offs, u64 val),
  75        TP_ARGS(dev, offs, val),
  76        TP_STRUCT__entry(
  77                DEV_ENTRY
  78                __field(u64, offs)
  79                __field(u64, val)
  80        ),
  81        TP_fast_assign(
  82                DEV_ASSIGN;
  83                __entry->offs = offs;
  84                __entry->val = val;
  85        ),
  86        TP_printk("[%s] write io[%llu] = %llu)",
  87                  __get_str(dev), __entry->offs, __entry->val)
  88);
  89
  90TRACE_EVENT(iwlwifi_dev_iowrite_prph32,
  91        TP_PROTO(const struct device *dev, u32 offs, u32 val),
  92        TP_ARGS(dev, offs, val),
  93        TP_STRUCT__entry(
  94                DEV_ENTRY
  95                __field(u32, offs)
  96                __field(u32, val)
  97        ),
  98        TP_fast_assign(
  99                DEV_ASSIGN;
 100                __entry->offs = offs;
 101                __entry->val = val;
 102        ),
 103        TP_printk("[%s] write PRPH[%#x] = %#x)",
 104                  __get_str(dev), __entry->offs, __entry->val)
 105);
 106
 107TRACE_EVENT(iwlwifi_dev_iowrite_prph64,
 108        TP_PROTO(const struct device *dev, u64 offs, u64 val),
 109        TP_ARGS(dev, offs, val),
 110        TP_STRUCT__entry(
 111                DEV_ENTRY
 112                __field(u64, offs)
 113                __field(u64, val)
 114        ),
 115        TP_fast_assign(
 116                DEV_ASSIGN;
 117                __entry->offs = offs;
 118                __entry->val = val;
 119        ),
 120        TP_printk("[%s] write PRPH[%llu] = %llu)",
 121                  __get_str(dev), __entry->offs, __entry->val)
 122);
 123
 124TRACE_EVENT(iwlwifi_dev_ioread_prph32,
 125        TP_PROTO(const struct device *dev, u32 offs, u32 val),
 126        TP_ARGS(dev, offs, val),
 127        TP_STRUCT__entry(
 128                DEV_ENTRY
 129                __field(u32, offs)
 130                __field(u32, val)
 131        ),
 132        TP_fast_assign(
 133                DEV_ASSIGN;
 134                __entry->offs = offs;
 135                __entry->val = val;
 136        ),
 137        TP_printk("[%s] read PRPH[%#x] = %#x",
 138                  __get_str(dev), __entry->offs, __entry->val)
 139);
 140
 141TRACE_EVENT(iwlwifi_dev_irq,
 142        TP_PROTO(const struct device *dev),
 143        TP_ARGS(dev),
 144        TP_STRUCT__entry(
 145                DEV_ENTRY
 146        ),
 147        TP_fast_assign(
 148                DEV_ASSIGN;
 149        ),
 150        /* TP_printk("") doesn't compile */
 151        TP_printk("%d", 0)
 152);
 153
 154TRACE_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),
 158        TP_STRUCT__entry(
 159                DEV_ENTRY
 160                __field(u32, entry)
 161                __field(u8, defirq)
 162                __field(u32, inta_fh)
 163                __field(u32, inta_hw)
 164        ),
 165        TP_fast_assign(
 166                DEV_ASSIGN;
 167                __entry->entry = msix_entry->entry;
 168                __entry->defirq = defirq;
 169                __entry->inta_fh = inta_fh;
 170                __entry->inta_hw = inta_hw;
 171        ),
 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)
 175);
 176
 177TRACE_EVENT(iwlwifi_dev_ict_read,
 178        TP_PROTO(const struct device *dev, u32 index, u32 value),
 179        TP_ARGS(dev, index, value),
 180        TP_STRUCT__entry(
 181                DEV_ENTRY
 182                __field(u32, index)
 183                __field(u32, value)
 184        ),
 185        TP_fast_assign(
 186                DEV_ASSIGN;
 187                __entry->index = index;
 188                __entry->value = value;
 189        ),
 190        TP_printk("[%s] read ict[%d] = %#.8x",
 191                  __get_str(dev), __entry->index, __entry->value)
 192);
 193#endif /* __IWLWIFI_DEVICE_TRACE_IO */
 194
 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>
 200