• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
2 /*
3  *
4  * (C) COPYRIGHT 2010-2021 ARM Limited. All rights reserved.
5  *
6  * This program is free software and is provided to you under the terms of the
7  * GNU General Public License version 2 as published by the Free Software
8  * Foundation, and any use by you of this program is subject to the terms
9  * of such GNU license.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, you can access it online at
18  * http://www.gnu.org/licenses/gpl-2.0.html.
19  *
20  */
21 
22 /*
23  * THIS FILE IS AUTOGENERATED BY mali_trace_generator.py.
24  * DO NOT EDIT.
25  */
26 
27 #include "mali_kbase_tracepoints.h"
28 #include "mali_kbase_tlstream.h"
29 #include "mali_kbase_tl_serialize.h"
30 
31 /* clang-format off */
32 
33 /* Message ids of trace events that are recorded in the timeline stream. */
34 enum tl_msg_id_obj {
35 	KBASE_TL_NEW_CTX,
36 	KBASE_TL_NEW_GPU,
37 	KBASE_TL_NEW_LPU,
38 	KBASE_TL_NEW_ATOM,
39 	KBASE_TL_NEW_AS,
40 	KBASE_TL_DEL_CTX,
41 	KBASE_TL_DEL_ATOM,
42 	KBASE_TL_LIFELINK_LPU_GPU,
43 	KBASE_TL_LIFELINK_AS_GPU,
44 	KBASE_TL_RET_CTX_LPU,
45 	KBASE_TL_RET_ATOM_CTX,
46 	KBASE_TL_RET_ATOM_LPU,
47 	KBASE_TL_NRET_CTX_LPU,
48 	KBASE_TL_NRET_ATOM_CTX,
49 	KBASE_TL_NRET_ATOM_LPU,
50 	KBASE_TL_RET_AS_CTX,
51 	KBASE_TL_NRET_AS_CTX,
52 	KBASE_TL_RET_ATOM_AS,
53 	KBASE_TL_NRET_ATOM_AS,
54 	KBASE_TL_ATTRIB_ATOM_CONFIG,
55 	KBASE_TL_ATTRIB_ATOM_PRIORITY,
56 	KBASE_TL_ATTRIB_ATOM_STATE,
57 	KBASE_TL_ATTRIB_ATOM_PRIORITIZED,
58 	KBASE_TL_ATTRIB_ATOM_JIT,
59 	KBASE_TL_JIT_USEDPAGES,
60 	KBASE_TL_ATTRIB_ATOM_JITALLOCINFO,
61 	KBASE_TL_ATTRIB_ATOM_JITFREEINFO,
62 	KBASE_TL_ATTRIB_AS_CONFIG,
63 	KBASE_TL_EVENT_LPU_SOFTSTOP,
64 	KBASE_TL_EVENT_ATOM_SOFTSTOP_EX,
65 	KBASE_TL_EVENT_ATOM_SOFTSTOP_ISSUE,
66 	KBASE_TL_EVENT_ATOM_SOFTJOB_START,
67 	KBASE_TL_EVENT_ATOM_SOFTJOB_END,
68 	KBASE_TL_ARBITER_GRANTED,
69 	KBASE_TL_ARBITER_STARTED,
70 	KBASE_TL_ARBITER_STOP_REQUESTED,
71 	KBASE_TL_ARBITER_STOPPED,
72 	KBASE_TL_ARBITER_REQUESTED,
73 	KBASE_JD_GPU_SOFT_RESET,
74 	KBASE_TL_KBASE_NEW_DEVICE,
75 	KBASE_TL_KBASE_DEVICE_PROGRAM_CSG,
76 	KBASE_TL_KBASE_DEVICE_DEPROGRAM_CSG,
77 	KBASE_TL_KBASE_DEVICE_HALT_CSG,
78 	KBASE_TL_KBASE_NEW_CTX,
79 	KBASE_TL_KBASE_DEL_CTX,
80 	KBASE_TL_KBASE_CTX_ASSIGN_AS,
81 	KBASE_TL_KBASE_CTX_UNASSIGN_AS,
82 	KBASE_TL_KBASE_NEW_KCPUQUEUE,
83 	KBASE_TL_KBASE_DEL_KCPUQUEUE,
84 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_FENCE_SIGNAL,
85 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_FENCE_WAIT,
86 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_WAIT,
87 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_SET,
88 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_MAP_IMPORT,
89 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_UNMAP_IMPORT,
90 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_UNMAP_IMPORT_FORCE,
91 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_ERROR_BARRIER,
92 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_GROUP_SUSPEND,
93 	KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_ENQUEUE_JIT_ALLOC,
94 	KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_ENQUEUE_JIT_ALLOC,
95 	KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_ENQUEUE_JIT_ALLOC,
96 	KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_ENQUEUE_JIT_FREE,
97 	KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_ENQUEUE_JIT_FREE,
98 	KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_ENQUEUE_JIT_FREE,
99 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_SIGNAL_START,
100 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_SIGNAL_END,
101 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_WAIT_START,
102 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_WAIT_END,
103 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_START,
104 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_END,
105 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_SET,
106 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_MAP_IMPORT_START,
107 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_MAP_IMPORT_END,
108 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_START,
109 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_END,
110 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_FORCE_START,
111 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_FORCE_END,
112 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_JIT_ALLOC_START,
113 	KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_EXECUTE_JIT_ALLOC_END,
114 	KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_EXECUTE_JIT_ALLOC_END,
115 	KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_EXECUTE_JIT_ALLOC_END,
116 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_JIT_FREE_START,
117 	KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_EXECUTE_JIT_FREE_END,
118 	KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_EXECUTE_JIT_FREE_END,
119 	KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_EXECUTE_JIT_FREE_END,
120 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_ERROR_BARRIER,
121 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_GROUP_SUSPEND_START,
122 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_GROUP_SUSPEND_END,
123 	KBASE_TL_KBASE_CSFFW_FW_RELOADING,
124 	KBASE_TL_KBASE_CSFFW_FW_ENABLING,
125 	KBASE_TL_KBASE_CSFFW_FW_REQUEST_SLEEP,
126 	KBASE_TL_KBASE_CSFFW_FW_REQUEST_WAKEUP,
127 	KBASE_TL_KBASE_CSFFW_FW_REQUEST_HALT,
128 	KBASE_TL_KBASE_CSFFW_FW_DISABLING,
129 	KBASE_TL_KBASE_CSFFW_FW_OFF,
130 	KBASE_TL_KBASE_CSFFW_TLSTREAM_OVERFLOW,
131 	KBASE_TL_JS_SCHED_START,
132 	KBASE_TL_JS_SCHED_END,
133 	KBASE_TL_JD_SUBMIT_ATOM_START,
134 	KBASE_TL_JD_SUBMIT_ATOM_END,
135 	KBASE_TL_JD_DONE_NO_LOCK_START,
136 	KBASE_TL_JD_DONE_NO_LOCK_END,
137 	KBASE_TL_JD_DONE_START,
138 	KBASE_TL_JD_DONE_END,
139 	KBASE_TL_JD_ATOM_COMPLETE,
140 	KBASE_TL_RUN_ATOM_START,
141 	KBASE_TL_RUN_ATOM_END,
142 	KBASE_OBJ_MSG_COUNT,
143 };
144 
145 /* Message ids of trace events that are recorded in the auxiliary stream. */
146 enum tl_msg_id_aux {
147 	KBASE_AUX_PM_STATE,
148 	KBASE_AUX_PAGEFAULT,
149 	KBASE_AUX_PAGESALLOC,
150 	KBASE_AUX_DEVFREQ_TARGET,
151 	KBASE_AUX_PROTECTED_ENTER_START,
152 	KBASE_AUX_PROTECTED_ENTER_END,
153 	KBASE_AUX_PROTECTED_LEAVE_START,
154 	KBASE_AUX_PROTECTED_LEAVE_END,
155 	KBASE_AUX_JIT_STATS,
156 	KBASE_AUX_TILER_HEAP_STATS,
157 	KBASE_AUX_EVENT_JOB_SLOT,
158 	KBASE_AUX_MMU_COMMAND,
159 	KBASE_AUX_MSG_COUNT,
160 };
161 
162 #define OBJ_TP_LIST \
163 	TRACEPOINT_DESC(KBASE_TL_NEW_CTX, \
164 		"object ctx is created", \
165 		"@pII", \
166 		"ctx,ctx_nr,tgid") \
167 	TRACEPOINT_DESC(KBASE_TL_NEW_GPU, \
168 		"object gpu is created", \
169 		"@pII", \
170 		"gpu,gpu_id,core_count") \
171 	TRACEPOINT_DESC(KBASE_TL_NEW_LPU, \
172 		"object lpu is created", \
173 		"@pII", \
174 		"lpu,lpu_nr,lpu_fn") \
175 	TRACEPOINT_DESC(KBASE_TL_NEW_ATOM, \
176 		"object atom is created", \
177 		"@pI", \
178 		"atom,atom_nr") \
179 	TRACEPOINT_DESC(KBASE_TL_NEW_AS, \
180 		"address space object is created", \
181 		"@pI", \
182 		"address_space,as_nr") \
183 	TRACEPOINT_DESC(KBASE_TL_DEL_CTX, \
184 		"context is destroyed", \
185 		"@p", \
186 		"ctx") \
187 	TRACEPOINT_DESC(KBASE_TL_DEL_ATOM, \
188 		"atom is destroyed", \
189 		"@p", \
190 		"atom") \
191 	TRACEPOINT_DESC(KBASE_TL_LIFELINK_LPU_GPU, \
192 		"lpu is deleted with gpu", \
193 		"@pp", \
194 		"lpu,gpu") \
195 	TRACEPOINT_DESC(KBASE_TL_LIFELINK_AS_GPU, \
196 		"address space is deleted with gpu", \
197 		"@pp", \
198 		"address_space,gpu") \
199 	TRACEPOINT_DESC(KBASE_TL_RET_CTX_LPU, \
200 		"context is retained by lpu", \
201 		"@pp", \
202 		"ctx,lpu") \
203 	TRACEPOINT_DESC(KBASE_TL_RET_ATOM_CTX, \
204 		"atom is retained by context", \
205 		"@pp", \
206 		"atom,ctx") \
207 	TRACEPOINT_DESC(KBASE_TL_RET_ATOM_LPU, \
208 		"atom is retained by lpu", \
209 		"@pps", \
210 		"atom,lpu,attrib_match_list") \
211 	TRACEPOINT_DESC(KBASE_TL_NRET_CTX_LPU, \
212 		"context is released by lpu", \
213 		"@pp", \
214 		"ctx,lpu") \
215 	TRACEPOINT_DESC(KBASE_TL_NRET_ATOM_CTX, \
216 		"atom is released by context", \
217 		"@pp", \
218 		"atom,ctx") \
219 	TRACEPOINT_DESC(KBASE_TL_NRET_ATOM_LPU, \
220 		"atom is released by lpu", \
221 		"@pp", \
222 		"atom,lpu") \
223 	TRACEPOINT_DESC(KBASE_TL_RET_AS_CTX, \
224 		"address space is retained by context", \
225 		"@pp", \
226 		"address_space,ctx") \
227 	TRACEPOINT_DESC(KBASE_TL_NRET_AS_CTX, \
228 		"address space is released by context", \
229 		"@pp", \
230 		"address_space,ctx") \
231 	TRACEPOINT_DESC(KBASE_TL_RET_ATOM_AS, \
232 		"atom is retained by address space", \
233 		"@pp", \
234 		"atom,address_space") \
235 	TRACEPOINT_DESC(KBASE_TL_NRET_ATOM_AS, \
236 		"atom is released by address space", \
237 		"@pp", \
238 		"atom,address_space") \
239 	TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_CONFIG, \
240 		"atom job slot attributes", \
241 		"@pLLI", \
242 		"atom,descriptor,affinity,config") \
243 	TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_PRIORITY, \
244 		"atom priority", \
245 		"@pI", \
246 		"atom,prio") \
247 	TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_STATE, \
248 		"atom state", \
249 		"@pI", \
250 		"atom,state") \
251 	TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_PRIORITIZED, \
252 		"atom caused priority change", \
253 		"@p", \
254 		"atom") \
255 	TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_JIT, \
256 		"jit done for atom", \
257 		"@pLLILILLL", \
258 		"atom,edit_addr,new_addr,jit_flags,mem_flags,j_id,com_pgs,extent,va_pgs") \
259 	TRACEPOINT_DESC(KBASE_TL_JIT_USEDPAGES, \
260 		"used pages for jit", \
261 		"@LI", \
262 		"used_pages,j_id") \
263 	TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_JITALLOCINFO, \
264 		"Information about JIT allocations", \
265 		"@pLLLIIIII", \
266 		"atom,va_pgs,com_pgs,extent,j_id,bin_id,max_allocs,jit_flags,usg_id") \
267 	TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_JITFREEINFO, \
268 		"Information about JIT frees", \
269 		"@pI", \
270 		"atom,j_id") \
271 	TRACEPOINT_DESC(KBASE_TL_ATTRIB_AS_CONFIG, \
272 		"address space attributes", \
273 		"@pLLL", \
274 		"address_space,transtab,memattr,transcfg") \
275 	TRACEPOINT_DESC(KBASE_TL_EVENT_LPU_SOFTSTOP, \
276 		"softstop event on given lpu", \
277 		"@p", \
278 		"lpu") \
279 	TRACEPOINT_DESC(KBASE_TL_EVENT_ATOM_SOFTSTOP_EX, \
280 		"atom softstopped", \
281 		"@p", \
282 		"atom") \
283 	TRACEPOINT_DESC(KBASE_TL_EVENT_ATOM_SOFTSTOP_ISSUE, \
284 		"atom softstop issued", \
285 		"@p", \
286 		"atom") \
287 	TRACEPOINT_DESC(KBASE_TL_EVENT_ATOM_SOFTJOB_START, \
288 		"atom soft job has started", \
289 		"@p", \
290 		"atom") \
291 	TRACEPOINT_DESC(KBASE_TL_EVENT_ATOM_SOFTJOB_END, \
292 		"atom soft job has completed", \
293 		"@p", \
294 		"atom") \
295 	TRACEPOINT_DESC(KBASE_TL_ARBITER_GRANTED, \
296 		"Arbiter has granted gpu access", \
297 		"@p", \
298 		"gpu") \
299 	TRACEPOINT_DESC(KBASE_TL_ARBITER_STARTED, \
300 		"Driver is running again and able to process jobs", \
301 		"@p", \
302 		"gpu") \
303 	TRACEPOINT_DESC(KBASE_TL_ARBITER_STOP_REQUESTED, \
304 		"Arbiter has requested driver to stop using gpu", \
305 		"@p", \
306 		"gpu") \
307 	TRACEPOINT_DESC(KBASE_TL_ARBITER_STOPPED, \
308 		"Driver has stopped using gpu", \
309 		"@p", \
310 		"gpu") \
311 	TRACEPOINT_DESC(KBASE_TL_ARBITER_REQUESTED, \
312 		"Driver has requested the arbiter for gpu access", \
313 		"@p", \
314 		"gpu") \
315 	TRACEPOINT_DESC(KBASE_JD_GPU_SOFT_RESET, \
316 		"gpu soft reset", \
317 		"@p", \
318 		"gpu") \
319 	TRACEPOINT_DESC(KBASE_TL_KBASE_NEW_DEVICE, \
320 		"New KBase Device", \
321 		"@IIIIIII", \
322 		"kbase_device_id,kbase_device_gpu_core_count,kbase_device_max_num_csgs,kbase_device_as_count,kbase_device_sb_entry_count,kbase_device_has_cross_stream_sync,kbase_device_supports_gpu_sleep") \
323 	TRACEPOINT_DESC(KBASE_TL_KBASE_DEVICE_PROGRAM_CSG, \
324 		"CSG is programmed to a slot", \
325 		"@IIIII", \
326 		"kbase_device_id,kernel_ctx_id,gpu_cmdq_grp_handle,kbase_device_csg_slot_index,kbase_device_csg_slot_resumed") \
327 	TRACEPOINT_DESC(KBASE_TL_KBASE_DEVICE_DEPROGRAM_CSG, \
328 		"CSG is deprogrammed from a slot", \
329 		"@II", \
330 		"kbase_device_id,kbase_device_csg_slot_index") \
331 	TRACEPOINT_DESC(KBASE_TL_KBASE_DEVICE_HALT_CSG, \
332 		"CSG is halted", \
333 		"@II", \
334 		"kbase_device_id,kbase_device_csg_slot_index") \
335 	TRACEPOINT_DESC(KBASE_TL_KBASE_NEW_CTX, \
336 		"New KBase Context", \
337 		"@II", \
338 		"kernel_ctx_id,kbase_device_id") \
339 	TRACEPOINT_DESC(KBASE_TL_KBASE_DEL_CTX, \
340 		"Delete KBase Context", \
341 		"@I", \
342 		"kernel_ctx_id") \
343 	TRACEPOINT_DESC(KBASE_TL_KBASE_CTX_ASSIGN_AS, \
344 		"Address Space is assigned to a KBase context", \
345 		"@II", \
346 		"kernel_ctx_id,kbase_device_as_index") \
347 	TRACEPOINT_DESC(KBASE_TL_KBASE_CTX_UNASSIGN_AS, \
348 		"Address Space is unassigned from a KBase context", \
349 		"@I", \
350 		"kernel_ctx_id") \
351 	TRACEPOINT_DESC(KBASE_TL_KBASE_NEW_KCPUQUEUE, \
352 		"New KCPU Queue", \
353 		"@pII", \
354 		"kcpu_queue,kernel_ctx_id,kcpuq_num_pending_cmds") \
355 	TRACEPOINT_DESC(KBASE_TL_KBASE_DEL_KCPUQUEUE, \
356 		"Delete KCPU Queue", \
357 		"@p", \
358 		"kcpu_queue") \
359 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_FENCE_SIGNAL, \
360 		"KCPU Queue enqueues Signal on Fence", \
361 		"@pp", \
362 		"kcpu_queue,fence") \
363 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_FENCE_WAIT, \
364 		"KCPU Queue enqueues Wait on Fence", \
365 		"@pp", \
366 		"kcpu_queue,fence") \
367 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_WAIT, \
368 		"KCPU Queue enqueues Wait on Cross Queue Sync Object", \
369 		"@pLII", \
370 		"kcpu_queue,cqs_obj_gpu_addr,cqs_obj_compare_value,cqs_obj_inherit_error") \
371 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_SET, \
372 		"KCPU Queue enqueues Set on Cross Queue Sync Object", \
373 		"@pL", \
374 		"kcpu_queue,cqs_obj_gpu_addr") \
375 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_MAP_IMPORT, \
376 		"KCPU Queue enqueues Map Import", \
377 		"@pL", \
378 		"kcpu_queue,map_import_buf_gpu_addr") \
379 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_UNMAP_IMPORT, \
380 		"KCPU Queue enqueues Unmap Import", \
381 		"@pL", \
382 		"kcpu_queue,map_import_buf_gpu_addr") \
383 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_UNMAP_IMPORT_FORCE, \
384 		"KCPU Queue enqueues Unmap Import ignoring reference count", \
385 		"@pL", \
386 		"kcpu_queue,map_import_buf_gpu_addr") \
387 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_ERROR_BARRIER, \
388 		"KCPU Queue enqueues Error Barrier", \
389 		"@p", \
390 		"kcpu_queue") \
391 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_GROUP_SUSPEND, \
392 		"KCPU Queue enqueues Group Suspend", \
393 		"@ppI", \
394 		"kcpu_queue,group_suspend_buf,gpu_cmdq_grp_handle") \
395 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_ENQUEUE_JIT_ALLOC, \
396 		"Begin array of KCPU Queue enqueues JIT Alloc", \
397 		"@p", \
398 		"kcpu_queue") \
399 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_ENQUEUE_JIT_ALLOC, \
400 		"Array item of KCPU Queue enqueues JIT Alloc", \
401 		"@pLLLLIIIII", \
402 		"kcpu_queue,jit_alloc_gpu_alloc_addr_dest,jit_alloc_va_pages,jit_alloc_commit_pages,jit_alloc_extent,jit_alloc_jit_id,jit_alloc_bin_id,jit_alloc_max_allocations,jit_alloc_flags,jit_alloc_usage_id") \
403 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_ENQUEUE_JIT_ALLOC, \
404 		"End array of KCPU Queue enqueues JIT Alloc", \
405 		"@p", \
406 		"kcpu_queue") \
407 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_ENQUEUE_JIT_FREE, \
408 		"Begin array of KCPU Queue enqueues JIT Free", \
409 		"@p", \
410 		"kcpu_queue") \
411 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_ENQUEUE_JIT_FREE, \
412 		"Array item of KCPU Queue enqueues JIT Free", \
413 		"@pI", \
414 		"kcpu_queue,jit_alloc_jit_id") \
415 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_ENQUEUE_JIT_FREE, \
416 		"End array of KCPU Queue enqueues JIT Free", \
417 		"@p", \
418 		"kcpu_queue") \
419 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_SIGNAL_START, \
420 		"KCPU Queue starts a Signal on Fence", \
421 		"@p", \
422 		"kcpu_queue") \
423 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_SIGNAL_END, \
424 		"KCPU Queue ends a Signal on Fence", \
425 		"@pI", \
426 		"kcpu_queue,execute_error") \
427 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_WAIT_START, \
428 		"KCPU Queue starts a Wait on Fence", \
429 		"@p", \
430 		"kcpu_queue") \
431 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_WAIT_END, \
432 		"KCPU Queue ends a Wait on Fence", \
433 		"@pI", \
434 		"kcpu_queue,execute_error") \
435 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_START, \
436 		"KCPU Queue starts a Wait on an array of Cross Queue Sync Objects", \
437 		"@p", \
438 		"kcpu_queue") \
439 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_END, \
440 		"KCPU Queue ends a Wait on an array of Cross Queue Sync Objects", \
441 		"@pI", \
442 		"kcpu_queue,execute_error") \
443 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_SET, \
444 		"KCPU Queue executes a Set on an array of Cross Queue Sync Objects", \
445 		"@pI", \
446 		"kcpu_queue,execute_error") \
447 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_MAP_IMPORT_START, \
448 		"KCPU Queue starts a Map Import", \
449 		"@p", \
450 		"kcpu_queue") \
451 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_MAP_IMPORT_END, \
452 		"KCPU Queue ends a Map Import", \
453 		"@pI", \
454 		"kcpu_queue,execute_error") \
455 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_START, \
456 		"KCPU Queue starts an Unmap Import", \
457 		"@p", \
458 		"kcpu_queue") \
459 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_END, \
460 		"KCPU Queue ends an Unmap Import", \
461 		"@pI", \
462 		"kcpu_queue,execute_error") \
463 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_FORCE_START, \
464 		"KCPU Queue starts an Unmap Import ignoring reference count", \
465 		"@p", \
466 		"kcpu_queue") \
467 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_FORCE_END, \
468 		"KCPU Queue ends an Unmap Import ignoring reference count", \
469 		"@pI", \
470 		"kcpu_queue,execute_error") \
471 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_JIT_ALLOC_START, \
472 		"KCPU Queue starts an array of JIT Allocs", \
473 		"@p", \
474 		"kcpu_queue") \
475 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_EXECUTE_JIT_ALLOC_END, \
476 		"Begin array of KCPU Queue ends an array of JIT Allocs", \
477 		"@p", \
478 		"kcpu_queue") \
479 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_EXECUTE_JIT_ALLOC_END, \
480 		"Array item of KCPU Queue ends an array of JIT Allocs", \
481 		"@pILL", \
482 		"kcpu_queue,execute_error,jit_alloc_gpu_alloc_addr,jit_alloc_mmu_flags") \
483 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_EXECUTE_JIT_ALLOC_END, \
484 		"End array of KCPU Queue ends an array of JIT Allocs", \
485 		"@p", \
486 		"kcpu_queue") \
487 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_JIT_FREE_START, \
488 		"KCPU Queue starts an array of JIT Frees", \
489 		"@p", \
490 		"kcpu_queue") \
491 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_EXECUTE_JIT_FREE_END, \
492 		"Begin array of KCPU Queue ends an array of JIT Frees", \
493 		"@p", \
494 		"kcpu_queue") \
495 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_EXECUTE_JIT_FREE_END, \
496 		"Array item of KCPU Queue ends an array of JIT Frees", \
497 		"@pIL", \
498 		"kcpu_queue,execute_error,jit_free_pages_used") \
499 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_EXECUTE_JIT_FREE_END, \
500 		"End array of KCPU Queue ends an array of JIT Frees", \
501 		"@p", \
502 		"kcpu_queue") \
503 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_ERROR_BARRIER, \
504 		"KCPU Queue executes an Error Barrier", \
505 		"@p", \
506 		"kcpu_queue") \
507 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_GROUP_SUSPEND_START, \
508 		"KCPU Queue starts a group suspend", \
509 		"@p", \
510 		"kcpu_queue") \
511 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_GROUP_SUSPEND_END, \
512 		"KCPU Queue ends a group suspend", \
513 		"@pI", \
514 		"kcpu_queue,execute_error") \
515 	TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_RELOADING, \
516 		"CSF FW is being reloaded", \
517 		"@L", \
518 		"csffw_cycle") \
519 	TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_ENABLING, \
520 		"CSF FW is being enabled", \
521 		"@L", \
522 		"csffw_cycle") \
523 	TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_REQUEST_SLEEP, \
524 		"CSF FW sleep is requested", \
525 		"@L", \
526 		"csffw_cycle") \
527 	TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_REQUEST_WAKEUP, \
528 		"CSF FW wake up is requested", \
529 		"@L", \
530 		"csffw_cycle") \
531 	TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_REQUEST_HALT, \
532 		"CSF FW halt is requested", \
533 		"@L", \
534 		"csffw_cycle") \
535 	TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_DISABLING, \
536 		"CSF FW is being disabled", \
537 		"@L", \
538 		"csffw_cycle") \
539 	TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_OFF, \
540 		"CSF FW is off", \
541 		"@L", \
542 		"csffw_cycle") \
543 	TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_TLSTREAM_OVERFLOW, \
544 		"An overflow has happened with the CSFFW Timeline stream", \
545 		"@LL", \
546 		"csffw_timestamp,csffw_cycle") \
547 	TRACEPOINT_DESC(KBASE_TL_JS_SCHED_START, \
548 		"Scheduling starts", \
549 		"@I", \
550 		"dummy") \
551 	TRACEPOINT_DESC(KBASE_TL_JS_SCHED_END, \
552 		"Scheduling ends", \
553 		"@I", \
554 		"dummy") \
555 	TRACEPOINT_DESC(KBASE_TL_JD_SUBMIT_ATOM_START, \
556 		"Submitting an atom starts", \
557 		"@p", \
558 		"atom") \
559 	TRACEPOINT_DESC(KBASE_TL_JD_SUBMIT_ATOM_END, \
560 		"Submitting an atom ends", \
561 		"@p", \
562 		"atom") \
563 	TRACEPOINT_DESC(KBASE_TL_JD_DONE_NO_LOCK_START, \
564 		"Within function jd_done_nolock", \
565 		"@p", \
566 		"atom") \
567 	TRACEPOINT_DESC(KBASE_TL_JD_DONE_NO_LOCK_END, \
568 		"Within function jd_done_nolock - end", \
569 		"@p", \
570 		"atom") \
571 	TRACEPOINT_DESC(KBASE_TL_JD_DONE_START, \
572 		"Start of kbase_jd_done", \
573 		"@p", \
574 		"atom") \
575 	TRACEPOINT_DESC(KBASE_TL_JD_DONE_END, \
576 		"End of kbase_jd_done", \
577 		"@p", \
578 		"atom") \
579 	TRACEPOINT_DESC(KBASE_TL_JD_ATOM_COMPLETE, \
580 		"Atom marked complete", \
581 		"@p", \
582 		"atom") \
583 	TRACEPOINT_DESC(KBASE_TL_RUN_ATOM_START, \
584 		"Running of atom starts", \
585 		"@pI", \
586 		"atom,atom_nr") \
587 	TRACEPOINT_DESC(KBASE_TL_RUN_ATOM_END, \
588 		"Running of atom ends", \
589 		"@pI", \
590 		"atom,atom_nr") \
591 
592 #define MIPE_HEADER_BLOB_VAR_NAME		__obj_desc_header
593 #define MIPE_HEADER_STREAM_ID			TL_STREAM_ID_KERNEL
594 #define MIPE_HEADER_PKT_CLASS			TL_PACKET_CLASS_OBJ
595 #define MIPE_HEADER_TRACEPOINT_LIST		OBJ_TP_LIST
596 #define MIPE_HEADER_TRACEPOINT_LIST_SIZE	KBASE_OBJ_MSG_COUNT
597 
598 #include "mali_kbase_mipe_gen_header.h"
599 
600 const char   *obj_desc_header = (const char *) &__obj_desc_header;
601 const size_t  obj_desc_header_size = sizeof(__obj_desc_header);
602 
603 #define AUX_TP_LIST \
604 	TRACEPOINT_DESC(KBASE_AUX_PM_STATE, \
605 		"PM state", \
606 		"@IL", \
607 		"core_type,core_state_bitset") \
608 	TRACEPOINT_DESC(KBASE_AUX_PAGEFAULT, \
609 		"Page fault", \
610 		"@IIL", \
611 		"ctx_nr,as_nr,page_cnt_change") \
612 	TRACEPOINT_DESC(KBASE_AUX_PAGESALLOC, \
613 		"Total alloc pages change", \
614 		"@IL", \
615 		"ctx_nr,page_cnt") \
616 	TRACEPOINT_DESC(KBASE_AUX_DEVFREQ_TARGET, \
617 		"New device frequency target", \
618 		"@L", \
619 		"target_freq") \
620 	TRACEPOINT_DESC(KBASE_AUX_PROTECTED_ENTER_START, \
621 		"enter protected mode start", \
622 		"@p", \
623 		"gpu") \
624 	TRACEPOINT_DESC(KBASE_AUX_PROTECTED_ENTER_END, \
625 		"enter protected mode end", \
626 		"@p", \
627 		"gpu") \
628 	TRACEPOINT_DESC(KBASE_AUX_PROTECTED_LEAVE_START, \
629 		"leave protected mode start", \
630 		"@p", \
631 		"gpu") \
632 	TRACEPOINT_DESC(KBASE_AUX_PROTECTED_LEAVE_END, \
633 		"leave protected mode end", \
634 		"@p", \
635 		"gpu") \
636 	TRACEPOINT_DESC(KBASE_AUX_JIT_STATS, \
637 		"per-bin JIT statistics", \
638 		"@IIIIII", \
639 		"ctx_nr,bid,max_allocs,allocs,va_pages,ph_pages") \
640 	TRACEPOINT_DESC(KBASE_AUX_TILER_HEAP_STATS, \
641 		"Tiler Heap statistics", \
642 		"@ILIIIIIII", \
643 		"ctx_nr,heap_id,va_pages,ph_pages,max_chunks,chunk_size,chunk_count,target_in_flight,nr_in_flight") \
644 	TRACEPOINT_DESC(KBASE_AUX_EVENT_JOB_SLOT, \
645 		"event on a given job slot", \
646 		"@pIII", \
647 		"ctx,slot_nr,atom_nr,event") \
648 	TRACEPOINT_DESC(KBASE_AUX_MMU_COMMAND, \
649 		"mmu commands with synchronicity info", \
650 		"@IIILI", \
651 		"kernel_ctx_id,mmu_cmd_id,mmu_synchronicity,mmu_lock_addr,mmu_lock_page_num") \
652 
653 #define MIPE_HEADER_BLOB_VAR_NAME		__aux_desc_header
654 #define MIPE_HEADER_STREAM_ID        		TL_STREAM_ID_KERNEL
655 #define MIPE_HEADER_PKT_CLASS        		TL_PACKET_CLASS_AUX
656 #define MIPE_HEADER_TRACEPOINT_LIST		AUX_TP_LIST
657 #define MIPE_HEADER_TRACEPOINT_LIST_SIZE	KBASE_AUX_MSG_COUNT
658 
659 #include "mali_kbase_mipe_gen_header.h"
660 
661 const char   *aux_desc_header = (const char *) &__aux_desc_header;
662 const size_t  aux_desc_header_size = sizeof(__aux_desc_header);
663 
__kbase_tlstream_tl_new_ctx(struct kbase_tlstream * stream,const void * ctx,u32 ctx_nr,u32 tgid)664 void __kbase_tlstream_tl_new_ctx(
665 	struct kbase_tlstream *stream,
666 	const void *ctx,
667 	u32 ctx_nr,
668 	u32 tgid)
669 {
670 	const u32 msg_id = KBASE_TL_NEW_CTX;
671 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
672 		+ sizeof(ctx)
673 		+ sizeof(ctx_nr)
674 		+ sizeof(tgid)
675 		;
676 	char *buffer;
677 	unsigned long acq_flags;
678 	size_t pos = 0;
679 
680 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
681 
682 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
683 	pos = kbasep_serialize_timestamp(buffer, pos);
684 	pos = kbasep_serialize_bytes(buffer,
685 		pos, &ctx, sizeof(ctx));
686 	pos = kbasep_serialize_bytes(buffer,
687 		pos, &ctx_nr, sizeof(ctx_nr));
688 	pos = kbasep_serialize_bytes(buffer,
689 		pos, &tgid, sizeof(tgid));
690 
691 	kbase_tlstream_msgbuf_release(stream, acq_flags);
692 }
693 
__kbase_tlstream_tl_new_gpu(struct kbase_tlstream * stream,const void * gpu,u32 gpu_id,u32 core_count)694 void __kbase_tlstream_tl_new_gpu(
695 	struct kbase_tlstream *stream,
696 	const void *gpu,
697 	u32 gpu_id,
698 	u32 core_count)
699 {
700 	const u32 msg_id = KBASE_TL_NEW_GPU;
701 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
702 		+ sizeof(gpu)
703 		+ sizeof(gpu_id)
704 		+ sizeof(core_count)
705 		;
706 	char *buffer;
707 	unsigned long acq_flags;
708 	size_t pos = 0;
709 
710 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
711 
712 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
713 	pos = kbasep_serialize_timestamp(buffer, pos);
714 	pos = kbasep_serialize_bytes(buffer,
715 		pos, &gpu, sizeof(gpu));
716 	pos = kbasep_serialize_bytes(buffer,
717 		pos, &gpu_id, sizeof(gpu_id));
718 	pos = kbasep_serialize_bytes(buffer,
719 		pos, &core_count, sizeof(core_count));
720 
721 	kbase_tlstream_msgbuf_release(stream, acq_flags);
722 }
723 
__kbase_tlstream_tl_new_lpu(struct kbase_tlstream * stream,const void * lpu,u32 lpu_nr,u32 lpu_fn)724 void __kbase_tlstream_tl_new_lpu(
725 	struct kbase_tlstream *stream,
726 	const void *lpu,
727 	u32 lpu_nr,
728 	u32 lpu_fn)
729 {
730 	const u32 msg_id = KBASE_TL_NEW_LPU;
731 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
732 		+ sizeof(lpu)
733 		+ sizeof(lpu_nr)
734 		+ sizeof(lpu_fn)
735 		;
736 	char *buffer;
737 	unsigned long acq_flags;
738 	size_t pos = 0;
739 
740 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
741 
742 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
743 	pos = kbasep_serialize_timestamp(buffer, pos);
744 	pos = kbasep_serialize_bytes(buffer,
745 		pos, &lpu, sizeof(lpu));
746 	pos = kbasep_serialize_bytes(buffer,
747 		pos, &lpu_nr, sizeof(lpu_nr));
748 	pos = kbasep_serialize_bytes(buffer,
749 		pos, &lpu_fn, sizeof(lpu_fn));
750 
751 	kbase_tlstream_msgbuf_release(stream, acq_flags);
752 }
753 
__kbase_tlstream_tl_new_atom(struct kbase_tlstream * stream,const void * atom,u32 atom_nr)754 void __kbase_tlstream_tl_new_atom(
755 	struct kbase_tlstream *stream,
756 	const void *atom,
757 	u32 atom_nr)
758 {
759 	const u32 msg_id = KBASE_TL_NEW_ATOM;
760 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
761 		+ sizeof(atom)
762 		+ sizeof(atom_nr)
763 		;
764 	char *buffer;
765 	unsigned long acq_flags;
766 	size_t pos = 0;
767 
768 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
769 
770 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
771 	pos = kbasep_serialize_timestamp(buffer, pos);
772 	pos = kbasep_serialize_bytes(buffer,
773 		pos, &atom, sizeof(atom));
774 	pos = kbasep_serialize_bytes(buffer,
775 		pos, &atom_nr, sizeof(atom_nr));
776 
777 	kbase_tlstream_msgbuf_release(stream, acq_flags);
778 }
779 
__kbase_tlstream_tl_new_as(struct kbase_tlstream * stream,const void * address_space,u32 as_nr)780 void __kbase_tlstream_tl_new_as(
781 	struct kbase_tlstream *stream,
782 	const void *address_space,
783 	u32 as_nr)
784 {
785 	const u32 msg_id = KBASE_TL_NEW_AS;
786 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
787 		+ sizeof(address_space)
788 		+ sizeof(as_nr)
789 		;
790 	char *buffer;
791 	unsigned long acq_flags;
792 	size_t pos = 0;
793 
794 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
795 
796 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
797 	pos = kbasep_serialize_timestamp(buffer, pos);
798 	pos = kbasep_serialize_bytes(buffer,
799 		pos, &address_space, sizeof(address_space));
800 	pos = kbasep_serialize_bytes(buffer,
801 		pos, &as_nr, sizeof(as_nr));
802 
803 	kbase_tlstream_msgbuf_release(stream, acq_flags);
804 }
805 
__kbase_tlstream_tl_del_ctx(struct kbase_tlstream * stream,const void * ctx)806 void __kbase_tlstream_tl_del_ctx(
807 	struct kbase_tlstream *stream,
808 	const void *ctx)
809 {
810 	const u32 msg_id = KBASE_TL_DEL_CTX;
811 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
812 		+ sizeof(ctx)
813 		;
814 	char *buffer;
815 	unsigned long acq_flags;
816 	size_t pos = 0;
817 
818 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
819 
820 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
821 	pos = kbasep_serialize_timestamp(buffer, pos);
822 	pos = kbasep_serialize_bytes(buffer,
823 		pos, &ctx, sizeof(ctx));
824 
825 	kbase_tlstream_msgbuf_release(stream, acq_flags);
826 }
827 
__kbase_tlstream_tl_del_atom(struct kbase_tlstream * stream,const void * atom)828 void __kbase_tlstream_tl_del_atom(
829 	struct kbase_tlstream *stream,
830 	const void *atom)
831 {
832 	const u32 msg_id = KBASE_TL_DEL_ATOM;
833 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
834 		+ sizeof(atom)
835 		;
836 	char *buffer;
837 	unsigned long acq_flags;
838 	size_t pos = 0;
839 
840 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
841 
842 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
843 	pos = kbasep_serialize_timestamp(buffer, pos);
844 	pos = kbasep_serialize_bytes(buffer,
845 		pos, &atom, sizeof(atom));
846 
847 	kbase_tlstream_msgbuf_release(stream, acq_flags);
848 }
849 
__kbase_tlstream_tl_lifelink_lpu_gpu(struct kbase_tlstream * stream,const void * lpu,const void * gpu)850 void __kbase_tlstream_tl_lifelink_lpu_gpu(
851 	struct kbase_tlstream *stream,
852 	const void *lpu,
853 	const void *gpu)
854 {
855 	const u32 msg_id = KBASE_TL_LIFELINK_LPU_GPU;
856 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
857 		+ sizeof(lpu)
858 		+ sizeof(gpu)
859 		;
860 	char *buffer;
861 	unsigned long acq_flags;
862 	size_t pos = 0;
863 
864 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
865 
866 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
867 	pos = kbasep_serialize_timestamp(buffer, pos);
868 	pos = kbasep_serialize_bytes(buffer,
869 		pos, &lpu, sizeof(lpu));
870 	pos = kbasep_serialize_bytes(buffer,
871 		pos, &gpu, sizeof(gpu));
872 
873 	kbase_tlstream_msgbuf_release(stream, acq_flags);
874 }
875 
__kbase_tlstream_tl_lifelink_as_gpu(struct kbase_tlstream * stream,const void * address_space,const void * gpu)876 void __kbase_tlstream_tl_lifelink_as_gpu(
877 	struct kbase_tlstream *stream,
878 	const void *address_space,
879 	const void *gpu)
880 {
881 	const u32 msg_id = KBASE_TL_LIFELINK_AS_GPU;
882 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
883 		+ sizeof(address_space)
884 		+ sizeof(gpu)
885 		;
886 	char *buffer;
887 	unsigned long acq_flags;
888 	size_t pos = 0;
889 
890 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
891 
892 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
893 	pos = kbasep_serialize_timestamp(buffer, pos);
894 	pos = kbasep_serialize_bytes(buffer,
895 		pos, &address_space, sizeof(address_space));
896 	pos = kbasep_serialize_bytes(buffer,
897 		pos, &gpu, sizeof(gpu));
898 
899 	kbase_tlstream_msgbuf_release(stream, acq_flags);
900 }
901 
__kbase_tlstream_tl_ret_ctx_lpu(struct kbase_tlstream * stream,const void * ctx,const void * lpu)902 void __kbase_tlstream_tl_ret_ctx_lpu(
903 	struct kbase_tlstream *stream,
904 	const void *ctx,
905 	const void *lpu)
906 {
907 	const u32 msg_id = KBASE_TL_RET_CTX_LPU;
908 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
909 		+ sizeof(ctx)
910 		+ sizeof(lpu)
911 		;
912 	char *buffer;
913 	unsigned long acq_flags;
914 	size_t pos = 0;
915 
916 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
917 
918 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
919 	pos = kbasep_serialize_timestamp(buffer, pos);
920 	pos = kbasep_serialize_bytes(buffer,
921 		pos, &ctx, sizeof(ctx));
922 	pos = kbasep_serialize_bytes(buffer,
923 		pos, &lpu, sizeof(lpu));
924 
925 	kbase_tlstream_msgbuf_release(stream, acq_flags);
926 }
927 
__kbase_tlstream_tl_ret_atom_ctx(struct kbase_tlstream * stream,const void * atom,const void * ctx)928 void __kbase_tlstream_tl_ret_atom_ctx(
929 	struct kbase_tlstream *stream,
930 	const void *atom,
931 	const void *ctx)
932 {
933 	const u32 msg_id = KBASE_TL_RET_ATOM_CTX;
934 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
935 		+ sizeof(atom)
936 		+ sizeof(ctx)
937 		;
938 	char *buffer;
939 	unsigned long acq_flags;
940 	size_t pos = 0;
941 
942 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
943 
944 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
945 	pos = kbasep_serialize_timestamp(buffer, pos);
946 	pos = kbasep_serialize_bytes(buffer,
947 		pos, &atom, sizeof(atom));
948 	pos = kbasep_serialize_bytes(buffer,
949 		pos, &ctx, sizeof(ctx));
950 
951 	kbase_tlstream_msgbuf_release(stream, acq_flags);
952 }
953 
__kbase_tlstream_tl_ret_atom_lpu(struct kbase_tlstream * stream,const void * atom,const void * lpu,const char * attrib_match_list)954 void __kbase_tlstream_tl_ret_atom_lpu(
955 	struct kbase_tlstream *stream,
956 	const void *atom,
957 	const void *lpu,
958 	const char *attrib_match_list)
959 {
960 	const u32 msg_id = KBASE_TL_RET_ATOM_LPU;
961 	const size_t s0 = sizeof(u32) + sizeof(char)
962 		+ strnlen(attrib_match_list, STRLEN_MAX);
963 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
964 		+ sizeof(atom)
965 		+ sizeof(lpu)
966 		+ s0
967 		;
968 	char *buffer;
969 	unsigned long acq_flags;
970 	size_t pos = 0;
971 
972 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
973 
974 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
975 	pos = kbasep_serialize_timestamp(buffer, pos);
976 	pos = kbasep_serialize_bytes(buffer,
977 		pos, &atom, sizeof(atom));
978 	pos = kbasep_serialize_bytes(buffer,
979 		pos, &lpu, sizeof(lpu));
980 	pos = kbasep_serialize_string(buffer,
981 		pos, attrib_match_list, s0);
982 
983 	kbase_tlstream_msgbuf_release(stream, acq_flags);
984 }
985 
__kbase_tlstream_tl_nret_ctx_lpu(struct kbase_tlstream * stream,const void * ctx,const void * lpu)986 void __kbase_tlstream_tl_nret_ctx_lpu(
987 	struct kbase_tlstream *stream,
988 	const void *ctx,
989 	const void *lpu)
990 {
991 	const u32 msg_id = KBASE_TL_NRET_CTX_LPU;
992 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
993 		+ sizeof(ctx)
994 		+ sizeof(lpu)
995 		;
996 	char *buffer;
997 	unsigned long acq_flags;
998 	size_t pos = 0;
999 
1000 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1001 
1002 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1003 	pos = kbasep_serialize_timestamp(buffer, pos);
1004 	pos = kbasep_serialize_bytes(buffer,
1005 		pos, &ctx, sizeof(ctx));
1006 	pos = kbasep_serialize_bytes(buffer,
1007 		pos, &lpu, sizeof(lpu));
1008 
1009 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1010 }
1011 
__kbase_tlstream_tl_nret_atom_ctx(struct kbase_tlstream * stream,const void * atom,const void * ctx)1012 void __kbase_tlstream_tl_nret_atom_ctx(
1013 	struct kbase_tlstream *stream,
1014 	const void *atom,
1015 	const void *ctx)
1016 {
1017 	const u32 msg_id = KBASE_TL_NRET_ATOM_CTX;
1018 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1019 		+ sizeof(atom)
1020 		+ sizeof(ctx)
1021 		;
1022 	char *buffer;
1023 	unsigned long acq_flags;
1024 	size_t pos = 0;
1025 
1026 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1027 
1028 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1029 	pos = kbasep_serialize_timestamp(buffer, pos);
1030 	pos = kbasep_serialize_bytes(buffer,
1031 		pos, &atom, sizeof(atom));
1032 	pos = kbasep_serialize_bytes(buffer,
1033 		pos, &ctx, sizeof(ctx));
1034 
1035 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1036 }
1037 
__kbase_tlstream_tl_nret_atom_lpu(struct kbase_tlstream * stream,const void * atom,const void * lpu)1038 void __kbase_tlstream_tl_nret_atom_lpu(
1039 	struct kbase_tlstream *stream,
1040 	const void *atom,
1041 	const void *lpu)
1042 {
1043 	const u32 msg_id = KBASE_TL_NRET_ATOM_LPU;
1044 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1045 		+ sizeof(atom)
1046 		+ sizeof(lpu)
1047 		;
1048 	char *buffer;
1049 	unsigned long acq_flags;
1050 	size_t pos = 0;
1051 
1052 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1053 
1054 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1055 	pos = kbasep_serialize_timestamp(buffer, pos);
1056 	pos = kbasep_serialize_bytes(buffer,
1057 		pos, &atom, sizeof(atom));
1058 	pos = kbasep_serialize_bytes(buffer,
1059 		pos, &lpu, sizeof(lpu));
1060 
1061 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1062 }
1063 
__kbase_tlstream_tl_ret_as_ctx(struct kbase_tlstream * stream,const void * address_space,const void * ctx)1064 void __kbase_tlstream_tl_ret_as_ctx(
1065 	struct kbase_tlstream *stream,
1066 	const void *address_space,
1067 	const void *ctx)
1068 {
1069 	const u32 msg_id = KBASE_TL_RET_AS_CTX;
1070 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1071 		+ sizeof(address_space)
1072 		+ sizeof(ctx)
1073 		;
1074 	char *buffer;
1075 	unsigned long acq_flags;
1076 	size_t pos = 0;
1077 
1078 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1079 
1080 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1081 	pos = kbasep_serialize_timestamp(buffer, pos);
1082 	pos = kbasep_serialize_bytes(buffer,
1083 		pos, &address_space, sizeof(address_space));
1084 	pos = kbasep_serialize_bytes(buffer,
1085 		pos, &ctx, sizeof(ctx));
1086 
1087 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1088 }
1089 
__kbase_tlstream_tl_nret_as_ctx(struct kbase_tlstream * stream,const void * address_space,const void * ctx)1090 void __kbase_tlstream_tl_nret_as_ctx(
1091 	struct kbase_tlstream *stream,
1092 	const void *address_space,
1093 	const void *ctx)
1094 {
1095 	const u32 msg_id = KBASE_TL_NRET_AS_CTX;
1096 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1097 		+ sizeof(address_space)
1098 		+ sizeof(ctx)
1099 		;
1100 	char *buffer;
1101 	unsigned long acq_flags;
1102 	size_t pos = 0;
1103 
1104 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1105 
1106 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1107 	pos = kbasep_serialize_timestamp(buffer, pos);
1108 	pos = kbasep_serialize_bytes(buffer,
1109 		pos, &address_space, sizeof(address_space));
1110 	pos = kbasep_serialize_bytes(buffer,
1111 		pos, &ctx, sizeof(ctx));
1112 
1113 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1114 }
1115 
__kbase_tlstream_tl_ret_atom_as(struct kbase_tlstream * stream,const void * atom,const void * address_space)1116 void __kbase_tlstream_tl_ret_atom_as(
1117 	struct kbase_tlstream *stream,
1118 	const void *atom,
1119 	const void *address_space)
1120 {
1121 	const u32 msg_id = KBASE_TL_RET_ATOM_AS;
1122 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1123 		+ sizeof(atom)
1124 		+ sizeof(address_space)
1125 		;
1126 	char *buffer;
1127 	unsigned long acq_flags;
1128 	size_t pos = 0;
1129 
1130 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1131 
1132 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1133 	pos = kbasep_serialize_timestamp(buffer, pos);
1134 	pos = kbasep_serialize_bytes(buffer,
1135 		pos, &atom, sizeof(atom));
1136 	pos = kbasep_serialize_bytes(buffer,
1137 		pos, &address_space, sizeof(address_space));
1138 
1139 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1140 }
1141 
__kbase_tlstream_tl_nret_atom_as(struct kbase_tlstream * stream,const void * atom,const void * address_space)1142 void __kbase_tlstream_tl_nret_atom_as(
1143 	struct kbase_tlstream *stream,
1144 	const void *atom,
1145 	const void *address_space)
1146 {
1147 	const u32 msg_id = KBASE_TL_NRET_ATOM_AS;
1148 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1149 		+ sizeof(atom)
1150 		+ sizeof(address_space)
1151 		;
1152 	char *buffer;
1153 	unsigned long acq_flags;
1154 	size_t pos = 0;
1155 
1156 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1157 
1158 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1159 	pos = kbasep_serialize_timestamp(buffer, pos);
1160 	pos = kbasep_serialize_bytes(buffer,
1161 		pos, &atom, sizeof(atom));
1162 	pos = kbasep_serialize_bytes(buffer,
1163 		pos, &address_space, sizeof(address_space));
1164 
1165 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1166 }
1167 
__kbase_tlstream_tl_attrib_atom_config(struct kbase_tlstream * stream,const void * atom,u64 descriptor,u64 affinity,u32 config)1168 void __kbase_tlstream_tl_attrib_atom_config(
1169 	struct kbase_tlstream *stream,
1170 	const void *atom,
1171 	u64 descriptor,
1172 	u64 affinity,
1173 	u32 config)
1174 {
1175 	const u32 msg_id = KBASE_TL_ATTRIB_ATOM_CONFIG;
1176 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1177 		+ sizeof(atom)
1178 		+ sizeof(descriptor)
1179 		+ sizeof(affinity)
1180 		+ sizeof(config)
1181 		;
1182 	char *buffer;
1183 	unsigned long acq_flags;
1184 	size_t pos = 0;
1185 
1186 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1187 
1188 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1189 	pos = kbasep_serialize_timestamp(buffer, pos);
1190 	pos = kbasep_serialize_bytes(buffer,
1191 		pos, &atom, sizeof(atom));
1192 	pos = kbasep_serialize_bytes(buffer,
1193 		pos, &descriptor, sizeof(descriptor));
1194 	pos = kbasep_serialize_bytes(buffer,
1195 		pos, &affinity, sizeof(affinity));
1196 	pos = kbasep_serialize_bytes(buffer,
1197 		pos, &config, sizeof(config));
1198 
1199 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1200 }
1201 
__kbase_tlstream_tl_attrib_atom_priority(struct kbase_tlstream * stream,const void * atom,u32 prio)1202 void __kbase_tlstream_tl_attrib_atom_priority(
1203 	struct kbase_tlstream *stream,
1204 	const void *atom,
1205 	u32 prio)
1206 {
1207 	const u32 msg_id = KBASE_TL_ATTRIB_ATOM_PRIORITY;
1208 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1209 		+ sizeof(atom)
1210 		+ sizeof(prio)
1211 		;
1212 	char *buffer;
1213 	unsigned long acq_flags;
1214 	size_t pos = 0;
1215 
1216 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1217 
1218 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1219 	pos = kbasep_serialize_timestamp(buffer, pos);
1220 	pos = kbasep_serialize_bytes(buffer,
1221 		pos, &atom, sizeof(atom));
1222 	pos = kbasep_serialize_bytes(buffer,
1223 		pos, &prio, sizeof(prio));
1224 
1225 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1226 }
1227 
__kbase_tlstream_tl_attrib_atom_state(struct kbase_tlstream * stream,const void * atom,u32 state)1228 void __kbase_tlstream_tl_attrib_atom_state(
1229 	struct kbase_tlstream *stream,
1230 	const void *atom,
1231 	u32 state)
1232 {
1233 	const u32 msg_id = KBASE_TL_ATTRIB_ATOM_STATE;
1234 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1235 		+ sizeof(atom)
1236 		+ sizeof(state)
1237 		;
1238 	char *buffer;
1239 	unsigned long acq_flags;
1240 	size_t pos = 0;
1241 
1242 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1243 
1244 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1245 	pos = kbasep_serialize_timestamp(buffer, pos);
1246 	pos = kbasep_serialize_bytes(buffer,
1247 		pos, &atom, sizeof(atom));
1248 	pos = kbasep_serialize_bytes(buffer,
1249 		pos, &state, sizeof(state));
1250 
1251 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1252 }
1253 
__kbase_tlstream_tl_attrib_atom_prioritized(struct kbase_tlstream * stream,const void * atom)1254 void __kbase_tlstream_tl_attrib_atom_prioritized(
1255 	struct kbase_tlstream *stream,
1256 	const void *atom)
1257 {
1258 	const u32 msg_id = KBASE_TL_ATTRIB_ATOM_PRIORITIZED;
1259 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1260 		+ sizeof(atom)
1261 		;
1262 	char *buffer;
1263 	unsigned long acq_flags;
1264 	size_t pos = 0;
1265 
1266 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1267 
1268 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1269 	pos = kbasep_serialize_timestamp(buffer, pos);
1270 	pos = kbasep_serialize_bytes(buffer,
1271 		pos, &atom, sizeof(atom));
1272 
1273 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1274 }
1275 
__kbase_tlstream_tl_attrib_atom_jit(struct kbase_tlstream * stream,const void * atom,u64 edit_addr,u64 new_addr,u32 jit_flags,u64 mem_flags,u32 j_id,u64 com_pgs,u64 extent,u64 va_pgs)1276 void __kbase_tlstream_tl_attrib_atom_jit(
1277 	struct kbase_tlstream *stream,
1278 	const void *atom,
1279 	u64 edit_addr,
1280 	u64 new_addr,
1281 	u32 jit_flags,
1282 	u64 mem_flags,
1283 	u32 j_id,
1284 	u64 com_pgs,
1285 	u64 extent,
1286 	u64 va_pgs)
1287 {
1288 	const u32 msg_id = KBASE_TL_ATTRIB_ATOM_JIT;
1289 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1290 		+ sizeof(atom)
1291 		+ sizeof(edit_addr)
1292 		+ sizeof(new_addr)
1293 		+ sizeof(jit_flags)
1294 		+ sizeof(mem_flags)
1295 		+ sizeof(j_id)
1296 		+ sizeof(com_pgs)
1297 		+ sizeof(extent)
1298 		+ sizeof(va_pgs)
1299 		;
1300 	char *buffer;
1301 	unsigned long acq_flags;
1302 	size_t pos = 0;
1303 
1304 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1305 
1306 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1307 	pos = kbasep_serialize_timestamp(buffer, pos);
1308 	pos = kbasep_serialize_bytes(buffer,
1309 		pos, &atom, sizeof(atom));
1310 	pos = kbasep_serialize_bytes(buffer,
1311 		pos, &edit_addr, sizeof(edit_addr));
1312 	pos = kbasep_serialize_bytes(buffer,
1313 		pos, &new_addr, sizeof(new_addr));
1314 	pos = kbasep_serialize_bytes(buffer,
1315 		pos, &jit_flags, sizeof(jit_flags));
1316 	pos = kbasep_serialize_bytes(buffer,
1317 		pos, &mem_flags, sizeof(mem_flags));
1318 	pos = kbasep_serialize_bytes(buffer,
1319 		pos, &j_id, sizeof(j_id));
1320 	pos = kbasep_serialize_bytes(buffer,
1321 		pos, &com_pgs, sizeof(com_pgs));
1322 	pos = kbasep_serialize_bytes(buffer,
1323 		pos, &extent, sizeof(extent));
1324 	pos = kbasep_serialize_bytes(buffer,
1325 		pos, &va_pgs, sizeof(va_pgs));
1326 
1327 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1328 }
1329 
__kbase_tlstream_tl_jit_usedpages(struct kbase_tlstream * stream,u64 used_pages,u32 j_id)1330 void __kbase_tlstream_tl_jit_usedpages(
1331 	struct kbase_tlstream *stream,
1332 	u64 used_pages,
1333 	u32 j_id)
1334 {
1335 	const u32 msg_id = KBASE_TL_JIT_USEDPAGES;
1336 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1337 		+ sizeof(used_pages)
1338 		+ sizeof(j_id)
1339 		;
1340 	char *buffer;
1341 	unsigned long acq_flags;
1342 	size_t pos = 0;
1343 
1344 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1345 
1346 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1347 	pos = kbasep_serialize_timestamp(buffer, pos);
1348 	pos = kbasep_serialize_bytes(buffer,
1349 		pos, &used_pages, sizeof(used_pages));
1350 	pos = kbasep_serialize_bytes(buffer,
1351 		pos, &j_id, sizeof(j_id));
1352 
1353 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1354 }
1355 
__kbase_tlstream_tl_attrib_atom_jitallocinfo(struct kbase_tlstream * stream,const void * atom,u64 va_pgs,u64 com_pgs,u64 extent,u32 j_id,u32 bin_id,u32 max_allocs,u32 jit_flags,u32 usg_id)1356 void __kbase_tlstream_tl_attrib_atom_jitallocinfo(
1357 	struct kbase_tlstream *stream,
1358 	const void *atom,
1359 	u64 va_pgs,
1360 	u64 com_pgs,
1361 	u64 extent,
1362 	u32 j_id,
1363 	u32 bin_id,
1364 	u32 max_allocs,
1365 	u32 jit_flags,
1366 	u32 usg_id)
1367 {
1368 	const u32 msg_id = KBASE_TL_ATTRIB_ATOM_JITALLOCINFO;
1369 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1370 		+ sizeof(atom)
1371 		+ sizeof(va_pgs)
1372 		+ sizeof(com_pgs)
1373 		+ sizeof(extent)
1374 		+ sizeof(j_id)
1375 		+ sizeof(bin_id)
1376 		+ sizeof(max_allocs)
1377 		+ sizeof(jit_flags)
1378 		+ sizeof(usg_id)
1379 		;
1380 	char *buffer;
1381 	unsigned long acq_flags;
1382 	size_t pos = 0;
1383 
1384 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1385 
1386 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1387 	pos = kbasep_serialize_timestamp(buffer, pos);
1388 	pos = kbasep_serialize_bytes(buffer,
1389 		pos, &atom, sizeof(atom));
1390 	pos = kbasep_serialize_bytes(buffer,
1391 		pos, &va_pgs, sizeof(va_pgs));
1392 	pos = kbasep_serialize_bytes(buffer,
1393 		pos, &com_pgs, sizeof(com_pgs));
1394 	pos = kbasep_serialize_bytes(buffer,
1395 		pos, &extent, sizeof(extent));
1396 	pos = kbasep_serialize_bytes(buffer,
1397 		pos, &j_id, sizeof(j_id));
1398 	pos = kbasep_serialize_bytes(buffer,
1399 		pos, &bin_id, sizeof(bin_id));
1400 	pos = kbasep_serialize_bytes(buffer,
1401 		pos, &max_allocs, sizeof(max_allocs));
1402 	pos = kbasep_serialize_bytes(buffer,
1403 		pos, &jit_flags, sizeof(jit_flags));
1404 	pos = kbasep_serialize_bytes(buffer,
1405 		pos, &usg_id, sizeof(usg_id));
1406 
1407 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1408 }
1409 
__kbase_tlstream_tl_attrib_atom_jitfreeinfo(struct kbase_tlstream * stream,const void * atom,u32 j_id)1410 void __kbase_tlstream_tl_attrib_atom_jitfreeinfo(
1411 	struct kbase_tlstream *stream,
1412 	const void *atom,
1413 	u32 j_id)
1414 {
1415 	const u32 msg_id = KBASE_TL_ATTRIB_ATOM_JITFREEINFO;
1416 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1417 		+ sizeof(atom)
1418 		+ sizeof(j_id)
1419 		;
1420 	char *buffer;
1421 	unsigned long acq_flags;
1422 	size_t pos = 0;
1423 
1424 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1425 
1426 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1427 	pos = kbasep_serialize_timestamp(buffer, pos);
1428 	pos = kbasep_serialize_bytes(buffer,
1429 		pos, &atom, sizeof(atom));
1430 	pos = kbasep_serialize_bytes(buffer,
1431 		pos, &j_id, sizeof(j_id));
1432 
1433 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1434 }
1435 
__kbase_tlstream_tl_attrib_as_config(struct kbase_tlstream * stream,const void * address_space,u64 transtab,u64 memattr,u64 transcfg)1436 void __kbase_tlstream_tl_attrib_as_config(
1437 	struct kbase_tlstream *stream,
1438 	const void *address_space,
1439 	u64 transtab,
1440 	u64 memattr,
1441 	u64 transcfg)
1442 {
1443 	const u32 msg_id = KBASE_TL_ATTRIB_AS_CONFIG;
1444 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1445 		+ sizeof(address_space)
1446 		+ sizeof(transtab)
1447 		+ sizeof(memattr)
1448 		+ sizeof(transcfg)
1449 		;
1450 	char *buffer;
1451 	unsigned long acq_flags;
1452 	size_t pos = 0;
1453 
1454 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1455 
1456 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1457 	pos = kbasep_serialize_timestamp(buffer, pos);
1458 	pos = kbasep_serialize_bytes(buffer,
1459 		pos, &address_space, sizeof(address_space));
1460 	pos = kbasep_serialize_bytes(buffer,
1461 		pos, &transtab, sizeof(transtab));
1462 	pos = kbasep_serialize_bytes(buffer,
1463 		pos, &memattr, sizeof(memattr));
1464 	pos = kbasep_serialize_bytes(buffer,
1465 		pos, &transcfg, sizeof(transcfg));
1466 
1467 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1468 }
1469 
__kbase_tlstream_tl_event_lpu_softstop(struct kbase_tlstream * stream,const void * lpu)1470 void __kbase_tlstream_tl_event_lpu_softstop(
1471 	struct kbase_tlstream *stream,
1472 	const void *lpu)
1473 {
1474 	const u32 msg_id = KBASE_TL_EVENT_LPU_SOFTSTOP;
1475 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1476 		+ sizeof(lpu)
1477 		;
1478 	char *buffer;
1479 	unsigned long acq_flags;
1480 	size_t pos = 0;
1481 
1482 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1483 
1484 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1485 	pos = kbasep_serialize_timestamp(buffer, pos);
1486 	pos = kbasep_serialize_bytes(buffer,
1487 		pos, &lpu, sizeof(lpu));
1488 
1489 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1490 }
1491 
__kbase_tlstream_tl_event_atom_softstop_ex(struct kbase_tlstream * stream,const void * atom)1492 void __kbase_tlstream_tl_event_atom_softstop_ex(
1493 	struct kbase_tlstream *stream,
1494 	const void *atom)
1495 {
1496 	const u32 msg_id = KBASE_TL_EVENT_ATOM_SOFTSTOP_EX;
1497 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1498 		+ sizeof(atom)
1499 		;
1500 	char *buffer;
1501 	unsigned long acq_flags;
1502 	size_t pos = 0;
1503 
1504 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1505 
1506 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1507 	pos = kbasep_serialize_timestamp(buffer, pos);
1508 	pos = kbasep_serialize_bytes(buffer,
1509 		pos, &atom, sizeof(atom));
1510 
1511 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1512 }
1513 
__kbase_tlstream_tl_event_atom_softstop_issue(struct kbase_tlstream * stream,const void * atom)1514 void __kbase_tlstream_tl_event_atom_softstop_issue(
1515 	struct kbase_tlstream *stream,
1516 	const void *atom)
1517 {
1518 	const u32 msg_id = KBASE_TL_EVENT_ATOM_SOFTSTOP_ISSUE;
1519 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1520 		+ sizeof(atom)
1521 		;
1522 	char *buffer;
1523 	unsigned long acq_flags;
1524 	size_t pos = 0;
1525 
1526 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1527 
1528 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1529 	pos = kbasep_serialize_timestamp(buffer, pos);
1530 	pos = kbasep_serialize_bytes(buffer,
1531 		pos, &atom, sizeof(atom));
1532 
1533 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1534 }
1535 
__kbase_tlstream_tl_event_atom_softjob_start(struct kbase_tlstream * stream,const void * atom)1536 void __kbase_tlstream_tl_event_atom_softjob_start(
1537 	struct kbase_tlstream *stream,
1538 	const void *atom)
1539 {
1540 	const u32 msg_id = KBASE_TL_EVENT_ATOM_SOFTJOB_START;
1541 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1542 		+ sizeof(atom)
1543 		;
1544 	char *buffer;
1545 	unsigned long acq_flags;
1546 	size_t pos = 0;
1547 
1548 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1549 
1550 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1551 	pos = kbasep_serialize_timestamp(buffer, pos);
1552 	pos = kbasep_serialize_bytes(buffer,
1553 		pos, &atom, sizeof(atom));
1554 
1555 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1556 }
1557 
__kbase_tlstream_tl_event_atom_softjob_end(struct kbase_tlstream * stream,const void * atom)1558 void __kbase_tlstream_tl_event_atom_softjob_end(
1559 	struct kbase_tlstream *stream,
1560 	const void *atom)
1561 {
1562 	const u32 msg_id = KBASE_TL_EVENT_ATOM_SOFTJOB_END;
1563 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1564 		+ sizeof(atom)
1565 		;
1566 	char *buffer;
1567 	unsigned long acq_flags;
1568 	size_t pos = 0;
1569 
1570 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1571 
1572 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1573 	pos = kbasep_serialize_timestamp(buffer, pos);
1574 	pos = kbasep_serialize_bytes(buffer,
1575 		pos, &atom, sizeof(atom));
1576 
1577 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1578 }
1579 
__kbase_tlstream_tl_arbiter_granted(struct kbase_tlstream * stream,const void * gpu)1580 void __kbase_tlstream_tl_arbiter_granted(
1581 	struct kbase_tlstream *stream,
1582 	const void *gpu)
1583 {
1584 	const u32 msg_id = KBASE_TL_ARBITER_GRANTED;
1585 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1586 		+ sizeof(gpu)
1587 		;
1588 	char *buffer;
1589 	unsigned long acq_flags;
1590 	size_t pos = 0;
1591 
1592 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1593 
1594 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1595 	pos = kbasep_serialize_timestamp(buffer, pos);
1596 	pos = kbasep_serialize_bytes(buffer,
1597 		pos, &gpu, sizeof(gpu));
1598 
1599 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1600 }
1601 
__kbase_tlstream_tl_arbiter_started(struct kbase_tlstream * stream,const void * gpu)1602 void __kbase_tlstream_tl_arbiter_started(
1603 	struct kbase_tlstream *stream,
1604 	const void *gpu)
1605 {
1606 	const u32 msg_id = KBASE_TL_ARBITER_STARTED;
1607 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1608 		+ sizeof(gpu)
1609 		;
1610 	char *buffer;
1611 	unsigned long acq_flags;
1612 	size_t pos = 0;
1613 
1614 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1615 
1616 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1617 	pos = kbasep_serialize_timestamp(buffer, pos);
1618 	pos = kbasep_serialize_bytes(buffer,
1619 		pos, &gpu, sizeof(gpu));
1620 
1621 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1622 }
1623 
__kbase_tlstream_tl_arbiter_stop_requested(struct kbase_tlstream * stream,const void * gpu)1624 void __kbase_tlstream_tl_arbiter_stop_requested(
1625 	struct kbase_tlstream *stream,
1626 	const void *gpu)
1627 {
1628 	const u32 msg_id = KBASE_TL_ARBITER_STOP_REQUESTED;
1629 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1630 		+ sizeof(gpu)
1631 		;
1632 	char *buffer;
1633 	unsigned long acq_flags;
1634 	size_t pos = 0;
1635 
1636 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1637 
1638 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1639 	pos = kbasep_serialize_timestamp(buffer, pos);
1640 	pos = kbasep_serialize_bytes(buffer,
1641 		pos, &gpu, sizeof(gpu));
1642 
1643 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1644 }
1645 
__kbase_tlstream_tl_arbiter_stopped(struct kbase_tlstream * stream,const void * gpu)1646 void __kbase_tlstream_tl_arbiter_stopped(
1647 	struct kbase_tlstream *stream,
1648 	const void *gpu)
1649 {
1650 	const u32 msg_id = KBASE_TL_ARBITER_STOPPED;
1651 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1652 		+ sizeof(gpu)
1653 		;
1654 	char *buffer;
1655 	unsigned long acq_flags;
1656 	size_t pos = 0;
1657 
1658 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1659 
1660 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1661 	pos = kbasep_serialize_timestamp(buffer, pos);
1662 	pos = kbasep_serialize_bytes(buffer,
1663 		pos, &gpu, sizeof(gpu));
1664 
1665 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1666 }
1667 
__kbase_tlstream_tl_arbiter_requested(struct kbase_tlstream * stream,const void * gpu)1668 void __kbase_tlstream_tl_arbiter_requested(
1669 	struct kbase_tlstream *stream,
1670 	const void *gpu)
1671 {
1672 	const u32 msg_id = KBASE_TL_ARBITER_REQUESTED;
1673 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1674 		+ sizeof(gpu)
1675 		;
1676 	char *buffer;
1677 	unsigned long acq_flags;
1678 	size_t pos = 0;
1679 
1680 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1681 
1682 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1683 	pos = kbasep_serialize_timestamp(buffer, pos);
1684 	pos = kbasep_serialize_bytes(buffer,
1685 		pos, &gpu, sizeof(gpu));
1686 
1687 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1688 }
1689 
__kbase_tlstream_jd_gpu_soft_reset(struct kbase_tlstream * stream,const void * gpu)1690 void __kbase_tlstream_jd_gpu_soft_reset(
1691 	struct kbase_tlstream *stream,
1692 	const void *gpu)
1693 {
1694 	const u32 msg_id = KBASE_JD_GPU_SOFT_RESET;
1695 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1696 		+ sizeof(gpu)
1697 		;
1698 	char *buffer;
1699 	unsigned long acq_flags;
1700 	size_t pos = 0;
1701 
1702 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1703 
1704 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1705 	pos = kbasep_serialize_timestamp(buffer, pos);
1706 	pos = kbasep_serialize_bytes(buffer,
1707 		pos, &gpu, sizeof(gpu));
1708 
1709 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1710 }
1711 
__kbase_tlstream_aux_pm_state(struct kbase_tlstream * stream,u32 core_type,u64 core_state_bitset)1712 void __kbase_tlstream_aux_pm_state(
1713 	struct kbase_tlstream *stream,
1714 	u32 core_type,
1715 	u64 core_state_bitset)
1716 {
1717 	const u32 msg_id = KBASE_AUX_PM_STATE;
1718 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1719 		+ sizeof(core_type)
1720 		+ sizeof(core_state_bitset)
1721 		;
1722 	char *buffer;
1723 	unsigned long acq_flags;
1724 	size_t pos = 0;
1725 
1726 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1727 
1728 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1729 	pos = kbasep_serialize_timestamp(buffer, pos);
1730 	pos = kbasep_serialize_bytes(buffer,
1731 		pos, &core_type, sizeof(core_type));
1732 	pos = kbasep_serialize_bytes(buffer,
1733 		pos, &core_state_bitset, sizeof(core_state_bitset));
1734 
1735 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1736 }
1737 
__kbase_tlstream_aux_pagefault(struct kbase_tlstream * stream,u32 ctx_nr,u32 as_nr,u64 page_cnt_change)1738 void __kbase_tlstream_aux_pagefault(
1739 	struct kbase_tlstream *stream,
1740 	u32 ctx_nr,
1741 	u32 as_nr,
1742 	u64 page_cnt_change)
1743 {
1744 	const u32 msg_id = KBASE_AUX_PAGEFAULT;
1745 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1746 		+ sizeof(ctx_nr)
1747 		+ sizeof(as_nr)
1748 		+ sizeof(page_cnt_change)
1749 		;
1750 	char *buffer;
1751 	unsigned long acq_flags;
1752 	size_t pos = 0;
1753 
1754 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1755 
1756 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1757 	pos = kbasep_serialize_timestamp(buffer, pos);
1758 	pos = kbasep_serialize_bytes(buffer,
1759 		pos, &ctx_nr, sizeof(ctx_nr));
1760 	pos = kbasep_serialize_bytes(buffer,
1761 		pos, &as_nr, sizeof(as_nr));
1762 	pos = kbasep_serialize_bytes(buffer,
1763 		pos, &page_cnt_change, sizeof(page_cnt_change));
1764 
1765 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1766 }
1767 
__kbase_tlstream_aux_pagesalloc(struct kbase_tlstream * stream,u32 ctx_nr,u64 page_cnt)1768 void __kbase_tlstream_aux_pagesalloc(
1769 	struct kbase_tlstream *stream,
1770 	u32 ctx_nr,
1771 	u64 page_cnt)
1772 {
1773 	const u32 msg_id = KBASE_AUX_PAGESALLOC;
1774 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1775 		+ sizeof(ctx_nr)
1776 		+ sizeof(page_cnt)
1777 		;
1778 	char *buffer;
1779 	unsigned long acq_flags;
1780 	size_t pos = 0;
1781 
1782 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1783 
1784 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1785 	pos = kbasep_serialize_timestamp(buffer, pos);
1786 	pos = kbasep_serialize_bytes(buffer,
1787 		pos, &ctx_nr, sizeof(ctx_nr));
1788 	pos = kbasep_serialize_bytes(buffer,
1789 		pos, &page_cnt, sizeof(page_cnt));
1790 
1791 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1792 }
1793 
__kbase_tlstream_aux_devfreq_target(struct kbase_tlstream * stream,u64 target_freq)1794 void __kbase_tlstream_aux_devfreq_target(
1795 	struct kbase_tlstream *stream,
1796 	u64 target_freq)
1797 {
1798 	const u32 msg_id = KBASE_AUX_DEVFREQ_TARGET;
1799 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1800 		+ sizeof(target_freq)
1801 		;
1802 	char *buffer;
1803 	unsigned long acq_flags;
1804 	size_t pos = 0;
1805 
1806 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1807 
1808 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1809 	pos = kbasep_serialize_timestamp(buffer, pos);
1810 	pos = kbasep_serialize_bytes(buffer,
1811 		pos, &target_freq, sizeof(target_freq));
1812 
1813 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1814 }
1815 
__kbase_tlstream_aux_protected_enter_start(struct kbase_tlstream * stream,const void * gpu)1816 void __kbase_tlstream_aux_protected_enter_start(
1817 	struct kbase_tlstream *stream,
1818 	const void *gpu)
1819 {
1820 	const u32 msg_id = KBASE_AUX_PROTECTED_ENTER_START;
1821 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1822 		+ sizeof(gpu)
1823 		;
1824 	char *buffer;
1825 	unsigned long acq_flags;
1826 	size_t pos = 0;
1827 
1828 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1829 
1830 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1831 	pos = kbasep_serialize_timestamp(buffer, pos);
1832 	pos = kbasep_serialize_bytes(buffer,
1833 		pos, &gpu, sizeof(gpu));
1834 
1835 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1836 }
1837 
__kbase_tlstream_aux_protected_enter_end(struct kbase_tlstream * stream,const void * gpu)1838 void __kbase_tlstream_aux_protected_enter_end(
1839 	struct kbase_tlstream *stream,
1840 	const void *gpu)
1841 {
1842 	const u32 msg_id = KBASE_AUX_PROTECTED_ENTER_END;
1843 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1844 		+ sizeof(gpu)
1845 		;
1846 	char *buffer;
1847 	unsigned long acq_flags;
1848 	size_t pos = 0;
1849 
1850 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1851 
1852 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1853 	pos = kbasep_serialize_timestamp(buffer, pos);
1854 	pos = kbasep_serialize_bytes(buffer,
1855 		pos, &gpu, sizeof(gpu));
1856 
1857 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1858 }
1859 
__kbase_tlstream_aux_protected_leave_start(struct kbase_tlstream * stream,const void * gpu)1860 void __kbase_tlstream_aux_protected_leave_start(
1861 	struct kbase_tlstream *stream,
1862 	const void *gpu)
1863 {
1864 	const u32 msg_id = KBASE_AUX_PROTECTED_LEAVE_START;
1865 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1866 		+ sizeof(gpu)
1867 		;
1868 	char *buffer;
1869 	unsigned long acq_flags;
1870 	size_t pos = 0;
1871 
1872 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1873 
1874 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1875 	pos = kbasep_serialize_timestamp(buffer, pos);
1876 	pos = kbasep_serialize_bytes(buffer,
1877 		pos, &gpu, sizeof(gpu));
1878 
1879 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1880 }
1881 
__kbase_tlstream_aux_protected_leave_end(struct kbase_tlstream * stream,const void * gpu)1882 void __kbase_tlstream_aux_protected_leave_end(
1883 	struct kbase_tlstream *stream,
1884 	const void *gpu)
1885 {
1886 	const u32 msg_id = KBASE_AUX_PROTECTED_LEAVE_END;
1887 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1888 		+ sizeof(gpu)
1889 		;
1890 	char *buffer;
1891 	unsigned long acq_flags;
1892 	size_t pos = 0;
1893 
1894 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1895 
1896 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1897 	pos = kbasep_serialize_timestamp(buffer, pos);
1898 	pos = kbasep_serialize_bytes(buffer,
1899 		pos, &gpu, sizeof(gpu));
1900 
1901 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1902 }
1903 
__kbase_tlstream_aux_jit_stats(struct kbase_tlstream * stream,u32 ctx_nr,u32 bid,u32 max_allocs,u32 allocs,u32 va_pages,u32 ph_pages)1904 void __kbase_tlstream_aux_jit_stats(
1905 	struct kbase_tlstream *stream,
1906 	u32 ctx_nr,
1907 	u32 bid,
1908 	u32 max_allocs,
1909 	u32 allocs,
1910 	u32 va_pages,
1911 	u32 ph_pages)
1912 {
1913 	const u32 msg_id = KBASE_AUX_JIT_STATS;
1914 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1915 		+ sizeof(ctx_nr)
1916 		+ sizeof(bid)
1917 		+ sizeof(max_allocs)
1918 		+ sizeof(allocs)
1919 		+ sizeof(va_pages)
1920 		+ sizeof(ph_pages)
1921 		;
1922 	char *buffer;
1923 	unsigned long acq_flags;
1924 	size_t pos = 0;
1925 
1926 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1927 
1928 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1929 	pos = kbasep_serialize_timestamp(buffer, pos);
1930 	pos = kbasep_serialize_bytes(buffer,
1931 		pos, &ctx_nr, sizeof(ctx_nr));
1932 	pos = kbasep_serialize_bytes(buffer,
1933 		pos, &bid, sizeof(bid));
1934 	pos = kbasep_serialize_bytes(buffer,
1935 		pos, &max_allocs, sizeof(max_allocs));
1936 	pos = kbasep_serialize_bytes(buffer,
1937 		pos, &allocs, sizeof(allocs));
1938 	pos = kbasep_serialize_bytes(buffer,
1939 		pos, &va_pages, sizeof(va_pages));
1940 	pos = kbasep_serialize_bytes(buffer,
1941 		pos, &ph_pages, sizeof(ph_pages));
1942 
1943 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1944 }
1945 
__kbase_tlstream_aux_tiler_heap_stats(struct kbase_tlstream * stream,u32 ctx_nr,u64 heap_id,u32 va_pages,u32 ph_pages,u32 max_chunks,u32 chunk_size,u32 chunk_count,u32 target_in_flight,u32 nr_in_flight)1946 void __kbase_tlstream_aux_tiler_heap_stats(
1947 	struct kbase_tlstream *stream,
1948 	u32 ctx_nr,
1949 	u64 heap_id,
1950 	u32 va_pages,
1951 	u32 ph_pages,
1952 	u32 max_chunks,
1953 	u32 chunk_size,
1954 	u32 chunk_count,
1955 	u32 target_in_flight,
1956 	u32 nr_in_flight)
1957 {
1958 	const u32 msg_id = KBASE_AUX_TILER_HEAP_STATS;
1959 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
1960 		+ sizeof(ctx_nr)
1961 		+ sizeof(heap_id)
1962 		+ sizeof(va_pages)
1963 		+ sizeof(ph_pages)
1964 		+ sizeof(max_chunks)
1965 		+ sizeof(chunk_size)
1966 		+ sizeof(chunk_count)
1967 		+ sizeof(target_in_flight)
1968 		+ sizeof(nr_in_flight)
1969 		;
1970 	char *buffer;
1971 	unsigned long acq_flags;
1972 	size_t pos = 0;
1973 
1974 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
1975 
1976 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
1977 	pos = kbasep_serialize_timestamp(buffer, pos);
1978 	pos = kbasep_serialize_bytes(buffer,
1979 		pos, &ctx_nr, sizeof(ctx_nr));
1980 	pos = kbasep_serialize_bytes(buffer,
1981 		pos, &heap_id, sizeof(heap_id));
1982 	pos = kbasep_serialize_bytes(buffer,
1983 		pos, &va_pages, sizeof(va_pages));
1984 	pos = kbasep_serialize_bytes(buffer,
1985 		pos, &ph_pages, sizeof(ph_pages));
1986 	pos = kbasep_serialize_bytes(buffer,
1987 		pos, &max_chunks, sizeof(max_chunks));
1988 	pos = kbasep_serialize_bytes(buffer,
1989 		pos, &chunk_size, sizeof(chunk_size));
1990 	pos = kbasep_serialize_bytes(buffer,
1991 		pos, &chunk_count, sizeof(chunk_count));
1992 	pos = kbasep_serialize_bytes(buffer,
1993 		pos, &target_in_flight, sizeof(target_in_flight));
1994 	pos = kbasep_serialize_bytes(buffer,
1995 		pos, &nr_in_flight, sizeof(nr_in_flight));
1996 
1997 	kbase_tlstream_msgbuf_release(stream, acq_flags);
1998 }
1999 
__kbase_tlstream_aux_event_job_slot(struct kbase_tlstream * stream,const void * ctx,u32 slot_nr,u32 atom_nr,u32 event)2000 void __kbase_tlstream_aux_event_job_slot(
2001 	struct kbase_tlstream *stream,
2002 	const void *ctx,
2003 	u32 slot_nr,
2004 	u32 atom_nr,
2005 	u32 event)
2006 {
2007 	const u32 msg_id = KBASE_AUX_EVENT_JOB_SLOT;
2008 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2009 		+ sizeof(ctx)
2010 		+ sizeof(slot_nr)
2011 		+ sizeof(atom_nr)
2012 		+ sizeof(event)
2013 		;
2014 	char *buffer;
2015 	unsigned long acq_flags;
2016 	size_t pos = 0;
2017 
2018 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2019 
2020 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2021 	pos = kbasep_serialize_timestamp(buffer, pos);
2022 	pos = kbasep_serialize_bytes(buffer,
2023 		pos, &ctx, sizeof(ctx));
2024 	pos = kbasep_serialize_bytes(buffer,
2025 		pos, &slot_nr, sizeof(slot_nr));
2026 	pos = kbasep_serialize_bytes(buffer,
2027 		pos, &atom_nr, sizeof(atom_nr));
2028 	pos = kbasep_serialize_bytes(buffer,
2029 		pos, &event, sizeof(event));
2030 
2031 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2032 }
2033 
__kbase_tlstream_aux_mmu_command(struct kbase_tlstream * stream,u32 kernel_ctx_id,u32 mmu_cmd_id,u32 mmu_synchronicity,u64 mmu_lock_addr,u32 mmu_lock_page_num)2034 void __kbase_tlstream_aux_mmu_command(
2035 	struct kbase_tlstream *stream,
2036 	u32 kernel_ctx_id,
2037 	u32 mmu_cmd_id,
2038 	u32 mmu_synchronicity,
2039 	u64 mmu_lock_addr,
2040 	u32 mmu_lock_page_num)
2041 {
2042 	const u32 msg_id = KBASE_AUX_MMU_COMMAND;
2043 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2044 		+ sizeof(kernel_ctx_id)
2045 		+ sizeof(mmu_cmd_id)
2046 		+ sizeof(mmu_synchronicity)
2047 		+ sizeof(mmu_lock_addr)
2048 		+ sizeof(mmu_lock_page_num)
2049 		;
2050 	char *buffer;
2051 	unsigned long acq_flags;
2052 	size_t pos = 0;
2053 
2054 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2055 
2056 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2057 	pos = kbasep_serialize_timestamp(buffer, pos);
2058 	pos = kbasep_serialize_bytes(buffer,
2059 		pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
2060 	pos = kbasep_serialize_bytes(buffer,
2061 		pos, &mmu_cmd_id, sizeof(mmu_cmd_id));
2062 	pos = kbasep_serialize_bytes(buffer,
2063 		pos, &mmu_synchronicity, sizeof(mmu_synchronicity));
2064 	pos = kbasep_serialize_bytes(buffer,
2065 		pos, &mmu_lock_addr, sizeof(mmu_lock_addr));
2066 	pos = kbasep_serialize_bytes(buffer,
2067 		pos, &mmu_lock_page_num, sizeof(mmu_lock_page_num));
2068 
2069 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2070 }
2071 
__kbase_tlstream_tl_kbase_new_device(struct kbase_tlstream * stream,u32 kbase_device_id,u32 kbase_device_gpu_core_count,u32 kbase_device_max_num_csgs,u32 kbase_device_as_count,u32 kbase_device_sb_entry_count,u32 kbase_device_has_cross_stream_sync,u32 kbase_device_supports_gpu_sleep)2072 void __kbase_tlstream_tl_kbase_new_device(
2073 	struct kbase_tlstream *stream,
2074 	u32 kbase_device_id,
2075 	u32 kbase_device_gpu_core_count,
2076 	u32 kbase_device_max_num_csgs,
2077 	u32 kbase_device_as_count,
2078 	u32 kbase_device_sb_entry_count,
2079 	u32 kbase_device_has_cross_stream_sync,
2080 	u32 kbase_device_supports_gpu_sleep)
2081 {
2082 	const u32 msg_id = KBASE_TL_KBASE_NEW_DEVICE;
2083 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2084 		+ sizeof(kbase_device_id)
2085 		+ sizeof(kbase_device_gpu_core_count)
2086 		+ sizeof(kbase_device_max_num_csgs)
2087 		+ sizeof(kbase_device_as_count)
2088 		+ sizeof(kbase_device_sb_entry_count)
2089 		+ sizeof(kbase_device_has_cross_stream_sync)
2090 		+ sizeof(kbase_device_supports_gpu_sleep)
2091 		;
2092 	char *buffer;
2093 	unsigned long acq_flags;
2094 	size_t pos = 0;
2095 
2096 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2097 
2098 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2099 	pos = kbasep_serialize_timestamp(buffer, pos);
2100 	pos = kbasep_serialize_bytes(buffer,
2101 		pos, &kbase_device_id, sizeof(kbase_device_id));
2102 	pos = kbasep_serialize_bytes(buffer,
2103 		pos, &kbase_device_gpu_core_count, sizeof(kbase_device_gpu_core_count));
2104 	pos = kbasep_serialize_bytes(buffer,
2105 		pos, &kbase_device_max_num_csgs, sizeof(kbase_device_max_num_csgs));
2106 	pos = kbasep_serialize_bytes(buffer,
2107 		pos, &kbase_device_as_count, sizeof(kbase_device_as_count));
2108 	pos = kbasep_serialize_bytes(buffer,
2109 		pos, &kbase_device_sb_entry_count, sizeof(kbase_device_sb_entry_count));
2110 	pos = kbasep_serialize_bytes(buffer,
2111 		pos, &kbase_device_has_cross_stream_sync, sizeof(kbase_device_has_cross_stream_sync));
2112 	pos = kbasep_serialize_bytes(buffer,
2113 		pos, &kbase_device_supports_gpu_sleep, sizeof(kbase_device_supports_gpu_sleep));
2114 
2115 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2116 }
2117 
__kbase_tlstream_tl_kbase_device_program_csg(struct kbase_tlstream * stream,u32 kbase_device_id,u32 kernel_ctx_id,u32 gpu_cmdq_grp_handle,u32 kbase_device_csg_slot_index,u32 kbase_device_csg_slot_resumed)2118 void __kbase_tlstream_tl_kbase_device_program_csg(
2119 	struct kbase_tlstream *stream,
2120 	u32 kbase_device_id,
2121 	u32 kernel_ctx_id,
2122 	u32 gpu_cmdq_grp_handle,
2123 	u32 kbase_device_csg_slot_index,
2124 	u32 kbase_device_csg_slot_resumed)
2125 {
2126 	const u32 msg_id = KBASE_TL_KBASE_DEVICE_PROGRAM_CSG;
2127 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2128 		+ sizeof(kbase_device_id)
2129 		+ sizeof(kernel_ctx_id)
2130 		+ sizeof(gpu_cmdq_grp_handle)
2131 		+ sizeof(kbase_device_csg_slot_index)
2132 		+ sizeof(kbase_device_csg_slot_resumed)
2133 		;
2134 	char *buffer;
2135 	unsigned long acq_flags;
2136 	size_t pos = 0;
2137 
2138 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2139 
2140 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2141 	pos = kbasep_serialize_timestamp(buffer, pos);
2142 	pos = kbasep_serialize_bytes(buffer,
2143 		pos, &kbase_device_id, sizeof(kbase_device_id));
2144 	pos = kbasep_serialize_bytes(buffer,
2145 		pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
2146 	pos = kbasep_serialize_bytes(buffer,
2147 		pos, &gpu_cmdq_grp_handle, sizeof(gpu_cmdq_grp_handle));
2148 	pos = kbasep_serialize_bytes(buffer,
2149 		pos, &kbase_device_csg_slot_index, sizeof(kbase_device_csg_slot_index));
2150 	pos = kbasep_serialize_bytes(buffer,
2151 		pos, &kbase_device_csg_slot_resumed, sizeof(kbase_device_csg_slot_resumed));
2152 
2153 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2154 }
2155 
__kbase_tlstream_tl_kbase_device_deprogram_csg(struct kbase_tlstream * stream,u32 kbase_device_id,u32 kbase_device_csg_slot_index)2156 void __kbase_tlstream_tl_kbase_device_deprogram_csg(
2157 	struct kbase_tlstream *stream,
2158 	u32 kbase_device_id,
2159 	u32 kbase_device_csg_slot_index)
2160 {
2161 	const u32 msg_id = KBASE_TL_KBASE_DEVICE_DEPROGRAM_CSG;
2162 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2163 		+ sizeof(kbase_device_id)
2164 		+ sizeof(kbase_device_csg_slot_index)
2165 		;
2166 	char *buffer;
2167 	unsigned long acq_flags;
2168 	size_t pos = 0;
2169 
2170 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2171 
2172 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2173 	pos = kbasep_serialize_timestamp(buffer, pos);
2174 	pos = kbasep_serialize_bytes(buffer,
2175 		pos, &kbase_device_id, sizeof(kbase_device_id));
2176 	pos = kbasep_serialize_bytes(buffer,
2177 		pos, &kbase_device_csg_slot_index, sizeof(kbase_device_csg_slot_index));
2178 
2179 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2180 }
2181 
__kbase_tlstream_tl_kbase_device_halt_csg(struct kbase_tlstream * stream,u32 kbase_device_id,u32 kbase_device_csg_slot_index)2182 void __kbase_tlstream_tl_kbase_device_halt_csg(
2183 	struct kbase_tlstream *stream,
2184 	u32 kbase_device_id,
2185 	u32 kbase_device_csg_slot_index)
2186 {
2187 	const u32 msg_id = KBASE_TL_KBASE_DEVICE_HALT_CSG;
2188 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2189 		+ sizeof(kbase_device_id)
2190 		+ sizeof(kbase_device_csg_slot_index)
2191 		;
2192 	char *buffer;
2193 	unsigned long acq_flags;
2194 	size_t pos = 0;
2195 
2196 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2197 
2198 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2199 	pos = kbasep_serialize_timestamp(buffer, pos);
2200 	pos = kbasep_serialize_bytes(buffer,
2201 		pos, &kbase_device_id, sizeof(kbase_device_id));
2202 	pos = kbasep_serialize_bytes(buffer,
2203 		pos, &kbase_device_csg_slot_index, sizeof(kbase_device_csg_slot_index));
2204 
2205 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2206 }
2207 
__kbase_tlstream_tl_kbase_new_ctx(struct kbase_tlstream * stream,u32 kernel_ctx_id,u32 kbase_device_id)2208 void __kbase_tlstream_tl_kbase_new_ctx(
2209 	struct kbase_tlstream *stream,
2210 	u32 kernel_ctx_id,
2211 	u32 kbase_device_id)
2212 {
2213 	const u32 msg_id = KBASE_TL_KBASE_NEW_CTX;
2214 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2215 		+ sizeof(kernel_ctx_id)
2216 		+ sizeof(kbase_device_id)
2217 		;
2218 	char *buffer;
2219 	unsigned long acq_flags;
2220 	size_t pos = 0;
2221 
2222 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2223 
2224 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2225 	pos = kbasep_serialize_timestamp(buffer, pos);
2226 	pos = kbasep_serialize_bytes(buffer,
2227 		pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
2228 	pos = kbasep_serialize_bytes(buffer,
2229 		pos, &kbase_device_id, sizeof(kbase_device_id));
2230 
2231 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2232 }
2233 
__kbase_tlstream_tl_kbase_del_ctx(struct kbase_tlstream * stream,u32 kernel_ctx_id)2234 void __kbase_tlstream_tl_kbase_del_ctx(
2235 	struct kbase_tlstream *stream,
2236 	u32 kernel_ctx_id)
2237 {
2238 	const u32 msg_id = KBASE_TL_KBASE_DEL_CTX;
2239 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2240 		+ sizeof(kernel_ctx_id)
2241 		;
2242 	char *buffer;
2243 	unsigned long acq_flags;
2244 	size_t pos = 0;
2245 
2246 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2247 
2248 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2249 	pos = kbasep_serialize_timestamp(buffer, pos);
2250 	pos = kbasep_serialize_bytes(buffer,
2251 		pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
2252 
2253 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2254 }
2255 
__kbase_tlstream_tl_kbase_ctx_assign_as(struct kbase_tlstream * stream,u32 kernel_ctx_id,u32 kbase_device_as_index)2256 void __kbase_tlstream_tl_kbase_ctx_assign_as(
2257 	struct kbase_tlstream *stream,
2258 	u32 kernel_ctx_id,
2259 	u32 kbase_device_as_index)
2260 {
2261 	const u32 msg_id = KBASE_TL_KBASE_CTX_ASSIGN_AS;
2262 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2263 		+ sizeof(kernel_ctx_id)
2264 		+ sizeof(kbase_device_as_index)
2265 		;
2266 	char *buffer;
2267 	unsigned long acq_flags;
2268 	size_t pos = 0;
2269 
2270 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2271 
2272 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2273 	pos = kbasep_serialize_timestamp(buffer, pos);
2274 	pos = kbasep_serialize_bytes(buffer,
2275 		pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
2276 	pos = kbasep_serialize_bytes(buffer,
2277 		pos, &kbase_device_as_index, sizeof(kbase_device_as_index));
2278 
2279 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2280 }
2281 
__kbase_tlstream_tl_kbase_ctx_unassign_as(struct kbase_tlstream * stream,u32 kernel_ctx_id)2282 void __kbase_tlstream_tl_kbase_ctx_unassign_as(
2283 	struct kbase_tlstream *stream,
2284 	u32 kernel_ctx_id)
2285 {
2286 	const u32 msg_id = KBASE_TL_KBASE_CTX_UNASSIGN_AS;
2287 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2288 		+ sizeof(kernel_ctx_id)
2289 		;
2290 	char *buffer;
2291 	unsigned long acq_flags;
2292 	size_t pos = 0;
2293 
2294 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2295 
2296 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2297 	pos = kbasep_serialize_timestamp(buffer, pos);
2298 	pos = kbasep_serialize_bytes(buffer,
2299 		pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
2300 
2301 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2302 }
2303 
__kbase_tlstream_tl_kbase_new_kcpuqueue(struct kbase_tlstream * stream,const void * kcpu_queue,u32 kernel_ctx_id,u32 kcpuq_num_pending_cmds)2304 void __kbase_tlstream_tl_kbase_new_kcpuqueue(
2305 	struct kbase_tlstream *stream,
2306 	const void *kcpu_queue,
2307 	u32 kernel_ctx_id,
2308 	u32 kcpuq_num_pending_cmds)
2309 {
2310 	const u32 msg_id = KBASE_TL_KBASE_NEW_KCPUQUEUE;
2311 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2312 		+ sizeof(kcpu_queue)
2313 		+ sizeof(kernel_ctx_id)
2314 		+ sizeof(kcpuq_num_pending_cmds)
2315 		;
2316 	char *buffer;
2317 	unsigned long acq_flags;
2318 	size_t pos = 0;
2319 
2320 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2321 
2322 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2323 	pos = kbasep_serialize_timestamp(buffer, pos);
2324 	pos = kbasep_serialize_bytes(buffer,
2325 		pos, &kcpu_queue, sizeof(kcpu_queue));
2326 	pos = kbasep_serialize_bytes(buffer,
2327 		pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
2328 	pos = kbasep_serialize_bytes(buffer,
2329 		pos, &kcpuq_num_pending_cmds, sizeof(kcpuq_num_pending_cmds));
2330 
2331 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2332 }
2333 
__kbase_tlstream_tl_kbase_del_kcpuqueue(struct kbase_tlstream * stream,const void * kcpu_queue)2334 void __kbase_tlstream_tl_kbase_del_kcpuqueue(
2335 	struct kbase_tlstream *stream,
2336 	const void *kcpu_queue)
2337 {
2338 	const u32 msg_id = KBASE_TL_KBASE_DEL_KCPUQUEUE;
2339 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2340 		+ sizeof(kcpu_queue)
2341 		;
2342 	char *buffer;
2343 	unsigned long acq_flags;
2344 	size_t pos = 0;
2345 
2346 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2347 
2348 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2349 	pos = kbasep_serialize_timestamp(buffer, pos);
2350 	pos = kbasep_serialize_bytes(buffer,
2351 		pos, &kcpu_queue, sizeof(kcpu_queue));
2352 
2353 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2354 }
2355 
__kbase_tlstream_tl_kbase_kcpuqueue_enqueue_fence_signal(struct kbase_tlstream * stream,const void * kcpu_queue,const void * fence)2356 void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_fence_signal(
2357 	struct kbase_tlstream *stream,
2358 	const void *kcpu_queue,
2359 	const void *fence)
2360 {
2361 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_FENCE_SIGNAL;
2362 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2363 		+ sizeof(kcpu_queue)
2364 		+ sizeof(fence)
2365 		;
2366 	char *buffer;
2367 	unsigned long acq_flags;
2368 	size_t pos = 0;
2369 
2370 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2371 
2372 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2373 	pos = kbasep_serialize_timestamp(buffer, pos);
2374 	pos = kbasep_serialize_bytes(buffer,
2375 		pos, &kcpu_queue, sizeof(kcpu_queue));
2376 	pos = kbasep_serialize_bytes(buffer,
2377 		pos, &fence, sizeof(fence));
2378 
2379 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2380 }
2381 
__kbase_tlstream_tl_kbase_kcpuqueue_enqueue_fence_wait(struct kbase_tlstream * stream,const void * kcpu_queue,const void * fence)2382 void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_fence_wait(
2383 	struct kbase_tlstream *stream,
2384 	const void *kcpu_queue,
2385 	const void *fence)
2386 {
2387 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_FENCE_WAIT;
2388 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2389 		+ sizeof(kcpu_queue)
2390 		+ sizeof(fence)
2391 		;
2392 	char *buffer;
2393 	unsigned long acq_flags;
2394 	size_t pos = 0;
2395 
2396 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2397 
2398 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2399 	pos = kbasep_serialize_timestamp(buffer, pos);
2400 	pos = kbasep_serialize_bytes(buffer,
2401 		pos, &kcpu_queue, sizeof(kcpu_queue));
2402 	pos = kbasep_serialize_bytes(buffer,
2403 		pos, &fence, sizeof(fence));
2404 
2405 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2406 }
2407 
__kbase_tlstream_tl_kbase_kcpuqueue_enqueue_cqs_wait(struct kbase_tlstream * stream,const void * kcpu_queue,u64 cqs_obj_gpu_addr,u32 cqs_obj_compare_value,u32 cqs_obj_inherit_error)2408 void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_cqs_wait(
2409 	struct kbase_tlstream *stream,
2410 	const void *kcpu_queue,
2411 	u64 cqs_obj_gpu_addr,
2412 	u32 cqs_obj_compare_value,
2413 	u32 cqs_obj_inherit_error)
2414 {
2415 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_WAIT;
2416 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2417 		+ sizeof(kcpu_queue)
2418 		+ sizeof(cqs_obj_gpu_addr)
2419 		+ sizeof(cqs_obj_compare_value)
2420 		+ sizeof(cqs_obj_inherit_error)
2421 		;
2422 	char *buffer;
2423 	unsigned long acq_flags;
2424 	size_t pos = 0;
2425 
2426 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2427 
2428 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2429 	pos = kbasep_serialize_timestamp(buffer, pos);
2430 	pos = kbasep_serialize_bytes(buffer,
2431 		pos, &kcpu_queue, sizeof(kcpu_queue));
2432 	pos = kbasep_serialize_bytes(buffer,
2433 		pos, &cqs_obj_gpu_addr, sizeof(cqs_obj_gpu_addr));
2434 	pos = kbasep_serialize_bytes(buffer,
2435 		pos, &cqs_obj_compare_value, sizeof(cqs_obj_compare_value));
2436 	pos = kbasep_serialize_bytes(buffer,
2437 		pos, &cqs_obj_inherit_error, sizeof(cqs_obj_inherit_error));
2438 
2439 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2440 }
2441 
__kbase_tlstream_tl_kbase_kcpuqueue_enqueue_cqs_set(struct kbase_tlstream * stream,const void * kcpu_queue,u64 cqs_obj_gpu_addr)2442 void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_cqs_set(
2443 	struct kbase_tlstream *stream,
2444 	const void *kcpu_queue,
2445 	u64 cqs_obj_gpu_addr)
2446 {
2447 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_SET;
2448 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2449 		+ sizeof(kcpu_queue)
2450 		+ sizeof(cqs_obj_gpu_addr)
2451 		;
2452 	char *buffer;
2453 	unsigned long acq_flags;
2454 	size_t pos = 0;
2455 
2456 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2457 
2458 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2459 	pos = kbasep_serialize_timestamp(buffer, pos);
2460 	pos = kbasep_serialize_bytes(buffer,
2461 		pos, &kcpu_queue, sizeof(kcpu_queue));
2462 	pos = kbasep_serialize_bytes(buffer,
2463 		pos, &cqs_obj_gpu_addr, sizeof(cqs_obj_gpu_addr));
2464 
2465 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2466 }
2467 
__kbase_tlstream_tl_kbase_kcpuqueue_enqueue_map_import(struct kbase_tlstream * stream,const void * kcpu_queue,u64 map_import_buf_gpu_addr)2468 void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_map_import(
2469 	struct kbase_tlstream *stream,
2470 	const void *kcpu_queue,
2471 	u64 map_import_buf_gpu_addr)
2472 {
2473 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_MAP_IMPORT;
2474 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2475 		+ sizeof(kcpu_queue)
2476 		+ sizeof(map_import_buf_gpu_addr)
2477 		;
2478 	char *buffer;
2479 	unsigned long acq_flags;
2480 	size_t pos = 0;
2481 
2482 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2483 
2484 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2485 	pos = kbasep_serialize_timestamp(buffer, pos);
2486 	pos = kbasep_serialize_bytes(buffer,
2487 		pos, &kcpu_queue, sizeof(kcpu_queue));
2488 	pos = kbasep_serialize_bytes(buffer,
2489 		pos, &map_import_buf_gpu_addr, sizeof(map_import_buf_gpu_addr));
2490 
2491 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2492 }
2493 
__kbase_tlstream_tl_kbase_kcpuqueue_enqueue_unmap_import(struct kbase_tlstream * stream,const void * kcpu_queue,u64 map_import_buf_gpu_addr)2494 void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_unmap_import(
2495 	struct kbase_tlstream *stream,
2496 	const void *kcpu_queue,
2497 	u64 map_import_buf_gpu_addr)
2498 {
2499 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_UNMAP_IMPORT;
2500 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2501 		+ sizeof(kcpu_queue)
2502 		+ sizeof(map_import_buf_gpu_addr)
2503 		;
2504 	char *buffer;
2505 	unsigned long acq_flags;
2506 	size_t pos = 0;
2507 
2508 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2509 
2510 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2511 	pos = kbasep_serialize_timestamp(buffer, pos);
2512 	pos = kbasep_serialize_bytes(buffer,
2513 		pos, &kcpu_queue, sizeof(kcpu_queue));
2514 	pos = kbasep_serialize_bytes(buffer,
2515 		pos, &map_import_buf_gpu_addr, sizeof(map_import_buf_gpu_addr));
2516 
2517 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2518 }
2519 
__kbase_tlstream_tl_kbase_kcpuqueue_enqueue_unmap_import_force(struct kbase_tlstream * stream,const void * kcpu_queue,u64 map_import_buf_gpu_addr)2520 void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_unmap_import_force(
2521 	struct kbase_tlstream *stream,
2522 	const void *kcpu_queue,
2523 	u64 map_import_buf_gpu_addr)
2524 {
2525 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_UNMAP_IMPORT_FORCE;
2526 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2527 		+ sizeof(kcpu_queue)
2528 		+ sizeof(map_import_buf_gpu_addr)
2529 		;
2530 	char *buffer;
2531 	unsigned long acq_flags;
2532 	size_t pos = 0;
2533 
2534 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2535 
2536 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2537 	pos = kbasep_serialize_timestamp(buffer, pos);
2538 	pos = kbasep_serialize_bytes(buffer,
2539 		pos, &kcpu_queue, sizeof(kcpu_queue));
2540 	pos = kbasep_serialize_bytes(buffer,
2541 		pos, &map_import_buf_gpu_addr, sizeof(map_import_buf_gpu_addr));
2542 
2543 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2544 }
2545 
__kbase_tlstream_tl_kbase_kcpuqueue_enqueue_error_barrier(struct kbase_tlstream * stream,const void * kcpu_queue)2546 void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_error_barrier(
2547 	struct kbase_tlstream *stream,
2548 	const void *kcpu_queue)
2549 {
2550 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_ERROR_BARRIER;
2551 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2552 		+ sizeof(kcpu_queue)
2553 		;
2554 	char *buffer;
2555 	unsigned long acq_flags;
2556 	size_t pos = 0;
2557 
2558 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2559 
2560 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2561 	pos = kbasep_serialize_timestamp(buffer, pos);
2562 	pos = kbasep_serialize_bytes(buffer,
2563 		pos, &kcpu_queue, sizeof(kcpu_queue));
2564 
2565 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2566 }
2567 
__kbase_tlstream_tl_kbase_kcpuqueue_enqueue_group_suspend(struct kbase_tlstream * stream,const void * kcpu_queue,const void * group_suspend_buf,u32 gpu_cmdq_grp_handle)2568 void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_group_suspend(
2569 	struct kbase_tlstream *stream,
2570 	const void *kcpu_queue,
2571 	const void *group_suspend_buf,
2572 	u32 gpu_cmdq_grp_handle)
2573 {
2574 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_GROUP_SUSPEND;
2575 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2576 		+ sizeof(kcpu_queue)
2577 		+ sizeof(group_suspend_buf)
2578 		+ sizeof(gpu_cmdq_grp_handle)
2579 		;
2580 	char *buffer;
2581 	unsigned long acq_flags;
2582 	size_t pos = 0;
2583 
2584 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2585 
2586 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2587 	pos = kbasep_serialize_timestamp(buffer, pos);
2588 	pos = kbasep_serialize_bytes(buffer,
2589 		pos, &kcpu_queue, sizeof(kcpu_queue));
2590 	pos = kbasep_serialize_bytes(buffer,
2591 		pos, &group_suspend_buf, sizeof(group_suspend_buf));
2592 	pos = kbasep_serialize_bytes(buffer,
2593 		pos, &gpu_cmdq_grp_handle, sizeof(gpu_cmdq_grp_handle));
2594 
2595 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2596 }
2597 
__kbase_tlstream_tl_kbase_array_begin_kcpuqueue_enqueue_jit_alloc(struct kbase_tlstream * stream,const void * kcpu_queue)2598 void __kbase_tlstream_tl_kbase_array_begin_kcpuqueue_enqueue_jit_alloc(
2599 	struct kbase_tlstream *stream,
2600 	const void *kcpu_queue)
2601 {
2602 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_ENQUEUE_JIT_ALLOC;
2603 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2604 		+ sizeof(kcpu_queue)
2605 		;
2606 	char *buffer;
2607 	unsigned long acq_flags;
2608 	size_t pos = 0;
2609 
2610 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2611 
2612 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2613 	pos = kbasep_serialize_timestamp(buffer, pos);
2614 	pos = kbasep_serialize_bytes(buffer,
2615 		pos, &kcpu_queue, sizeof(kcpu_queue));
2616 
2617 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2618 }
2619 
__kbase_tlstream_tl_kbase_array_item_kcpuqueue_enqueue_jit_alloc(struct kbase_tlstream * stream,const void * kcpu_queue,u64 jit_alloc_gpu_alloc_addr_dest,u64 jit_alloc_va_pages,u64 jit_alloc_commit_pages,u64 jit_alloc_extent,u32 jit_alloc_jit_id,u32 jit_alloc_bin_id,u32 jit_alloc_max_allocations,u32 jit_alloc_flags,u32 jit_alloc_usage_id)2620 void __kbase_tlstream_tl_kbase_array_item_kcpuqueue_enqueue_jit_alloc(
2621 	struct kbase_tlstream *stream,
2622 	const void *kcpu_queue,
2623 	u64 jit_alloc_gpu_alloc_addr_dest,
2624 	u64 jit_alloc_va_pages,
2625 	u64 jit_alloc_commit_pages,
2626 	u64 jit_alloc_extent,
2627 	u32 jit_alloc_jit_id,
2628 	u32 jit_alloc_bin_id,
2629 	u32 jit_alloc_max_allocations,
2630 	u32 jit_alloc_flags,
2631 	u32 jit_alloc_usage_id)
2632 {
2633 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_ENQUEUE_JIT_ALLOC;
2634 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2635 		+ sizeof(kcpu_queue)
2636 		+ sizeof(jit_alloc_gpu_alloc_addr_dest)
2637 		+ sizeof(jit_alloc_va_pages)
2638 		+ sizeof(jit_alloc_commit_pages)
2639 		+ sizeof(jit_alloc_extent)
2640 		+ sizeof(jit_alloc_jit_id)
2641 		+ sizeof(jit_alloc_bin_id)
2642 		+ sizeof(jit_alloc_max_allocations)
2643 		+ sizeof(jit_alloc_flags)
2644 		+ sizeof(jit_alloc_usage_id)
2645 		;
2646 	char *buffer;
2647 	unsigned long acq_flags;
2648 	size_t pos = 0;
2649 
2650 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2651 
2652 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2653 	pos = kbasep_serialize_timestamp(buffer, pos);
2654 	pos = kbasep_serialize_bytes(buffer,
2655 		pos, &kcpu_queue, sizeof(kcpu_queue));
2656 	pos = kbasep_serialize_bytes(buffer,
2657 		pos, &jit_alloc_gpu_alloc_addr_dest, sizeof(jit_alloc_gpu_alloc_addr_dest));
2658 	pos = kbasep_serialize_bytes(buffer,
2659 		pos, &jit_alloc_va_pages, sizeof(jit_alloc_va_pages));
2660 	pos = kbasep_serialize_bytes(buffer,
2661 		pos, &jit_alloc_commit_pages, sizeof(jit_alloc_commit_pages));
2662 	pos = kbasep_serialize_bytes(buffer,
2663 		pos, &jit_alloc_extent, sizeof(jit_alloc_extent));
2664 	pos = kbasep_serialize_bytes(buffer,
2665 		pos, &jit_alloc_jit_id, sizeof(jit_alloc_jit_id));
2666 	pos = kbasep_serialize_bytes(buffer,
2667 		pos, &jit_alloc_bin_id, sizeof(jit_alloc_bin_id));
2668 	pos = kbasep_serialize_bytes(buffer,
2669 		pos, &jit_alloc_max_allocations, sizeof(jit_alloc_max_allocations));
2670 	pos = kbasep_serialize_bytes(buffer,
2671 		pos, &jit_alloc_flags, sizeof(jit_alloc_flags));
2672 	pos = kbasep_serialize_bytes(buffer,
2673 		pos, &jit_alloc_usage_id, sizeof(jit_alloc_usage_id));
2674 
2675 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2676 }
2677 
__kbase_tlstream_tl_kbase_array_end_kcpuqueue_enqueue_jit_alloc(struct kbase_tlstream * stream,const void * kcpu_queue)2678 void __kbase_tlstream_tl_kbase_array_end_kcpuqueue_enqueue_jit_alloc(
2679 	struct kbase_tlstream *stream,
2680 	const void *kcpu_queue)
2681 {
2682 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_ENQUEUE_JIT_ALLOC;
2683 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2684 		+ sizeof(kcpu_queue)
2685 		;
2686 	char *buffer;
2687 	unsigned long acq_flags;
2688 	size_t pos = 0;
2689 
2690 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2691 
2692 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2693 	pos = kbasep_serialize_timestamp(buffer, pos);
2694 	pos = kbasep_serialize_bytes(buffer,
2695 		pos, &kcpu_queue, sizeof(kcpu_queue));
2696 
2697 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2698 }
2699 
__kbase_tlstream_tl_kbase_array_begin_kcpuqueue_enqueue_jit_free(struct kbase_tlstream * stream,const void * kcpu_queue)2700 void __kbase_tlstream_tl_kbase_array_begin_kcpuqueue_enqueue_jit_free(
2701 	struct kbase_tlstream *stream,
2702 	const void *kcpu_queue)
2703 {
2704 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_ENQUEUE_JIT_FREE;
2705 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2706 		+ sizeof(kcpu_queue)
2707 		;
2708 	char *buffer;
2709 	unsigned long acq_flags;
2710 	size_t pos = 0;
2711 
2712 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2713 
2714 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2715 	pos = kbasep_serialize_timestamp(buffer, pos);
2716 	pos = kbasep_serialize_bytes(buffer,
2717 		pos, &kcpu_queue, sizeof(kcpu_queue));
2718 
2719 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2720 }
2721 
__kbase_tlstream_tl_kbase_array_item_kcpuqueue_enqueue_jit_free(struct kbase_tlstream * stream,const void * kcpu_queue,u32 jit_alloc_jit_id)2722 void __kbase_tlstream_tl_kbase_array_item_kcpuqueue_enqueue_jit_free(
2723 	struct kbase_tlstream *stream,
2724 	const void *kcpu_queue,
2725 	u32 jit_alloc_jit_id)
2726 {
2727 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_ENQUEUE_JIT_FREE;
2728 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2729 		+ sizeof(kcpu_queue)
2730 		+ sizeof(jit_alloc_jit_id)
2731 		;
2732 	char *buffer;
2733 	unsigned long acq_flags;
2734 	size_t pos = 0;
2735 
2736 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2737 
2738 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2739 	pos = kbasep_serialize_timestamp(buffer, pos);
2740 	pos = kbasep_serialize_bytes(buffer,
2741 		pos, &kcpu_queue, sizeof(kcpu_queue));
2742 	pos = kbasep_serialize_bytes(buffer,
2743 		pos, &jit_alloc_jit_id, sizeof(jit_alloc_jit_id));
2744 
2745 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2746 }
2747 
__kbase_tlstream_tl_kbase_array_end_kcpuqueue_enqueue_jit_free(struct kbase_tlstream * stream,const void * kcpu_queue)2748 void __kbase_tlstream_tl_kbase_array_end_kcpuqueue_enqueue_jit_free(
2749 	struct kbase_tlstream *stream,
2750 	const void *kcpu_queue)
2751 {
2752 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_ENQUEUE_JIT_FREE;
2753 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2754 		+ sizeof(kcpu_queue)
2755 		;
2756 	char *buffer;
2757 	unsigned long acq_flags;
2758 	size_t pos = 0;
2759 
2760 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2761 
2762 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2763 	pos = kbasep_serialize_timestamp(buffer, pos);
2764 	pos = kbasep_serialize_bytes(buffer,
2765 		pos, &kcpu_queue, sizeof(kcpu_queue));
2766 
2767 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2768 }
2769 
__kbase_tlstream_tl_kbase_kcpuqueue_execute_fence_signal_start(struct kbase_tlstream * stream,const void * kcpu_queue)2770 void __kbase_tlstream_tl_kbase_kcpuqueue_execute_fence_signal_start(
2771 	struct kbase_tlstream *stream,
2772 	const void *kcpu_queue)
2773 {
2774 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_SIGNAL_START;
2775 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2776 		+ sizeof(kcpu_queue)
2777 		;
2778 	char *buffer;
2779 	unsigned long acq_flags;
2780 	size_t pos = 0;
2781 
2782 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2783 
2784 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2785 	pos = kbasep_serialize_timestamp(buffer, pos);
2786 	pos = kbasep_serialize_bytes(buffer,
2787 		pos, &kcpu_queue, sizeof(kcpu_queue));
2788 
2789 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2790 }
2791 
__kbase_tlstream_tl_kbase_kcpuqueue_execute_fence_signal_end(struct kbase_tlstream * stream,const void * kcpu_queue,u32 execute_error)2792 void __kbase_tlstream_tl_kbase_kcpuqueue_execute_fence_signal_end(
2793 	struct kbase_tlstream *stream,
2794 	const void *kcpu_queue,
2795 	u32 execute_error)
2796 {
2797 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_SIGNAL_END;
2798 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2799 		+ sizeof(kcpu_queue)
2800 		+ sizeof(execute_error)
2801 		;
2802 	char *buffer;
2803 	unsigned long acq_flags;
2804 	size_t pos = 0;
2805 
2806 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2807 
2808 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2809 	pos = kbasep_serialize_timestamp(buffer, pos);
2810 	pos = kbasep_serialize_bytes(buffer,
2811 		pos, &kcpu_queue, sizeof(kcpu_queue));
2812 	pos = kbasep_serialize_bytes(buffer,
2813 		pos, &execute_error, sizeof(execute_error));
2814 
2815 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2816 }
2817 
__kbase_tlstream_tl_kbase_kcpuqueue_execute_fence_wait_start(struct kbase_tlstream * stream,const void * kcpu_queue)2818 void __kbase_tlstream_tl_kbase_kcpuqueue_execute_fence_wait_start(
2819 	struct kbase_tlstream *stream,
2820 	const void *kcpu_queue)
2821 {
2822 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_WAIT_START;
2823 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2824 		+ sizeof(kcpu_queue)
2825 		;
2826 	char *buffer;
2827 	unsigned long acq_flags;
2828 	size_t pos = 0;
2829 
2830 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2831 
2832 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2833 	pos = kbasep_serialize_timestamp(buffer, pos);
2834 	pos = kbasep_serialize_bytes(buffer,
2835 		pos, &kcpu_queue, sizeof(kcpu_queue));
2836 
2837 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2838 }
2839 
__kbase_tlstream_tl_kbase_kcpuqueue_execute_fence_wait_end(struct kbase_tlstream * stream,const void * kcpu_queue,u32 execute_error)2840 void __kbase_tlstream_tl_kbase_kcpuqueue_execute_fence_wait_end(
2841 	struct kbase_tlstream *stream,
2842 	const void *kcpu_queue,
2843 	u32 execute_error)
2844 {
2845 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_WAIT_END;
2846 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2847 		+ sizeof(kcpu_queue)
2848 		+ sizeof(execute_error)
2849 		;
2850 	char *buffer;
2851 	unsigned long acq_flags;
2852 	size_t pos = 0;
2853 
2854 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2855 
2856 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2857 	pos = kbasep_serialize_timestamp(buffer, pos);
2858 	pos = kbasep_serialize_bytes(buffer,
2859 		pos, &kcpu_queue, sizeof(kcpu_queue));
2860 	pos = kbasep_serialize_bytes(buffer,
2861 		pos, &execute_error, sizeof(execute_error));
2862 
2863 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2864 }
2865 
__kbase_tlstream_tl_kbase_kcpuqueue_execute_cqs_wait_start(struct kbase_tlstream * stream,const void * kcpu_queue)2866 void __kbase_tlstream_tl_kbase_kcpuqueue_execute_cqs_wait_start(
2867 	struct kbase_tlstream *stream,
2868 	const void *kcpu_queue)
2869 {
2870 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_START;
2871 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2872 		+ sizeof(kcpu_queue)
2873 		;
2874 	char *buffer;
2875 	unsigned long acq_flags;
2876 	size_t pos = 0;
2877 
2878 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2879 
2880 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2881 	pos = kbasep_serialize_timestamp(buffer, pos);
2882 	pos = kbasep_serialize_bytes(buffer,
2883 		pos, &kcpu_queue, sizeof(kcpu_queue));
2884 
2885 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2886 }
2887 
__kbase_tlstream_tl_kbase_kcpuqueue_execute_cqs_wait_end(struct kbase_tlstream * stream,const void * kcpu_queue,u32 execute_error)2888 void __kbase_tlstream_tl_kbase_kcpuqueue_execute_cqs_wait_end(
2889 	struct kbase_tlstream *stream,
2890 	const void *kcpu_queue,
2891 	u32 execute_error)
2892 {
2893 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_END;
2894 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2895 		+ sizeof(kcpu_queue)
2896 		+ sizeof(execute_error)
2897 		;
2898 	char *buffer;
2899 	unsigned long acq_flags;
2900 	size_t pos = 0;
2901 
2902 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2903 
2904 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2905 	pos = kbasep_serialize_timestamp(buffer, pos);
2906 	pos = kbasep_serialize_bytes(buffer,
2907 		pos, &kcpu_queue, sizeof(kcpu_queue));
2908 	pos = kbasep_serialize_bytes(buffer,
2909 		pos, &execute_error, sizeof(execute_error));
2910 
2911 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2912 }
2913 
__kbase_tlstream_tl_kbase_kcpuqueue_execute_cqs_set(struct kbase_tlstream * stream,const void * kcpu_queue,u32 execute_error)2914 void __kbase_tlstream_tl_kbase_kcpuqueue_execute_cqs_set(
2915 	struct kbase_tlstream *stream,
2916 	const void *kcpu_queue,
2917 	u32 execute_error)
2918 {
2919 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_SET;
2920 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2921 		+ sizeof(kcpu_queue)
2922 		+ sizeof(execute_error)
2923 		;
2924 	char *buffer;
2925 	unsigned long acq_flags;
2926 	size_t pos = 0;
2927 
2928 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2929 
2930 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2931 	pos = kbasep_serialize_timestamp(buffer, pos);
2932 	pos = kbasep_serialize_bytes(buffer,
2933 		pos, &kcpu_queue, sizeof(kcpu_queue));
2934 	pos = kbasep_serialize_bytes(buffer,
2935 		pos, &execute_error, sizeof(execute_error));
2936 
2937 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2938 }
2939 
__kbase_tlstream_tl_kbase_kcpuqueue_execute_map_import_start(struct kbase_tlstream * stream,const void * kcpu_queue)2940 void __kbase_tlstream_tl_kbase_kcpuqueue_execute_map_import_start(
2941 	struct kbase_tlstream *stream,
2942 	const void *kcpu_queue)
2943 {
2944 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_MAP_IMPORT_START;
2945 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2946 		+ sizeof(kcpu_queue)
2947 		;
2948 	char *buffer;
2949 	unsigned long acq_flags;
2950 	size_t pos = 0;
2951 
2952 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2953 
2954 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2955 	pos = kbasep_serialize_timestamp(buffer, pos);
2956 	pos = kbasep_serialize_bytes(buffer,
2957 		pos, &kcpu_queue, sizeof(kcpu_queue));
2958 
2959 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2960 }
2961 
__kbase_tlstream_tl_kbase_kcpuqueue_execute_map_import_end(struct kbase_tlstream * stream,const void * kcpu_queue,u32 execute_error)2962 void __kbase_tlstream_tl_kbase_kcpuqueue_execute_map_import_end(
2963 	struct kbase_tlstream *stream,
2964 	const void *kcpu_queue,
2965 	u32 execute_error)
2966 {
2967 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_MAP_IMPORT_END;
2968 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2969 		+ sizeof(kcpu_queue)
2970 		+ sizeof(execute_error)
2971 		;
2972 	char *buffer;
2973 	unsigned long acq_flags;
2974 	size_t pos = 0;
2975 
2976 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
2977 
2978 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
2979 	pos = kbasep_serialize_timestamp(buffer, pos);
2980 	pos = kbasep_serialize_bytes(buffer,
2981 		pos, &kcpu_queue, sizeof(kcpu_queue));
2982 	pos = kbasep_serialize_bytes(buffer,
2983 		pos, &execute_error, sizeof(execute_error));
2984 
2985 	kbase_tlstream_msgbuf_release(stream, acq_flags);
2986 }
2987 
__kbase_tlstream_tl_kbase_kcpuqueue_execute_unmap_import_start(struct kbase_tlstream * stream,const void * kcpu_queue)2988 void __kbase_tlstream_tl_kbase_kcpuqueue_execute_unmap_import_start(
2989 	struct kbase_tlstream *stream,
2990 	const void *kcpu_queue)
2991 {
2992 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_START;
2993 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
2994 		+ sizeof(kcpu_queue)
2995 		;
2996 	char *buffer;
2997 	unsigned long acq_flags;
2998 	size_t pos = 0;
2999 
3000 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3001 
3002 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3003 	pos = kbasep_serialize_timestamp(buffer, pos);
3004 	pos = kbasep_serialize_bytes(buffer,
3005 		pos, &kcpu_queue, sizeof(kcpu_queue));
3006 
3007 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3008 }
3009 
__kbase_tlstream_tl_kbase_kcpuqueue_execute_unmap_import_end(struct kbase_tlstream * stream,const void * kcpu_queue,u32 execute_error)3010 void __kbase_tlstream_tl_kbase_kcpuqueue_execute_unmap_import_end(
3011 	struct kbase_tlstream *stream,
3012 	const void *kcpu_queue,
3013 	u32 execute_error)
3014 {
3015 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_END;
3016 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3017 		+ sizeof(kcpu_queue)
3018 		+ sizeof(execute_error)
3019 		;
3020 	char *buffer;
3021 	unsigned long acq_flags;
3022 	size_t pos = 0;
3023 
3024 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3025 
3026 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3027 	pos = kbasep_serialize_timestamp(buffer, pos);
3028 	pos = kbasep_serialize_bytes(buffer,
3029 		pos, &kcpu_queue, sizeof(kcpu_queue));
3030 	pos = kbasep_serialize_bytes(buffer,
3031 		pos, &execute_error, sizeof(execute_error));
3032 
3033 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3034 }
3035 
__kbase_tlstream_tl_kbase_kcpuqueue_execute_unmap_import_force_start(struct kbase_tlstream * stream,const void * kcpu_queue)3036 void __kbase_tlstream_tl_kbase_kcpuqueue_execute_unmap_import_force_start(
3037 	struct kbase_tlstream *stream,
3038 	const void *kcpu_queue)
3039 {
3040 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_FORCE_START;
3041 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3042 		+ sizeof(kcpu_queue)
3043 		;
3044 	char *buffer;
3045 	unsigned long acq_flags;
3046 	size_t pos = 0;
3047 
3048 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3049 
3050 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3051 	pos = kbasep_serialize_timestamp(buffer, pos);
3052 	pos = kbasep_serialize_bytes(buffer,
3053 		pos, &kcpu_queue, sizeof(kcpu_queue));
3054 
3055 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3056 }
3057 
__kbase_tlstream_tl_kbase_kcpuqueue_execute_unmap_import_force_end(struct kbase_tlstream * stream,const void * kcpu_queue,u32 execute_error)3058 void __kbase_tlstream_tl_kbase_kcpuqueue_execute_unmap_import_force_end(
3059 	struct kbase_tlstream *stream,
3060 	const void *kcpu_queue,
3061 	u32 execute_error)
3062 {
3063 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_FORCE_END;
3064 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3065 		+ sizeof(kcpu_queue)
3066 		+ sizeof(execute_error)
3067 		;
3068 	char *buffer;
3069 	unsigned long acq_flags;
3070 	size_t pos = 0;
3071 
3072 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3073 
3074 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3075 	pos = kbasep_serialize_timestamp(buffer, pos);
3076 	pos = kbasep_serialize_bytes(buffer,
3077 		pos, &kcpu_queue, sizeof(kcpu_queue));
3078 	pos = kbasep_serialize_bytes(buffer,
3079 		pos, &execute_error, sizeof(execute_error));
3080 
3081 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3082 }
3083 
__kbase_tlstream_tl_kbase_kcpuqueue_execute_jit_alloc_start(struct kbase_tlstream * stream,const void * kcpu_queue)3084 void __kbase_tlstream_tl_kbase_kcpuqueue_execute_jit_alloc_start(
3085 	struct kbase_tlstream *stream,
3086 	const void *kcpu_queue)
3087 {
3088 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_JIT_ALLOC_START;
3089 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3090 		+ sizeof(kcpu_queue)
3091 		;
3092 	char *buffer;
3093 	unsigned long acq_flags;
3094 	size_t pos = 0;
3095 
3096 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3097 
3098 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3099 	pos = kbasep_serialize_timestamp(buffer, pos);
3100 	pos = kbasep_serialize_bytes(buffer,
3101 		pos, &kcpu_queue, sizeof(kcpu_queue));
3102 
3103 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3104 }
3105 
__kbase_tlstream_tl_kbase_array_begin_kcpuqueue_execute_jit_alloc_end(struct kbase_tlstream * stream,const void * kcpu_queue)3106 void __kbase_tlstream_tl_kbase_array_begin_kcpuqueue_execute_jit_alloc_end(
3107 	struct kbase_tlstream *stream,
3108 	const void *kcpu_queue)
3109 {
3110 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_EXECUTE_JIT_ALLOC_END;
3111 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3112 		+ sizeof(kcpu_queue)
3113 		;
3114 	char *buffer;
3115 	unsigned long acq_flags;
3116 	size_t pos = 0;
3117 
3118 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3119 
3120 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3121 	pos = kbasep_serialize_timestamp(buffer, pos);
3122 	pos = kbasep_serialize_bytes(buffer,
3123 		pos, &kcpu_queue, sizeof(kcpu_queue));
3124 
3125 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3126 }
3127 
__kbase_tlstream_tl_kbase_array_item_kcpuqueue_execute_jit_alloc_end(struct kbase_tlstream * stream,const void * kcpu_queue,u32 execute_error,u64 jit_alloc_gpu_alloc_addr,u64 jit_alloc_mmu_flags)3128 void __kbase_tlstream_tl_kbase_array_item_kcpuqueue_execute_jit_alloc_end(
3129 	struct kbase_tlstream *stream,
3130 	const void *kcpu_queue,
3131 	u32 execute_error,
3132 	u64 jit_alloc_gpu_alloc_addr,
3133 	u64 jit_alloc_mmu_flags)
3134 {
3135 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_EXECUTE_JIT_ALLOC_END;
3136 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3137 		+ sizeof(kcpu_queue)
3138 		+ sizeof(execute_error)
3139 		+ sizeof(jit_alloc_gpu_alloc_addr)
3140 		+ sizeof(jit_alloc_mmu_flags)
3141 		;
3142 	char *buffer;
3143 	unsigned long acq_flags;
3144 	size_t pos = 0;
3145 
3146 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3147 
3148 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3149 	pos = kbasep_serialize_timestamp(buffer, pos);
3150 	pos = kbasep_serialize_bytes(buffer,
3151 		pos, &kcpu_queue, sizeof(kcpu_queue));
3152 	pos = kbasep_serialize_bytes(buffer,
3153 		pos, &execute_error, sizeof(execute_error));
3154 	pos = kbasep_serialize_bytes(buffer,
3155 		pos, &jit_alloc_gpu_alloc_addr, sizeof(jit_alloc_gpu_alloc_addr));
3156 	pos = kbasep_serialize_bytes(buffer,
3157 		pos, &jit_alloc_mmu_flags, sizeof(jit_alloc_mmu_flags));
3158 
3159 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3160 }
3161 
__kbase_tlstream_tl_kbase_array_end_kcpuqueue_execute_jit_alloc_end(struct kbase_tlstream * stream,const void * kcpu_queue)3162 void __kbase_tlstream_tl_kbase_array_end_kcpuqueue_execute_jit_alloc_end(
3163 	struct kbase_tlstream *stream,
3164 	const void *kcpu_queue)
3165 {
3166 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_EXECUTE_JIT_ALLOC_END;
3167 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3168 		+ sizeof(kcpu_queue)
3169 		;
3170 	char *buffer;
3171 	unsigned long acq_flags;
3172 	size_t pos = 0;
3173 
3174 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3175 
3176 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3177 	pos = kbasep_serialize_timestamp(buffer, pos);
3178 	pos = kbasep_serialize_bytes(buffer,
3179 		pos, &kcpu_queue, sizeof(kcpu_queue));
3180 
3181 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3182 }
3183 
__kbase_tlstream_tl_kbase_kcpuqueue_execute_jit_free_start(struct kbase_tlstream * stream,const void * kcpu_queue)3184 void __kbase_tlstream_tl_kbase_kcpuqueue_execute_jit_free_start(
3185 	struct kbase_tlstream *stream,
3186 	const void *kcpu_queue)
3187 {
3188 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_JIT_FREE_START;
3189 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3190 		+ sizeof(kcpu_queue)
3191 		;
3192 	char *buffer;
3193 	unsigned long acq_flags;
3194 	size_t pos = 0;
3195 
3196 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3197 
3198 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3199 	pos = kbasep_serialize_timestamp(buffer, pos);
3200 	pos = kbasep_serialize_bytes(buffer,
3201 		pos, &kcpu_queue, sizeof(kcpu_queue));
3202 
3203 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3204 }
3205 
__kbase_tlstream_tl_kbase_array_begin_kcpuqueue_execute_jit_free_end(struct kbase_tlstream * stream,const void * kcpu_queue)3206 void __kbase_tlstream_tl_kbase_array_begin_kcpuqueue_execute_jit_free_end(
3207 	struct kbase_tlstream *stream,
3208 	const void *kcpu_queue)
3209 {
3210 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_EXECUTE_JIT_FREE_END;
3211 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3212 		+ sizeof(kcpu_queue)
3213 		;
3214 	char *buffer;
3215 	unsigned long acq_flags;
3216 	size_t pos = 0;
3217 
3218 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3219 
3220 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3221 	pos = kbasep_serialize_timestamp(buffer, pos);
3222 	pos = kbasep_serialize_bytes(buffer,
3223 		pos, &kcpu_queue, sizeof(kcpu_queue));
3224 
3225 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3226 }
3227 
__kbase_tlstream_tl_kbase_array_item_kcpuqueue_execute_jit_free_end(struct kbase_tlstream * stream,const void * kcpu_queue,u32 execute_error,u64 jit_free_pages_used)3228 void __kbase_tlstream_tl_kbase_array_item_kcpuqueue_execute_jit_free_end(
3229 	struct kbase_tlstream *stream,
3230 	const void *kcpu_queue,
3231 	u32 execute_error,
3232 	u64 jit_free_pages_used)
3233 {
3234 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_EXECUTE_JIT_FREE_END;
3235 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3236 		+ sizeof(kcpu_queue)
3237 		+ sizeof(execute_error)
3238 		+ sizeof(jit_free_pages_used)
3239 		;
3240 	char *buffer;
3241 	unsigned long acq_flags;
3242 	size_t pos = 0;
3243 
3244 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3245 
3246 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3247 	pos = kbasep_serialize_timestamp(buffer, pos);
3248 	pos = kbasep_serialize_bytes(buffer,
3249 		pos, &kcpu_queue, sizeof(kcpu_queue));
3250 	pos = kbasep_serialize_bytes(buffer,
3251 		pos, &execute_error, sizeof(execute_error));
3252 	pos = kbasep_serialize_bytes(buffer,
3253 		pos, &jit_free_pages_used, sizeof(jit_free_pages_used));
3254 
3255 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3256 }
3257 
__kbase_tlstream_tl_kbase_array_end_kcpuqueue_execute_jit_free_end(struct kbase_tlstream * stream,const void * kcpu_queue)3258 void __kbase_tlstream_tl_kbase_array_end_kcpuqueue_execute_jit_free_end(
3259 	struct kbase_tlstream *stream,
3260 	const void *kcpu_queue)
3261 {
3262 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_EXECUTE_JIT_FREE_END;
3263 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3264 		+ sizeof(kcpu_queue)
3265 		;
3266 	char *buffer;
3267 	unsigned long acq_flags;
3268 	size_t pos = 0;
3269 
3270 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3271 
3272 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3273 	pos = kbasep_serialize_timestamp(buffer, pos);
3274 	pos = kbasep_serialize_bytes(buffer,
3275 		pos, &kcpu_queue, sizeof(kcpu_queue));
3276 
3277 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3278 }
3279 
__kbase_tlstream_tl_kbase_kcpuqueue_execute_error_barrier(struct kbase_tlstream * stream,const void * kcpu_queue)3280 void __kbase_tlstream_tl_kbase_kcpuqueue_execute_error_barrier(
3281 	struct kbase_tlstream *stream,
3282 	const void *kcpu_queue)
3283 {
3284 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_ERROR_BARRIER;
3285 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3286 		+ sizeof(kcpu_queue)
3287 		;
3288 	char *buffer;
3289 	unsigned long acq_flags;
3290 	size_t pos = 0;
3291 
3292 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3293 
3294 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3295 	pos = kbasep_serialize_timestamp(buffer, pos);
3296 	pos = kbasep_serialize_bytes(buffer,
3297 		pos, &kcpu_queue, sizeof(kcpu_queue));
3298 
3299 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3300 }
3301 
__kbase_tlstream_tl_kbase_kcpuqueue_execute_group_suspend_start(struct kbase_tlstream * stream,const void * kcpu_queue)3302 void __kbase_tlstream_tl_kbase_kcpuqueue_execute_group_suspend_start(
3303 	struct kbase_tlstream *stream,
3304 	const void *kcpu_queue)
3305 {
3306 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_GROUP_SUSPEND_START;
3307 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3308 		+ sizeof(kcpu_queue)
3309 		;
3310 	char *buffer;
3311 	unsigned long acq_flags;
3312 	size_t pos = 0;
3313 
3314 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3315 
3316 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3317 	pos = kbasep_serialize_timestamp(buffer, pos);
3318 	pos = kbasep_serialize_bytes(buffer,
3319 		pos, &kcpu_queue, sizeof(kcpu_queue));
3320 
3321 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3322 }
3323 
__kbase_tlstream_tl_kbase_kcpuqueue_execute_group_suspend_end(struct kbase_tlstream * stream,const void * kcpu_queue,u32 execute_error)3324 void __kbase_tlstream_tl_kbase_kcpuqueue_execute_group_suspend_end(
3325 	struct kbase_tlstream *stream,
3326 	const void *kcpu_queue,
3327 	u32 execute_error)
3328 {
3329 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_GROUP_SUSPEND_END;
3330 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3331 		+ sizeof(kcpu_queue)
3332 		+ sizeof(execute_error)
3333 		;
3334 	char *buffer;
3335 	unsigned long acq_flags;
3336 	size_t pos = 0;
3337 
3338 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3339 
3340 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3341 	pos = kbasep_serialize_timestamp(buffer, pos);
3342 	pos = kbasep_serialize_bytes(buffer,
3343 		pos, &kcpu_queue, sizeof(kcpu_queue));
3344 	pos = kbasep_serialize_bytes(buffer,
3345 		pos, &execute_error, sizeof(execute_error));
3346 
3347 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3348 }
3349 
__kbase_tlstream_tl_kbase_csffw_fw_reloading(struct kbase_tlstream * stream,u64 csffw_cycle)3350 void __kbase_tlstream_tl_kbase_csffw_fw_reloading(
3351 	struct kbase_tlstream *stream,
3352 	u64 csffw_cycle)
3353 {
3354 	const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_RELOADING;
3355 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3356 		+ sizeof(csffw_cycle)
3357 		;
3358 	char *buffer;
3359 	unsigned long acq_flags;
3360 	size_t pos = 0;
3361 
3362 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3363 
3364 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3365 	pos = kbasep_serialize_timestamp(buffer, pos);
3366 	pos = kbasep_serialize_bytes(buffer,
3367 		pos, &csffw_cycle, sizeof(csffw_cycle));
3368 
3369 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3370 }
3371 
__kbase_tlstream_tl_kbase_csffw_fw_enabling(struct kbase_tlstream * stream,u64 csffw_cycle)3372 void __kbase_tlstream_tl_kbase_csffw_fw_enabling(
3373 	struct kbase_tlstream *stream,
3374 	u64 csffw_cycle)
3375 {
3376 	const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_ENABLING;
3377 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3378 		+ sizeof(csffw_cycle)
3379 		;
3380 	char *buffer;
3381 	unsigned long acq_flags;
3382 	size_t pos = 0;
3383 
3384 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3385 
3386 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3387 	pos = kbasep_serialize_timestamp(buffer, pos);
3388 	pos = kbasep_serialize_bytes(buffer,
3389 		pos, &csffw_cycle, sizeof(csffw_cycle));
3390 
3391 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3392 }
3393 
__kbase_tlstream_tl_kbase_csffw_fw_request_sleep(struct kbase_tlstream * stream,u64 csffw_cycle)3394 void __kbase_tlstream_tl_kbase_csffw_fw_request_sleep(
3395 	struct kbase_tlstream *stream,
3396 	u64 csffw_cycle)
3397 {
3398 	const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_REQUEST_SLEEP;
3399 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3400 		+ sizeof(csffw_cycle)
3401 		;
3402 	char *buffer;
3403 	unsigned long acq_flags;
3404 	size_t pos = 0;
3405 
3406 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3407 
3408 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3409 	pos = kbasep_serialize_timestamp(buffer, pos);
3410 	pos = kbasep_serialize_bytes(buffer,
3411 		pos, &csffw_cycle, sizeof(csffw_cycle));
3412 
3413 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3414 }
3415 
__kbase_tlstream_tl_kbase_csffw_fw_request_wakeup(struct kbase_tlstream * stream,u64 csffw_cycle)3416 void __kbase_tlstream_tl_kbase_csffw_fw_request_wakeup(
3417 	struct kbase_tlstream *stream,
3418 	u64 csffw_cycle)
3419 {
3420 	const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_REQUEST_WAKEUP;
3421 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3422 		+ sizeof(csffw_cycle)
3423 		;
3424 	char *buffer;
3425 	unsigned long acq_flags;
3426 	size_t pos = 0;
3427 
3428 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3429 
3430 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3431 	pos = kbasep_serialize_timestamp(buffer, pos);
3432 	pos = kbasep_serialize_bytes(buffer,
3433 		pos, &csffw_cycle, sizeof(csffw_cycle));
3434 
3435 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3436 }
3437 
__kbase_tlstream_tl_kbase_csffw_fw_request_halt(struct kbase_tlstream * stream,u64 csffw_cycle)3438 void __kbase_tlstream_tl_kbase_csffw_fw_request_halt(
3439 	struct kbase_tlstream *stream,
3440 	u64 csffw_cycle)
3441 {
3442 	const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_REQUEST_HALT;
3443 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3444 		+ sizeof(csffw_cycle)
3445 		;
3446 	char *buffer;
3447 	unsigned long acq_flags;
3448 	size_t pos = 0;
3449 
3450 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3451 
3452 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3453 	pos = kbasep_serialize_timestamp(buffer, pos);
3454 	pos = kbasep_serialize_bytes(buffer,
3455 		pos, &csffw_cycle, sizeof(csffw_cycle));
3456 
3457 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3458 }
3459 
__kbase_tlstream_tl_kbase_csffw_fw_disabling(struct kbase_tlstream * stream,u64 csffw_cycle)3460 void __kbase_tlstream_tl_kbase_csffw_fw_disabling(
3461 	struct kbase_tlstream *stream,
3462 	u64 csffw_cycle)
3463 {
3464 	const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_DISABLING;
3465 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3466 		+ sizeof(csffw_cycle)
3467 		;
3468 	char *buffer;
3469 	unsigned long acq_flags;
3470 	size_t pos = 0;
3471 
3472 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3473 
3474 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3475 	pos = kbasep_serialize_timestamp(buffer, pos);
3476 	pos = kbasep_serialize_bytes(buffer,
3477 		pos, &csffw_cycle, sizeof(csffw_cycle));
3478 
3479 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3480 }
3481 
__kbase_tlstream_tl_kbase_csffw_fw_off(struct kbase_tlstream * stream,u64 csffw_cycle)3482 void __kbase_tlstream_tl_kbase_csffw_fw_off(
3483 	struct kbase_tlstream *stream,
3484 	u64 csffw_cycle)
3485 {
3486 	const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_OFF;
3487 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3488 		+ sizeof(csffw_cycle)
3489 		;
3490 	char *buffer;
3491 	unsigned long acq_flags;
3492 	size_t pos = 0;
3493 
3494 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3495 
3496 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3497 	pos = kbasep_serialize_timestamp(buffer, pos);
3498 	pos = kbasep_serialize_bytes(buffer,
3499 		pos, &csffw_cycle, sizeof(csffw_cycle));
3500 
3501 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3502 }
3503 
__kbase_tlstream_tl_kbase_csffw_tlstream_overflow(struct kbase_tlstream * stream,u64 csffw_timestamp,u64 csffw_cycle)3504 void __kbase_tlstream_tl_kbase_csffw_tlstream_overflow(
3505 	struct kbase_tlstream *stream,
3506 	u64 csffw_timestamp,
3507 	u64 csffw_cycle)
3508 {
3509 	const u32 msg_id = KBASE_TL_KBASE_CSFFW_TLSTREAM_OVERFLOW;
3510 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3511 		+ sizeof(csffw_timestamp)
3512 		+ sizeof(csffw_cycle)
3513 		;
3514 	char *buffer;
3515 	unsigned long acq_flags;
3516 	size_t pos = 0;
3517 
3518 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3519 
3520 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3521 	pos = kbasep_serialize_timestamp(buffer, pos);
3522 	pos = kbasep_serialize_bytes(buffer,
3523 		pos, &csffw_timestamp, sizeof(csffw_timestamp));
3524 	pos = kbasep_serialize_bytes(buffer,
3525 		pos, &csffw_cycle, sizeof(csffw_cycle));
3526 
3527 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3528 }
3529 
__kbase_tlstream_tl_js_sched_start(struct kbase_tlstream * stream,u32 dummy)3530 void __kbase_tlstream_tl_js_sched_start(
3531 	struct kbase_tlstream *stream,
3532 	u32 dummy)
3533 {
3534 	const u32 msg_id = KBASE_TL_JS_SCHED_START;
3535 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3536 		+ sizeof(dummy)
3537 		;
3538 	char *buffer;
3539 	unsigned long acq_flags;
3540 	size_t pos = 0;
3541 
3542 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3543 
3544 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3545 	pos = kbasep_serialize_timestamp(buffer, pos);
3546 	pos = kbasep_serialize_bytes(buffer,
3547 		pos, &dummy, sizeof(dummy));
3548 
3549 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3550 }
3551 
__kbase_tlstream_tl_js_sched_end(struct kbase_tlstream * stream,u32 dummy)3552 void __kbase_tlstream_tl_js_sched_end(
3553 	struct kbase_tlstream *stream,
3554 	u32 dummy)
3555 {
3556 	const u32 msg_id = KBASE_TL_JS_SCHED_END;
3557 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3558 		+ sizeof(dummy)
3559 		;
3560 	char *buffer;
3561 	unsigned long acq_flags;
3562 	size_t pos = 0;
3563 
3564 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3565 
3566 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3567 	pos = kbasep_serialize_timestamp(buffer, pos);
3568 	pos = kbasep_serialize_bytes(buffer,
3569 		pos, &dummy, sizeof(dummy));
3570 
3571 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3572 }
3573 
__kbase_tlstream_tl_jd_submit_atom_start(struct kbase_tlstream * stream,const void * atom)3574 void __kbase_tlstream_tl_jd_submit_atom_start(
3575 	struct kbase_tlstream *stream,
3576 	const void *atom)
3577 {
3578 	const u32 msg_id = KBASE_TL_JD_SUBMIT_ATOM_START;
3579 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3580 		+ sizeof(atom)
3581 		;
3582 	char *buffer;
3583 	unsigned long acq_flags;
3584 	size_t pos = 0;
3585 
3586 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3587 
3588 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3589 	pos = kbasep_serialize_timestamp(buffer, pos);
3590 	pos = kbasep_serialize_bytes(buffer,
3591 		pos, &atom, sizeof(atom));
3592 
3593 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3594 }
3595 
__kbase_tlstream_tl_jd_submit_atom_end(struct kbase_tlstream * stream,const void * atom)3596 void __kbase_tlstream_tl_jd_submit_atom_end(
3597 	struct kbase_tlstream *stream,
3598 	const void *atom)
3599 {
3600 	const u32 msg_id = KBASE_TL_JD_SUBMIT_ATOM_END;
3601 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3602 		+ sizeof(atom)
3603 		;
3604 	char *buffer;
3605 	unsigned long acq_flags;
3606 	size_t pos = 0;
3607 
3608 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3609 
3610 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3611 	pos = kbasep_serialize_timestamp(buffer, pos);
3612 	pos = kbasep_serialize_bytes(buffer,
3613 		pos, &atom, sizeof(atom));
3614 
3615 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3616 }
3617 
__kbase_tlstream_tl_jd_done_no_lock_start(struct kbase_tlstream * stream,const void * atom)3618 void __kbase_tlstream_tl_jd_done_no_lock_start(
3619 	struct kbase_tlstream *stream,
3620 	const void *atom)
3621 {
3622 	const u32 msg_id = KBASE_TL_JD_DONE_NO_LOCK_START;
3623 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3624 		+ sizeof(atom)
3625 		;
3626 	char *buffer;
3627 	unsigned long acq_flags;
3628 	size_t pos = 0;
3629 
3630 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3631 
3632 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3633 	pos = kbasep_serialize_timestamp(buffer, pos);
3634 	pos = kbasep_serialize_bytes(buffer,
3635 		pos, &atom, sizeof(atom));
3636 
3637 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3638 }
3639 
__kbase_tlstream_tl_jd_done_no_lock_end(struct kbase_tlstream * stream,const void * atom)3640 void __kbase_tlstream_tl_jd_done_no_lock_end(
3641 	struct kbase_tlstream *stream,
3642 	const void *atom)
3643 {
3644 	const u32 msg_id = KBASE_TL_JD_DONE_NO_LOCK_END;
3645 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3646 		+ sizeof(atom)
3647 		;
3648 	char *buffer;
3649 	unsigned long acq_flags;
3650 	size_t pos = 0;
3651 
3652 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3653 
3654 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3655 	pos = kbasep_serialize_timestamp(buffer, pos);
3656 	pos = kbasep_serialize_bytes(buffer,
3657 		pos, &atom, sizeof(atom));
3658 
3659 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3660 }
3661 
__kbase_tlstream_tl_jd_done_start(struct kbase_tlstream * stream,const void * atom)3662 void __kbase_tlstream_tl_jd_done_start(
3663 	struct kbase_tlstream *stream,
3664 	const void *atom)
3665 {
3666 	const u32 msg_id = KBASE_TL_JD_DONE_START;
3667 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3668 		+ sizeof(atom)
3669 		;
3670 	char *buffer;
3671 	unsigned long acq_flags;
3672 	size_t pos = 0;
3673 
3674 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3675 
3676 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3677 	pos = kbasep_serialize_timestamp(buffer, pos);
3678 	pos = kbasep_serialize_bytes(buffer,
3679 		pos, &atom, sizeof(atom));
3680 
3681 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3682 }
3683 
__kbase_tlstream_tl_jd_done_end(struct kbase_tlstream * stream,const void * atom)3684 void __kbase_tlstream_tl_jd_done_end(
3685 	struct kbase_tlstream *stream,
3686 	const void *atom)
3687 {
3688 	const u32 msg_id = KBASE_TL_JD_DONE_END;
3689 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3690 		+ sizeof(atom)
3691 		;
3692 	char *buffer;
3693 	unsigned long acq_flags;
3694 	size_t pos = 0;
3695 
3696 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3697 
3698 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3699 	pos = kbasep_serialize_timestamp(buffer, pos);
3700 	pos = kbasep_serialize_bytes(buffer,
3701 		pos, &atom, sizeof(atom));
3702 
3703 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3704 }
3705 
__kbase_tlstream_tl_jd_atom_complete(struct kbase_tlstream * stream,const void * atom)3706 void __kbase_tlstream_tl_jd_atom_complete(
3707 	struct kbase_tlstream *stream,
3708 	const void *atom)
3709 {
3710 	const u32 msg_id = KBASE_TL_JD_ATOM_COMPLETE;
3711 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3712 		+ sizeof(atom)
3713 		;
3714 	char *buffer;
3715 	unsigned long acq_flags;
3716 	size_t pos = 0;
3717 
3718 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3719 
3720 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3721 	pos = kbasep_serialize_timestamp(buffer, pos);
3722 	pos = kbasep_serialize_bytes(buffer,
3723 		pos, &atom, sizeof(atom));
3724 
3725 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3726 }
3727 
__kbase_tlstream_tl_run_atom_start(struct kbase_tlstream * stream,const void * atom,u32 atom_nr)3728 void __kbase_tlstream_tl_run_atom_start(
3729 	struct kbase_tlstream *stream,
3730 	const void *atom,
3731 	u32 atom_nr)
3732 {
3733 	const u32 msg_id = KBASE_TL_RUN_ATOM_START;
3734 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3735 		+ sizeof(atom)
3736 		+ sizeof(atom_nr)
3737 		;
3738 	char *buffer;
3739 	unsigned long acq_flags;
3740 	size_t pos = 0;
3741 
3742 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3743 
3744 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3745 	pos = kbasep_serialize_timestamp(buffer, pos);
3746 	pos = kbasep_serialize_bytes(buffer,
3747 		pos, &atom, sizeof(atom));
3748 	pos = kbasep_serialize_bytes(buffer,
3749 		pos, &atom_nr, sizeof(atom_nr));
3750 
3751 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3752 }
3753 
__kbase_tlstream_tl_run_atom_end(struct kbase_tlstream * stream,const void * atom,u32 atom_nr)3754 void __kbase_tlstream_tl_run_atom_end(
3755 	struct kbase_tlstream *stream,
3756 	const void *atom,
3757 	u32 atom_nr)
3758 {
3759 	const u32 msg_id = KBASE_TL_RUN_ATOM_END;
3760 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
3761 		+ sizeof(atom)
3762 		+ sizeof(atom_nr)
3763 		;
3764 	char *buffer;
3765 	unsigned long acq_flags;
3766 	size_t pos = 0;
3767 
3768 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
3769 
3770 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
3771 	pos = kbasep_serialize_timestamp(buffer, pos);
3772 	pos = kbasep_serialize_bytes(buffer,
3773 		pos, &atom, sizeof(atom));
3774 	pos = kbasep_serialize_bytes(buffer,
3775 		pos, &atom_nr, sizeof(atom_nr));
3776 
3777 	kbase_tlstream_msgbuf_release(stream, acq_flags);
3778 }
3779 
3780 /* clang-format on */
3781