linux/include/trace/events/clk.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/*
   3 * Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
   4 */
   5#undef TRACE_SYSTEM
   6#define TRACE_SYSTEM clk
   7
   8#if !defined(_TRACE_CLK_H) || defined(TRACE_HEADER_MULTI_READ)
   9#define _TRACE_CLK_H
  10
  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, core->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, core->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, core->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, core->name);
 178                __assign_str(pname, parent ? parent->name : "none");
 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, core->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, core->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
 267#endif /* _TRACE_CLK_H */
 268
 269/* This part must be outside protection */
 270#include <trace/define_trace.h>
 271