1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * MacBook (Pro) SPI keyboard and touchpad driver 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (c) 2015-2019 Federico Lorenzi 6*4882a593Smuzhiyun * Copyright (c) 2017-2019 Ronald Tschalär 7*4882a593Smuzhiyun */ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #undef TRACE_SYSTEM 10*4882a593Smuzhiyun #define TRACE_SYSTEM applespi 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun #if !defined(_APPLESPI_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) 13*4882a593Smuzhiyun #define _APPLESPI_TRACE_H_ 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun #include <linux/types.h> 16*4882a593Smuzhiyun #include <linux/tracepoint.h> 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun #include "applespi.h" 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun DECLARE_EVENT_CLASS(dump_message_template, 21*4882a593Smuzhiyun TP_PROTO(enum applespi_evt_type evt_type, 22*4882a593Smuzhiyun enum applespi_pkt_type pkt_type, 23*4882a593Smuzhiyun u8 *buf, 24*4882a593Smuzhiyun size_t len), 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun TP_ARGS(evt_type, pkt_type, buf, len), 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun TP_STRUCT__entry( 29*4882a593Smuzhiyun __field(enum applespi_evt_type, evt_type) 30*4882a593Smuzhiyun __field(enum applespi_pkt_type, pkt_type) 31*4882a593Smuzhiyun __field(size_t, len) 32*4882a593Smuzhiyun __dynamic_array(u8, buf, len) 33*4882a593Smuzhiyun ), 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun TP_fast_assign( 36*4882a593Smuzhiyun __entry->evt_type = evt_type; 37*4882a593Smuzhiyun __entry->pkt_type = pkt_type; 38*4882a593Smuzhiyun __entry->len = len; 39*4882a593Smuzhiyun memcpy(__get_dynamic_array(buf), buf, len); 40*4882a593Smuzhiyun ), 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun TP_printk("%-6s: %s", 43*4882a593Smuzhiyun __print_symbolic(__entry->pkt_type, 44*4882a593Smuzhiyun { PT_READ, "read" }, 45*4882a593Smuzhiyun { PT_WRITE, "write" }, 46*4882a593Smuzhiyun { PT_STATUS, "status" } 47*4882a593Smuzhiyun ), 48*4882a593Smuzhiyun __print_hex(__get_dynamic_array(buf), __entry->len)) 49*4882a593Smuzhiyun ); 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun #define DEFINE_DUMP_MESSAGE_EVENT(name) \ 52*4882a593Smuzhiyun DEFINE_EVENT(dump_message_template, name, \ 53*4882a593Smuzhiyun TP_PROTO(enum applespi_evt_type evt_type, \ 54*4882a593Smuzhiyun enum applespi_pkt_type pkt_type, \ 55*4882a593Smuzhiyun u8 *buf, \ 56*4882a593Smuzhiyun size_t len), \ 57*4882a593Smuzhiyun TP_ARGS(evt_type, pkt_type, buf, len) \ 58*4882a593Smuzhiyun ) 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun DEFINE_DUMP_MESSAGE_EVENT(applespi_tp_ini_cmd); 61*4882a593Smuzhiyun DEFINE_DUMP_MESSAGE_EVENT(applespi_backlight_cmd); 62*4882a593Smuzhiyun DEFINE_DUMP_MESSAGE_EVENT(applespi_caps_lock_cmd); 63*4882a593Smuzhiyun DEFINE_DUMP_MESSAGE_EVENT(applespi_keyboard_data); 64*4882a593Smuzhiyun DEFINE_DUMP_MESSAGE_EVENT(applespi_touchpad_data); 65*4882a593Smuzhiyun DEFINE_DUMP_MESSAGE_EVENT(applespi_unknown_data); 66*4882a593Smuzhiyun DEFINE_DUMP_MESSAGE_EVENT(applespi_bad_crc); 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun TRACE_EVENT(applespi_irq_received, 69*4882a593Smuzhiyun TP_PROTO(enum applespi_evt_type evt_type, 70*4882a593Smuzhiyun enum applespi_pkt_type pkt_type), 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun TP_ARGS(evt_type, pkt_type), 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun TP_STRUCT__entry( 75*4882a593Smuzhiyun __field(enum applespi_evt_type, evt_type) 76*4882a593Smuzhiyun __field(enum applespi_pkt_type, pkt_type) 77*4882a593Smuzhiyun ), 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun TP_fast_assign( 80*4882a593Smuzhiyun __entry->evt_type = evt_type; 81*4882a593Smuzhiyun __entry->pkt_type = pkt_type; 82*4882a593Smuzhiyun ), 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun "\n" 85*4882a593Smuzhiyun ); 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun #endif /* _APPLESPI_TRACE_H_ */ 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun /* This part must be outside protection */ 90*4882a593Smuzhiyun #undef TRACE_INCLUDE_PATH 91*4882a593Smuzhiyun #define TRACE_INCLUDE_PATH ../../drivers/input/keyboard 92*4882a593Smuzhiyun #define TRACE_INCLUDE_FILE applespi_trace 93*4882a593Smuzhiyun #include <trace/define_trace.h> 94