1038b1a05SRonald Tschalär /* SPDX-License-Identifier: GPL-2.0 */ 2038b1a05SRonald Tschalär /* 3038b1a05SRonald Tschalär * MacBook (Pro) SPI keyboard and touchpad driver 4038b1a05SRonald Tschalär * 5038b1a05SRonald Tschalär * Copyright (c) 2015-2019 Federico Lorenzi 6038b1a05SRonald Tschalär * Copyright (c) 2017-2019 Ronald Tschalär 7038b1a05SRonald Tschalär */ 8038b1a05SRonald Tschalär 9038b1a05SRonald Tschalär #undef TRACE_SYSTEM 10038b1a05SRonald Tschalär #define TRACE_SYSTEM applespi 11038b1a05SRonald Tschalär 12038b1a05SRonald Tschalär #if !defined(_APPLESPI_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) 13038b1a05SRonald Tschalär #define _APPLESPI_TRACE_H_ 14038b1a05SRonald Tschalär 15038b1a05SRonald Tschalär #include <linux/types.h> 16038b1a05SRonald Tschalär #include <linux/tracepoint.h> 17038b1a05SRonald Tschalär 18038b1a05SRonald Tschalär #include "applespi.h" 19038b1a05SRonald Tschalär 20038b1a05SRonald Tschalär DECLARE_EVENT_CLASS(dump_message_template, 21038b1a05SRonald Tschalär TP_PROTO(enum applespi_evt_type evt_type, 22038b1a05SRonald Tschalär enum applespi_pkt_type pkt_type, 23038b1a05SRonald Tschalär u8 *buf, 24038b1a05SRonald Tschalär size_t len), 25038b1a05SRonald Tschalär 26038b1a05SRonald Tschalär TP_ARGS(evt_type, pkt_type, buf, len), 27038b1a05SRonald Tschalär 28038b1a05SRonald Tschalär TP_STRUCT__entry( 29038b1a05SRonald Tschalär __field(enum applespi_evt_type, evt_type) 30038b1a05SRonald Tschalär __field(enum applespi_pkt_type, pkt_type) 31038b1a05SRonald Tschalär __field(size_t, len) 32038b1a05SRonald Tschalär __dynamic_array(u8, buf, len) 33038b1a05SRonald Tschalär ), 34038b1a05SRonald Tschalär 35038b1a05SRonald Tschalär TP_fast_assign( 36038b1a05SRonald Tschalär __entry->evt_type = evt_type; 37038b1a05SRonald Tschalär __entry->pkt_type = pkt_type; 38038b1a05SRonald Tschalär __entry->len = len; 39038b1a05SRonald Tschalär memcpy(__get_dynamic_array(buf), buf, len); 40038b1a05SRonald Tschalär ), 41038b1a05SRonald Tschalär 42038b1a05SRonald Tschalär TP_printk("%-6s: %s", 43038b1a05SRonald Tschalär __print_symbolic(__entry->pkt_type, 44038b1a05SRonald Tschalär { PT_READ, "read" }, 45038b1a05SRonald Tschalär { PT_WRITE, "write" }, 46038b1a05SRonald Tschalär { PT_STATUS, "status" } 47038b1a05SRonald Tschalär ), 48038b1a05SRonald Tschalär __print_hex(__get_dynamic_array(buf), __entry->len)) 49038b1a05SRonald Tschalär ); 50038b1a05SRonald Tschalär 51038b1a05SRonald Tschalär #define DEFINE_DUMP_MESSAGE_EVENT(name) \ 52038b1a05SRonald Tschalär DEFINE_EVENT(dump_message_template, name, \ 53038b1a05SRonald Tschalär TP_PROTO(enum applespi_evt_type evt_type, \ 54038b1a05SRonald Tschalär enum applespi_pkt_type pkt_type, \ 55038b1a05SRonald Tschalär u8 *buf, \ 56038b1a05SRonald Tschalär size_t len), \ 57038b1a05SRonald Tschalär TP_ARGS(evt_type, pkt_type, buf, len) \ 58038b1a05SRonald Tschalär ) 59038b1a05SRonald Tschalär 60038b1a05SRonald Tschalär DEFINE_DUMP_MESSAGE_EVENT(applespi_tp_ini_cmd); 61038b1a05SRonald Tschalär DEFINE_DUMP_MESSAGE_EVENT(applespi_backlight_cmd); 62038b1a05SRonald Tschalär DEFINE_DUMP_MESSAGE_EVENT(applespi_caps_lock_cmd); 63038b1a05SRonald Tschalär DEFINE_DUMP_MESSAGE_EVENT(applespi_keyboard_data); 64038b1a05SRonald Tschalär DEFINE_DUMP_MESSAGE_EVENT(applespi_touchpad_data); 65038b1a05SRonald Tschalär DEFINE_DUMP_MESSAGE_EVENT(applespi_unknown_data); 66038b1a05SRonald Tschalär DEFINE_DUMP_MESSAGE_EVENT(applespi_bad_crc); 67038b1a05SRonald Tschalär 68038b1a05SRonald Tschalär TRACE_EVENT(applespi_irq_received, 69038b1a05SRonald Tschalär TP_PROTO(enum applespi_evt_type evt_type, 70038b1a05SRonald Tschalär enum applespi_pkt_type pkt_type), 71038b1a05SRonald Tschalär 72038b1a05SRonald Tschalär TP_ARGS(evt_type, pkt_type), 73038b1a05SRonald Tschalär 74038b1a05SRonald Tschalär TP_STRUCT__entry( 75038b1a05SRonald Tschalär __field(enum applespi_evt_type, evt_type) 76038b1a05SRonald Tschalär __field(enum applespi_pkt_type, pkt_type) 77038b1a05SRonald Tschalär ), 78038b1a05SRonald Tschalär 79038b1a05SRonald Tschalär TP_fast_assign( 80038b1a05SRonald Tschalär __entry->evt_type = evt_type; 81038b1a05SRonald Tschalär __entry->pkt_type = pkt_type; 82038b1a05SRonald Tschalär ), 83038b1a05SRonald Tschalär 84038b1a05SRonald Tschalär "\n" 85038b1a05SRonald Tschalär ); 86038b1a05SRonald Tschalär 87038b1a05SRonald Tschalär #endif /* _APPLESPI_TRACE_H_ */ 88038b1a05SRonald Tschalär 89038b1a05SRonald Tschalär /* This part must be outside protection */ 90038b1a05SRonald Tschalär #undef TRACE_INCLUDE_PATH 91038b1a05SRonald Tschalär #define TRACE_INCLUDE_PATH ../../drivers/input/keyboard 92038b1a05SRonald Tschalär #define TRACE_INCLUDE_FILE applespi_trace 93038b1a05SRonald Tschalär #include <trace/define_trace.h> 94