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