162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2015-2016, Intel Corporation. All rights reserved.
462306a36Sopenharmony_ci * Intel Management Engine Interface (Intel MEI) Linux driver
562306a36Sopenharmony_ci */
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci#if !defined(_MEI_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
862306a36Sopenharmony_ci#define _MEI_TRACE_H_
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#include <linux/stringify.h>
1162306a36Sopenharmony_ci#include <linux/types.h>
1262306a36Sopenharmony_ci#include <linux/tracepoint.h>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci#include <linux/device.h>
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci#undef TRACE_SYSTEM
1762306a36Sopenharmony_ci#define TRACE_SYSTEM mei
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ciTRACE_EVENT(mei_reg_read,
2062306a36Sopenharmony_ci	TP_PROTO(const struct device *dev, const char *reg, u32 offs, u32 val),
2162306a36Sopenharmony_ci	TP_ARGS(dev, reg, offs, val),
2262306a36Sopenharmony_ci	TP_STRUCT__entry(
2362306a36Sopenharmony_ci		__string(dev, dev_name(dev))
2462306a36Sopenharmony_ci		__field(const char *, reg)
2562306a36Sopenharmony_ci		__field(u32, offs)
2662306a36Sopenharmony_ci		__field(u32, val)
2762306a36Sopenharmony_ci	),
2862306a36Sopenharmony_ci	TP_fast_assign(
2962306a36Sopenharmony_ci		__assign_str(dev, dev_name(dev));
3062306a36Sopenharmony_ci		__entry->reg  = reg;
3162306a36Sopenharmony_ci		__entry->offs = offs;
3262306a36Sopenharmony_ci		__entry->val = val;
3362306a36Sopenharmony_ci	),
3462306a36Sopenharmony_ci	TP_printk("[%s] read %s:[%#x] = %#x",
3562306a36Sopenharmony_ci		  __get_str(dev), __entry->reg, __entry->offs, __entry->val)
3662306a36Sopenharmony_ci);
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ciTRACE_EVENT(mei_reg_write,
3962306a36Sopenharmony_ci	TP_PROTO(const struct device *dev, const char *reg, u32 offs, u32 val),
4062306a36Sopenharmony_ci	TP_ARGS(dev, reg, offs, val),
4162306a36Sopenharmony_ci	TP_STRUCT__entry(
4262306a36Sopenharmony_ci		__string(dev, dev_name(dev))
4362306a36Sopenharmony_ci		__field(const char *, reg)
4462306a36Sopenharmony_ci		__field(u32, offs)
4562306a36Sopenharmony_ci		__field(u32, val)
4662306a36Sopenharmony_ci	),
4762306a36Sopenharmony_ci	TP_fast_assign(
4862306a36Sopenharmony_ci		__assign_str(dev, dev_name(dev));
4962306a36Sopenharmony_ci		__entry->reg = reg;
5062306a36Sopenharmony_ci		__entry->offs = offs;
5162306a36Sopenharmony_ci		__entry->val = val;
5262306a36Sopenharmony_ci	),
5362306a36Sopenharmony_ci	TP_printk("[%s] write %s[%#x] = %#x",
5462306a36Sopenharmony_ci		  __get_str(dev), __entry->reg,  __entry->offs, __entry->val)
5562306a36Sopenharmony_ci);
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ciTRACE_EVENT(mei_pci_cfg_read,
5862306a36Sopenharmony_ci	TP_PROTO(const struct device *dev, const char *reg, u32 offs, u32 val),
5962306a36Sopenharmony_ci	TP_ARGS(dev, reg, offs, val),
6062306a36Sopenharmony_ci	TP_STRUCT__entry(
6162306a36Sopenharmony_ci		__string(dev, dev_name(dev))
6262306a36Sopenharmony_ci		__field(const char *, reg)
6362306a36Sopenharmony_ci		__field(u32, offs)
6462306a36Sopenharmony_ci		__field(u32, val)
6562306a36Sopenharmony_ci	),
6662306a36Sopenharmony_ci	TP_fast_assign(
6762306a36Sopenharmony_ci		__assign_str(dev, dev_name(dev));
6862306a36Sopenharmony_ci		__entry->reg  = reg;
6962306a36Sopenharmony_ci		__entry->offs = offs;
7062306a36Sopenharmony_ci		__entry->val = val;
7162306a36Sopenharmony_ci	),
7262306a36Sopenharmony_ci	TP_printk("[%s] pci cfg read %s:[%#x] = %#x",
7362306a36Sopenharmony_ci		  __get_str(dev), __entry->reg, __entry->offs, __entry->val)
7462306a36Sopenharmony_ci);
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci#endif /* _MEI_TRACE_H_ */
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci/* This part must be outside protection */
7962306a36Sopenharmony_ci#undef TRACE_INCLUDE_PATH
8062306a36Sopenharmony_ci#undef TRACE_INCLUDE_FILE
8162306a36Sopenharmony_ci#define TRACE_INCLUDE_PATH .
8262306a36Sopenharmony_ci#define TRACE_INCLUDE_FILE mei-trace
8362306a36Sopenharmony_ci#include <trace/define_trace.h>
84