1/* SPDX-License-Identifier: GPL-2.0-or-later */ 2/* Copyright 2022 NXP 3 */ 4 5#undef TRACE_SYSTEM 6#define TRACE_SYSTEM mv88e6xxx 7 8#if !defined(_MV88E6XXX_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) 9#define _MV88E6XXX_TRACE_H 10 11#include <linux/device.h> 12#include <linux/if_ether.h> 13#include <linux/tracepoint.h> 14 15DECLARE_EVENT_CLASS(mv88e6xxx_atu_violation, 16 17 TP_PROTO(const struct device *dev, int spid, u16 portvec, 18 const unsigned char *addr, u16 fid), 19 20 TP_ARGS(dev, spid, portvec, addr, fid), 21 22 TP_STRUCT__entry( 23 __string(name, dev_name(dev)) 24 __field(int, spid) 25 __field(u16, portvec) 26 __array(unsigned char, addr, ETH_ALEN) 27 __field(u16, fid) 28 ), 29 30 TP_fast_assign( 31 __assign_str(name, dev_name(dev)); 32 __entry->spid = spid; 33 __entry->portvec = portvec; 34 memcpy(__entry->addr, addr, ETH_ALEN); 35 __entry->fid = fid; 36 ), 37 38 TP_printk("dev %s spid %d portvec 0x%x addr %pM fid %u", 39 __get_str(name), __entry->spid, __entry->portvec, 40 __entry->addr, __entry->fid) 41); 42 43DEFINE_EVENT(mv88e6xxx_atu_violation, mv88e6xxx_atu_member_violation, 44 TP_PROTO(const struct device *dev, int spid, u16 portvec, 45 const unsigned char *addr, u16 fid), 46 TP_ARGS(dev, spid, portvec, addr, fid)); 47 48DEFINE_EVENT(mv88e6xxx_atu_violation, mv88e6xxx_atu_miss_violation, 49 TP_PROTO(const struct device *dev, int spid, u16 portvec, 50 const unsigned char *addr, u16 fid), 51 TP_ARGS(dev, spid, portvec, addr, fid)); 52 53DEFINE_EVENT(mv88e6xxx_atu_violation, mv88e6xxx_atu_full_violation, 54 TP_PROTO(const struct device *dev, int spid, u16 portvec, 55 const unsigned char *addr, u16 fid), 56 TP_ARGS(dev, spid, portvec, addr, fid)); 57 58DECLARE_EVENT_CLASS(mv88e6xxx_vtu_violation, 59 60 TP_PROTO(const struct device *dev, int spid, u16 vid), 61 62 TP_ARGS(dev, spid, vid), 63 64 TP_STRUCT__entry( 65 __string(name, dev_name(dev)) 66 __field(int, spid) 67 __field(u16, vid) 68 ), 69 70 TP_fast_assign( 71 __assign_str(name, dev_name(dev)); 72 __entry->spid = spid; 73 __entry->vid = vid; 74 ), 75 76 TP_printk("dev %s spid %d vid %u", 77 __get_str(name), __entry->spid, __entry->vid) 78); 79 80DEFINE_EVENT(mv88e6xxx_vtu_violation, mv88e6xxx_vtu_member_violation, 81 TP_PROTO(const struct device *dev, int spid, u16 vid), 82 TP_ARGS(dev, spid, vid)); 83 84DEFINE_EVENT(mv88e6xxx_vtu_violation, mv88e6xxx_vtu_miss_violation, 85 TP_PROTO(const struct device *dev, int spid, u16 vid), 86 TP_ARGS(dev, spid, vid)); 87 88#endif /* _MV88E6XXX_TRACE_H */ 89 90/* We don't want to use include/trace/events */ 91#undef TRACE_INCLUDE_PATH 92#define TRACE_INCLUDE_PATH . 93#undef TRACE_INCLUDE_FILE 94#define TRACE_INCLUDE_FILE trace 95/* This part must be outside protection */ 96#include <trace/define_trace.h> 97