1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #undef TRACE_SYSTEM 3 #define TRACE_SYSTEM mdio 4 5 #if !defined(_TRACE_MDIO_H) || defined(TRACE_HEADER_MULTI_READ) 6 #define _TRACE_MDIO_H 7 8 #include <linux/tracepoint.h> 9 10 TRACE_EVENT_CONDITION(mdio_access, 11 12 TP_PROTO(struct mii_bus *bus, char read, 13 u8 addr, unsigned regnum, u16 val, int err), 14 15 TP_ARGS(bus, read, addr, regnum, val, err), 16 17 TP_CONDITION(err >= 0), 18 19 TP_STRUCT__entry( 20 __array(char, busid, MII_BUS_ID_SIZE) 21 __field(char, read) 22 __field(u8, addr) 23 __field(u16, val) 24 __field(unsigned, regnum) 25 ), 26 27 TP_fast_assign( 28 strscpy(__entry->busid, bus->id, MII_BUS_ID_SIZE); 29 __entry->read = read; 30 __entry->addr = addr; 31 __entry->regnum = regnum; 32 __entry->val = val; 33 ), 34 35 TP_printk("%s %-5s phy:0x%02hhx reg:0x%02x val:0x%04hx", 36 __entry->busid, __entry->read ? "read" : "write", 37 __entry->addr, __entry->regnum, __entry->val) 38 ); 39 40 #endif /* if !defined(_TRACE_MDIO_H) || defined(TRACE_HEADER_MULTI_READ) */ 41 42 /* This part must be outside protection */ 43 #include <trace/define_trace.h> 44