/* SPDX-License-Identifier: GPL-2.0 */ /* * MacBook (Pro) SPI keyboard and touchpad driver * * Copyright (c) 2015-2019 Federico Lorenzi * Copyright (c) 2017-2019 Ronald Tschalär */ #undef TRACE_SYSTEM #define TRACE_SYSTEM applespi #if !defined(_APPLESPI_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) #define _APPLESPI_TRACE_H_ #include #include #include "applespi.h" DECLARE_EVENT_CLASS(dump_message_template, TP_PROTO(enum applespi_evt_type evt_type, enum applespi_pkt_type pkt_type, u8 *buf, size_t len), TP_ARGS(evt_type, pkt_type, buf, len), TP_STRUCT__entry( __field(enum applespi_evt_type, evt_type) __field(enum applespi_pkt_type, pkt_type) __field(size_t, len) __dynamic_array(u8, buf, len) ), TP_fast_assign( __entry->evt_type = evt_type; __entry->pkt_type = pkt_type; __entry->len = len; memcpy(__get_dynamic_array(buf), buf, len); ), TP_printk("%-6s: %s", __print_symbolic(__entry->pkt_type, { PT_READ, "read" }, { PT_WRITE, "write" }, { PT_STATUS, "status" } ), __print_hex(__get_dynamic_array(buf), __entry->len)) ); #define DEFINE_DUMP_MESSAGE_EVENT(name) \ DEFINE_EVENT(dump_message_template, name, \ TP_PROTO(enum applespi_evt_type evt_type, \ enum applespi_pkt_type pkt_type, \ u8 *buf, \ size_t len), \ TP_ARGS(evt_type, pkt_type, buf, len) \ ) DEFINE_DUMP_MESSAGE_EVENT(applespi_tp_ini_cmd); DEFINE_DUMP_MESSAGE_EVENT(applespi_backlight_cmd); DEFINE_DUMP_MESSAGE_EVENT(applespi_caps_lock_cmd); DEFINE_DUMP_MESSAGE_EVENT(applespi_keyboard_data); DEFINE_DUMP_MESSAGE_EVENT(applespi_touchpad_data); DEFINE_DUMP_MESSAGE_EVENT(applespi_unknown_data); DEFINE_DUMP_MESSAGE_EVENT(applespi_bad_crc); TRACE_EVENT(applespi_irq_received, TP_PROTO(enum applespi_evt_type evt_type, enum applespi_pkt_type pkt_type), TP_ARGS(evt_type, pkt_type), TP_STRUCT__entry( __field(enum applespi_evt_type, evt_type) __field(enum applespi_pkt_type, pkt_type) ), TP_fast_assign( __entry->evt_type = evt_type; __entry->pkt_type = pkt_type; ), "\n" ); #endif /* _APPLESPI_TRACE_H_ */ /* This part must be outside protection */ #undef TRACE_INCLUDE_PATH #define TRACE_INCLUDE_PATH ../../drivers/input/keyboard #define TRACE_INCLUDE_FILE applespi_trace #include