linux/drivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h
<<
>>
Prefs
   1/******************************************************************************
   2 *
   3 * Copyright(c) 2009 - 2014 Intel Corporation. All rights reserved.
   4 * Copyright(c) 2016-2017 Intel Deutschland GmbH
   5 *
   6 * This program is free software; you can redistribute it and/or modify it
   7 * under the terms of version 2 of the GNU General Public License as
   8 * published by the Free Software Foundation.
   9 *
  10 * This program is distributed in the hope that it will be useful, but WITHOUT
  11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  13 * more details.
  14 *
  15 * You should have received a copy of the GNU General Public License along with
  16 * this program; if not, write to the Free Software Foundation, Inc.,
  17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
  18 *
  19 * The full GNU General Public License is included in this distribution in the
  20 * file called LICENSE.
  21 *
  22 * Contact Information:
  23 *  Intel Linux Wireless <linuxwifi@intel.com>
  24 * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
  25 *
  26 *****************************************************************************/
  27
  28#if !defined(__IWLWIFI_DEVICE_TRACE_IO) || defined(TRACE_HEADER_MULTI_READ)
  29#define __IWLWIFI_DEVICE_TRACE_IO
  30
  31#include <linux/tracepoint.h>
  32#include <linux/pci.h>
  33
  34#undef TRACE_SYSTEM
  35#define TRACE_SYSTEM iwlwifi_io
  36
  37TRACE_EVENT(iwlwifi_dev_ioread32,
  38        TP_PROTO(const struct device *dev, u32 offs, u32 val),
  39        TP_ARGS(dev, offs, val),
  40        TP_STRUCT__entry(
  41                DEV_ENTRY
  42                __field(u32, offs)
  43                __field(u32, val)
  44        ),
  45        TP_fast_assign(
  46                DEV_ASSIGN;
  47                __entry->offs = offs;
  48                __entry->val = val;
  49        ),
  50        TP_printk("[%s] read io[%#x] = %#x",
  51                  __get_str(dev), __entry->offs, __entry->val)
  52);
  53
  54TRACE_EVENT(iwlwifi_dev_iowrite8,
  55        TP_PROTO(const struct device *dev, u32 offs, u8 val),
  56        TP_ARGS(dev, offs, val),
  57        TP_STRUCT__entry(
  58                DEV_ENTRY
  59                __field(u32, offs)
  60                __field(u8, val)
  61        ),
  62        TP_fast_assign(
  63                DEV_ASSIGN;
  64                __entry->offs = offs;
  65                __entry->val = val;
  66        ),
  67        TP_printk("[%s] write io[%#x] = %#x)",
  68                  __get_str(dev), __entry->offs, __entry->val)
  69);
  70
  71TRACE_EVENT(iwlwifi_dev_iowrite32,
  72        TP_PROTO(const struct device *dev, u32 offs, u32 val),
  73        TP_ARGS(dev, offs, val),
  74        TP_STRUCT__entry(
  75                DEV_ENTRY
  76                __field(u32, offs)
  77                __field(u32, val)
  78        ),
  79        TP_fast_assign(
  80                DEV_ASSIGN;
  81                __entry->offs = offs;
  82                __entry->val = val;
  83        ),
  84        TP_printk("[%s] write io[%#x] = %#x)",
  85                  __get_str(dev), __entry->offs, __entry->val)
  86);
  87
  88TRACE_EVENT(iwlwifi_dev_iowrite64,
  89        TP_PROTO(const struct device *dev, u64 offs, u64 val),
  90        TP_ARGS(dev, offs, val),
  91        TP_STRUCT__entry(
  92                DEV_ENTRY
  93                __field(u64, offs)
  94                __field(u64, val)
  95        ),
  96        TP_fast_assign(
  97                DEV_ASSIGN;
  98                __entry->offs = offs;
  99                __entry->val = val;
 100        ),
 101        TP_printk("[%s] write io[%llu] = %llu)",
 102                  __get_str(dev), __entry->offs, __entry->val)
 103);
 104
 105TRACE_EVENT(iwlwifi_dev_iowrite_prph32,
 106        TP_PROTO(const struct device *dev, u32 offs, u32 val),
 107        TP_ARGS(dev, offs, val),
 108        TP_STRUCT__entry(
 109                DEV_ENTRY
 110                __field(u32, offs)
 111                __field(u32, val)
 112        ),
 113        TP_fast_assign(
 114                DEV_ASSIGN;
 115                __entry->offs = offs;
 116                __entry->val = val;
 117        ),
 118        TP_printk("[%s] write PRPH[%#x] = %#x)",
 119                  __get_str(dev), __entry->offs, __entry->val)
 120);
 121
 122TRACE_EVENT(iwlwifi_dev_iowrite_prph64,
 123        TP_PROTO(const struct device *dev, u64 offs, u64 val),
 124        TP_ARGS(dev, offs, val),
 125        TP_STRUCT__entry(
 126                DEV_ENTRY
 127                __field(u64, offs)
 128                __field(u64, val)
 129        ),
 130        TP_fast_assign(
 131                DEV_ASSIGN;
 132                __entry->offs = offs;
 133                __entry->val = val;
 134        ),
 135        TP_printk("[%s] write PRPH[%llu] = %llu)",
 136                  __get_str(dev), __entry->offs, __entry->val)
 137);
 138
 139TRACE_EVENT(iwlwifi_dev_ioread_prph32,
 140        TP_PROTO(const struct device *dev, u32 offs, u32 val),
 141        TP_ARGS(dev, offs, val),
 142        TP_STRUCT__entry(
 143                DEV_ENTRY
 144                __field(u32, offs)
 145                __field(u32, val)
 146        ),
 147        TP_fast_assign(
 148                DEV_ASSIGN;
 149                __entry->offs = offs;
 150                __entry->val = val;
 151        ),
 152        TP_printk("[%s] read PRPH[%#x] = %#x",
 153                  __get_str(dev), __entry->offs, __entry->val)
 154);
 155
 156TRACE_EVENT(iwlwifi_dev_irq,
 157        TP_PROTO(const struct device *dev),
 158        TP_ARGS(dev),
 159        TP_STRUCT__entry(
 160                DEV_ENTRY
 161        ),
 162        TP_fast_assign(
 163                DEV_ASSIGN;
 164        ),
 165        /* TP_printk("") doesn't compile */
 166        TP_printk("%d", 0)
 167);
 168
 169TRACE_EVENT(iwlwifi_dev_irq_msix,
 170        TP_PROTO(const struct device *dev, struct msix_entry *msix_entry,
 171                 bool defirq, u32 inta_fh, u32 inta_hw),
 172        TP_ARGS(dev, msix_entry, defirq, inta_fh, inta_hw),
 173        TP_STRUCT__entry(
 174                DEV_ENTRY
 175                __field(u32, entry)
 176                __field(u8, defirq)
 177                __field(u32, inta_fh)
 178                __field(u32, inta_hw)
 179        ),
 180        TP_fast_assign(
 181                DEV_ASSIGN;
 182                __entry->entry = msix_entry->entry;
 183                __entry->defirq = defirq;
 184                __entry->inta_fh = inta_fh;
 185                __entry->inta_hw = inta_hw;
 186        ),
 187        TP_printk("entry:%d defirq:%d fh:0x%x, hw:0x%x",
 188                  __entry->entry, __entry->defirq,
 189                  __entry->inta_fh, __entry->inta_hw)
 190);
 191
 192TRACE_EVENT(iwlwifi_dev_ict_read,
 193        TP_PROTO(const struct device *dev, u32 index, u32 value),
 194        TP_ARGS(dev, index, value),
 195        TP_STRUCT__entry(
 196                DEV_ENTRY
 197                __field(u32, index)
 198                __field(u32, value)
 199        ),
 200        TP_fast_assign(
 201                DEV_ASSIGN;
 202                __entry->index = index;
 203                __entry->value = value;
 204        ),
 205        TP_printk("[%s] read ict[%d] = %#.8x",
 206                  __get_str(dev), __entry->index, __entry->value)
 207);
 208#endif /* __IWLWIFI_DEVICE_TRACE_IO */
 209
 210#undef TRACE_INCLUDE_PATH
 211#define TRACE_INCLUDE_PATH .
 212#undef TRACE_INCLUDE_FILE
 213#define TRACE_INCLUDE_FILE iwl-devtrace-io
 214#include <trace/define_trace.h>
 215