brintos

brintos / linux-shallow public Read only

0
0
Text · 6.0 KiB · 759f737 Raw
314 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.4 */5#undef TRACE_SYSTEM6#define TRACE_SYSTEM clk7 8#if !defined(_TRACE_CLK_H) || defined(TRACE_HEADER_MULTI_READ)9#define _TRACE_CLK_H10 11#include <linux/tracepoint.h>12 13struct clk_core;14 15DECLARE_EVENT_CLASS(clk,16 17	TP_PROTO(struct clk_core *core),18 19	TP_ARGS(core),20 21	TP_STRUCT__entry(22		__string(        name,           core->name       )23	),24 25	TP_fast_assign(26		__assign_str(name);27	),28 29	TP_printk("%s", __get_str(name))30);31 32DEFINE_EVENT(clk, clk_enable,33 34	TP_PROTO(struct clk_core *core),35 36	TP_ARGS(core)37);38 39DEFINE_EVENT(clk, clk_enable_complete,40 41	TP_PROTO(struct clk_core *core),42 43	TP_ARGS(core)44);45 46DEFINE_EVENT(clk, clk_disable,47 48	TP_PROTO(struct clk_core *core),49 50	TP_ARGS(core)51);52 53DEFINE_EVENT(clk, clk_disable_complete,54 55	TP_PROTO(struct clk_core *core),56 57	TP_ARGS(core)58);59 60DEFINE_EVENT(clk, clk_prepare,61 62	TP_PROTO(struct clk_core *core),63 64	TP_ARGS(core)65);66 67DEFINE_EVENT(clk, clk_prepare_complete,68 69	TP_PROTO(struct clk_core *core),70 71	TP_ARGS(core)72);73 74DEFINE_EVENT(clk, clk_unprepare,75 76	TP_PROTO(struct clk_core *core),77 78	TP_ARGS(core)79);80 81DEFINE_EVENT(clk, clk_unprepare_complete,82 83	TP_PROTO(struct clk_core *core),84 85	TP_ARGS(core)86);87 88DECLARE_EVENT_CLASS(clk_rate,89 90	TP_PROTO(struct clk_core *core, unsigned long rate),91 92	TP_ARGS(core, rate),93 94	TP_STRUCT__entry(95		__string(        name,           core->name                )96		__field(unsigned long,           rate                      )97	),98 99	TP_fast_assign(100		__assign_str(name);101		__entry->rate = rate;102	),103 104	TP_printk("%s %lu", __get_str(name), (unsigned long)__entry->rate)105);106 107DEFINE_EVENT(clk_rate, clk_set_rate,108 109	TP_PROTO(struct clk_core *core, unsigned long rate),110 111	TP_ARGS(core, rate)112);113 114DEFINE_EVENT(clk_rate, clk_set_rate_complete,115 116	TP_PROTO(struct clk_core *core, unsigned long rate),117 118	TP_ARGS(core, rate)119);120 121DEFINE_EVENT(clk_rate, clk_set_min_rate,122 123	TP_PROTO(struct clk_core *core, unsigned long rate),124 125	TP_ARGS(core, rate)126);127 128DEFINE_EVENT(clk_rate, clk_set_max_rate,129 130	TP_PROTO(struct clk_core *core, unsigned long rate),131 132	TP_ARGS(core, rate)133);134 135DECLARE_EVENT_CLASS(clk_rate_range,136 137	TP_PROTO(struct clk_core *core, unsigned long min, unsigned long max),138 139	TP_ARGS(core, min, max),140 141	TP_STRUCT__entry(142		__string(        name,           core->name                )143		__field(unsigned long,           min                       )144		__field(unsigned long,           max                       )145	),146 147	TP_fast_assign(148		__assign_str(name);149		__entry->min = min;150		__entry->max = max;151	),152 153	TP_printk("%s min %lu max %lu", __get_str(name),154		  (unsigned long)__entry->min,155		  (unsigned long)__entry->max)156);157 158DEFINE_EVENT(clk_rate_range, clk_set_rate_range,159 160	TP_PROTO(struct clk_core *core, unsigned long min, unsigned long max),161 162	TP_ARGS(core, min, max)163);164 165DECLARE_EVENT_CLASS(clk_parent,166 167	TP_PROTO(struct clk_core *core, struct clk_core *parent),168 169	TP_ARGS(core, parent),170 171	TP_STRUCT__entry(172		__string(        name,           core->name                )173		__string(        pname, parent ? parent->name : "none"     )174	),175 176	TP_fast_assign(177		__assign_str(name);178		__assign_str(pname);179	),180 181	TP_printk("%s %s", __get_str(name), __get_str(pname))182);183 184DEFINE_EVENT(clk_parent, clk_set_parent,185 186	TP_PROTO(struct clk_core *core, struct clk_core *parent),187 188	TP_ARGS(core, parent)189);190 191DEFINE_EVENT(clk_parent, clk_set_parent_complete,192 193	TP_PROTO(struct clk_core *core, struct clk_core *parent),194 195	TP_ARGS(core, parent)196);197 198DECLARE_EVENT_CLASS(clk_phase,199 200	TP_PROTO(struct clk_core *core, int phase),201 202	TP_ARGS(core, phase),203 204	TP_STRUCT__entry(205		__string(        name,           core->name                )206		__field(	  int,           phase                     )207	),208 209	TP_fast_assign(210		__assign_str(name);211		__entry->phase = phase;212	),213 214	TP_printk("%s %d", __get_str(name), (int)__entry->phase)215);216 217DEFINE_EVENT(clk_phase, clk_set_phase,218 219	TP_PROTO(struct clk_core *core, int phase),220 221	TP_ARGS(core, phase)222);223 224DEFINE_EVENT(clk_phase, clk_set_phase_complete,225 226	TP_PROTO(struct clk_core *core, int phase),227 228	TP_ARGS(core, phase)229);230 231DECLARE_EVENT_CLASS(clk_duty_cycle,232 233	TP_PROTO(struct clk_core *core, struct clk_duty *duty),234 235	TP_ARGS(core, duty),236 237	TP_STRUCT__entry(238		__string(        name,           core->name              )239		__field( unsigned int,           num                     )240		__field( unsigned int,           den                     )241	),242 243	TP_fast_assign(244		__assign_str(name);245		__entry->num = duty->num;246		__entry->den = duty->den;247	),248 249	TP_printk("%s %u/%u", __get_str(name), (unsigned int)__entry->num,250		  (unsigned int)__entry->den)251);252 253DEFINE_EVENT(clk_duty_cycle, clk_set_duty_cycle,254 255	TP_PROTO(struct clk_core *core, struct clk_duty *duty),256 257	TP_ARGS(core, duty)258);259 260DEFINE_EVENT(clk_duty_cycle, clk_set_duty_cycle_complete,261 262	TP_PROTO(struct clk_core *core, struct clk_duty *duty),263 264	TP_ARGS(core, duty)265);266 267DECLARE_EVENT_CLASS(clk_rate_request,268 269	TP_PROTO(struct clk_rate_request *req),270 271	TP_ARGS(req),272 273	TP_STRUCT__entry(274		__string(        name, req->core ? req->core->name : "none")275		__string(       pname, req->best_parent_hw ? clk_hw_get_name(req->best_parent_hw) : "none" )276		__field(unsigned long,           min                       )277		__field(unsigned long,           max                       )278		__field(unsigned long,           prate                     )279	),280 281	TP_fast_assign(282		__assign_str(name);283		__assign_str(pname);284		__entry->min = req->min_rate;285		__entry->max = req->max_rate;286		__entry->prate = req->best_parent_rate;287	),288 289	TP_printk("%s min %lu max %lu, parent %s (%lu)", __get_str(name),290		  (unsigned long)__entry->min,291		  (unsigned long)__entry->max,292		  __get_str(pname),293		  (unsigned long)__entry->prate)294);295 296DEFINE_EVENT(clk_rate_request, clk_rate_request_start,297 298	TP_PROTO(struct clk_rate_request *req),299 300	TP_ARGS(req)301);302 303DEFINE_EVENT(clk_rate_request, clk_rate_request_done,304 305	TP_PROTO(struct clk_rate_request *req),306 307	TP_ARGS(req)308);309 310#endif /* _TRACE_CLK_H */311 312/* This part must be outside protection */313#include <trace/define_trace.h>314