18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Trace events for the ChromeOS Embedded Controller 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright 2019 Google LLC. 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#undef TRACE_SYSTEM 98c2ecf20Sopenharmony_ci#define TRACE_SYSTEM cros_ec 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#if !defined(_CROS_EC_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) 128c2ecf20Sopenharmony_ci#define _CROS_EC_TRACE_H_ 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci#include <linux/bits.h> 158c2ecf20Sopenharmony_ci#include <linux/types.h> 168c2ecf20Sopenharmony_ci#include <linux/platform_data/cros_ec_commands.h> 178c2ecf20Sopenharmony_ci#include <linux/platform_data/cros_ec_proto.h> 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci#include <linux/tracepoint.h> 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ciTRACE_EVENT(cros_ec_request_start, 228c2ecf20Sopenharmony_ci TP_PROTO(struct cros_ec_command *cmd), 238c2ecf20Sopenharmony_ci TP_ARGS(cmd), 248c2ecf20Sopenharmony_ci TP_STRUCT__entry( 258c2ecf20Sopenharmony_ci __field(uint32_t, version) 268c2ecf20Sopenharmony_ci __field(uint32_t, offset) 278c2ecf20Sopenharmony_ci __field(uint32_t, command) 288c2ecf20Sopenharmony_ci __field(uint32_t, outsize) 298c2ecf20Sopenharmony_ci __field(uint32_t, insize) 308c2ecf20Sopenharmony_ci ), 318c2ecf20Sopenharmony_ci TP_fast_assign( 328c2ecf20Sopenharmony_ci __entry->version = cmd->version; 338c2ecf20Sopenharmony_ci __entry->offset = cmd->command / EC_CMD_PASSTHRU_OFFSET(1); 348c2ecf20Sopenharmony_ci __entry->command = cmd->command % EC_CMD_PASSTHRU_OFFSET(1); 358c2ecf20Sopenharmony_ci __entry->outsize = cmd->outsize; 368c2ecf20Sopenharmony_ci __entry->insize = cmd->insize; 378c2ecf20Sopenharmony_ci ), 388c2ecf20Sopenharmony_ci TP_printk("version: %u, offset: %d, command: %s, outsize: %u, insize: %u", 398c2ecf20Sopenharmony_ci __entry->version, __entry->offset, 408c2ecf20Sopenharmony_ci __print_symbolic(__entry->command, EC_CMDS), 418c2ecf20Sopenharmony_ci __entry->outsize, __entry->insize) 428c2ecf20Sopenharmony_ci); 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ciTRACE_EVENT(cros_ec_request_done, 458c2ecf20Sopenharmony_ci TP_PROTO(struct cros_ec_command *cmd, int retval), 468c2ecf20Sopenharmony_ci TP_ARGS(cmd, retval), 478c2ecf20Sopenharmony_ci TP_STRUCT__entry( 488c2ecf20Sopenharmony_ci __field(uint32_t, version) 498c2ecf20Sopenharmony_ci __field(uint32_t, offset) 508c2ecf20Sopenharmony_ci __field(uint32_t, command) 518c2ecf20Sopenharmony_ci __field(uint32_t, outsize) 528c2ecf20Sopenharmony_ci __field(uint32_t, insize) 538c2ecf20Sopenharmony_ci __field(uint32_t, result) 548c2ecf20Sopenharmony_ci __field(int, retval) 558c2ecf20Sopenharmony_ci ), 568c2ecf20Sopenharmony_ci TP_fast_assign( 578c2ecf20Sopenharmony_ci __entry->version = cmd->version; 588c2ecf20Sopenharmony_ci __entry->offset = cmd->command / EC_CMD_PASSTHRU_OFFSET(1); 598c2ecf20Sopenharmony_ci __entry->command = cmd->command % EC_CMD_PASSTHRU_OFFSET(1); 608c2ecf20Sopenharmony_ci __entry->outsize = cmd->outsize; 618c2ecf20Sopenharmony_ci __entry->insize = cmd->insize; 628c2ecf20Sopenharmony_ci __entry->result = cmd->result; 638c2ecf20Sopenharmony_ci __entry->retval = retval; 648c2ecf20Sopenharmony_ci ), 658c2ecf20Sopenharmony_ci TP_printk("version: %u, offset: %d, command: %s, outsize: %u, insize: %u, ec result: %s, retval: %u", 668c2ecf20Sopenharmony_ci __entry->version, __entry->offset, 678c2ecf20Sopenharmony_ci __print_symbolic(__entry->command, EC_CMDS), 688c2ecf20Sopenharmony_ci __entry->outsize, __entry->insize, 698c2ecf20Sopenharmony_ci __print_symbolic(__entry->result, EC_RESULT), 708c2ecf20Sopenharmony_ci __entry->retval) 718c2ecf20Sopenharmony_ci); 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ci#endif /* _CROS_EC_TRACE_H_ */ 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_ci/* this part must be outside header guard */ 768c2ecf20Sopenharmony_ci 778c2ecf20Sopenharmony_ci#undef TRACE_INCLUDE_PATH 788c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_PATH . 798c2ecf20Sopenharmony_ci 808c2ecf20Sopenharmony_ci#undef TRACE_INCLUDE_FILE 818c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_FILE cros_ec_trace 828c2ecf20Sopenharmony_ci 838c2ecf20Sopenharmony_ci#include <trace/define_trace.h> 84