158a2109fSRaul E Rangel /* SPDX-License-Identifier: GPL-2.0 */ 258a2109fSRaul E Rangel /* 358a2109fSRaul E Rangel * Trace events for the ChromeOS Embedded Controller 458a2109fSRaul E Rangel * 558a2109fSRaul E Rangel * Copyright 2019 Google LLC. 658a2109fSRaul E Rangel */ 758a2109fSRaul E Rangel 858a2109fSRaul E Rangel #undef TRACE_SYSTEM 958a2109fSRaul E Rangel #define TRACE_SYSTEM cros_ec 1058a2109fSRaul E Rangel 1158a2109fSRaul E Rangel #if !defined(_CROS_EC_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) 1258a2109fSRaul E Rangel #define _CROS_EC_TRACE_H_ 1358a2109fSRaul E Rangel 14840d9f13SEnric Balletbo i Serra #include <linux/bits.h> 1558a2109fSRaul E Rangel #include <linux/types.h> 16840d9f13SEnric Balletbo i Serra #include <linux/platform_data/cros_ec_commands.h> 17840d9f13SEnric Balletbo i Serra #include <linux/platform_data/cros_ec_proto.h> 1858a2109fSRaul E Rangel 1958a2109fSRaul E Rangel #include <linux/tracepoint.h> 2058a2109fSRaul E Rangel 21205c9326SRaul E Rangel TRACE_EVENT(cros_ec_request_start, 2258a2109fSRaul E Rangel TP_PROTO(struct cros_ec_command *cmd), 2358a2109fSRaul E Rangel TP_ARGS(cmd), 2458a2109fSRaul E Rangel TP_STRUCT__entry( 2558a2109fSRaul E Rangel __field(uint32_t, version) 2681431824SGwendal Grignou __field(uint32_t, offset) 2758a2109fSRaul E Rangel __field(uint32_t, command) 2881431824SGwendal Grignou __field(uint32_t, outsize) 2981431824SGwendal Grignou __field(uint32_t, insize) 3058a2109fSRaul E Rangel ), 3158a2109fSRaul E Rangel TP_fast_assign( 3258a2109fSRaul E Rangel __entry->version = cmd->version; 33*3db0c9e5STzung-Bi Shih __entry->offset = cmd->command / EC_CMD_PASSTHRU_OFFSET(CROS_EC_DEV_PD_INDEX); 34*3db0c9e5STzung-Bi Shih __entry->command = cmd->command % EC_CMD_PASSTHRU_OFFSET(CROS_EC_DEV_PD_INDEX); 3581431824SGwendal Grignou __entry->outsize = cmd->outsize; 3681431824SGwendal Grignou __entry->insize = cmd->insize; 3758a2109fSRaul E Rangel ), 3881431824SGwendal Grignou TP_printk("version: %u, offset: %d, command: %s, outsize: %u, insize: %u", 3981431824SGwendal Grignou __entry->version, __entry->offset, 4081431824SGwendal Grignou __print_symbolic(__entry->command, EC_CMDS), 4181431824SGwendal Grignou __entry->outsize, __entry->insize) 4258a2109fSRaul E Rangel ); 4358a2109fSRaul E Rangel 44205c9326SRaul E Rangel TRACE_EVENT(cros_ec_request_done, 45205c9326SRaul E Rangel TP_PROTO(struct cros_ec_command *cmd, int retval), 46205c9326SRaul E Rangel TP_ARGS(cmd, retval), 47205c9326SRaul E Rangel TP_STRUCT__entry( 48205c9326SRaul E Rangel __field(uint32_t, version) 4981431824SGwendal Grignou __field(uint32_t, offset) 50205c9326SRaul E Rangel __field(uint32_t, command) 5181431824SGwendal Grignou __field(uint32_t, outsize) 5281431824SGwendal Grignou __field(uint32_t, insize) 53205c9326SRaul E Rangel __field(uint32_t, result) 54205c9326SRaul E Rangel __field(int, retval) 55205c9326SRaul E Rangel ), 56205c9326SRaul E Rangel TP_fast_assign( 57205c9326SRaul E Rangel __entry->version = cmd->version; 58*3db0c9e5STzung-Bi Shih __entry->offset = cmd->command / EC_CMD_PASSTHRU_OFFSET(CROS_EC_DEV_PD_INDEX); 59*3db0c9e5STzung-Bi Shih __entry->command = cmd->command % EC_CMD_PASSTHRU_OFFSET(CROS_EC_DEV_PD_INDEX); 6081431824SGwendal Grignou __entry->outsize = cmd->outsize; 6181431824SGwendal Grignou __entry->insize = cmd->insize; 62205c9326SRaul E Rangel __entry->result = cmd->result; 63205c9326SRaul E Rangel __entry->retval = retval; 64205c9326SRaul E Rangel ), 6581431824SGwendal Grignou TP_printk("version: %u, offset: %d, command: %s, outsize: %u, insize: %u, ec result: %s, retval: %u", 6681431824SGwendal Grignou __entry->version, __entry->offset, 67205c9326SRaul E Rangel __print_symbolic(__entry->command, EC_CMDS), 6881431824SGwendal Grignou __entry->outsize, __entry->insize, 69205c9326SRaul E Rangel __print_symbolic(__entry->result, EC_RESULT), 70205c9326SRaul E Rangel __entry->retval) 7158a2109fSRaul E Rangel ); 7258a2109fSRaul E Rangel 7358a2109fSRaul E Rangel #endif /* _CROS_EC_TRACE_H_ */ 7458a2109fSRaul E Rangel 7558a2109fSRaul E Rangel /* this part must be outside header guard */ 7658a2109fSRaul E Rangel 7758a2109fSRaul E Rangel #undef TRACE_INCLUDE_PATH 7858a2109fSRaul E Rangel #define TRACE_INCLUDE_PATH . 7958a2109fSRaul E Rangel 8058a2109fSRaul E Rangel #undef TRACE_INCLUDE_FILE 8158a2109fSRaul E Rangel #define TRACE_INCLUDE_FILE cros_ec_trace 8258a2109fSRaul E Rangel 8358a2109fSRaul E Rangel #include <trace/define_trace.h> 84