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