4256 lines
		
	
	
		
			121 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			4256 lines
		
	
	
		
			121 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
 | |
| /*
 | |
|  *
 | |
|  * (C) COPYRIGHT 2010-2024 ARM Limited. All rights reserved.
 | |
|  *
 | |
|  * This program is free software and is provided to you under the terms of the
 | |
|  * GNU General Public License version 2 as published by the Free Software
 | |
|  * Foundation, and any use by you of this program is subject to the terms
 | |
|  * of such GNU license.
 | |
|  *
 | |
|  * This program is distributed in the hope that it will be useful,
 | |
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 | |
|  * GNU General Public License for more details.
 | |
|  *
 | |
|  * You should have received a copy of the GNU General Public License
 | |
|  * along with this program; if not, you can access it online at
 | |
|  * http://www.gnu.org/licenses/gpl-2.0.html.
 | |
|  *
 | |
|  */
 | |
| 
 | |
| /*
 | |
|  * THIS FILE IS AUTOGENERATED BY generate_tracepoints.py.
 | |
|  * DO NOT EDIT.
 | |
|  */
 | |
| 
 | |
| #include "mali_kbase_tracepoints.h"
 | |
| #include "mali_kbase_tlstream.h"
 | |
| #include "mali_kbase_tl_serialize.h"
 | |
| 
 | |
| /* clang-format off */
 | |
| 
 | |
| /* Message ids of trace events that are recorded in the obj stream. */
 | |
| enum tl_msg_id_obj {
 | |
| 	KBASE_TL_NEW_CTX,
 | |
| 	KBASE_TL_NEW_GPU,
 | |
| 	KBASE_TL_NEW_LPU,
 | |
| 	KBASE_TL_NEW_ATOM,
 | |
| 	KBASE_TL_NEW_AS,
 | |
| 	KBASE_TL_DEL_CTX,
 | |
| 	KBASE_TL_DEL_ATOM,
 | |
| 	KBASE_TL_LIFELINK_LPU_GPU,
 | |
| 	KBASE_TL_LIFELINK_AS_GPU,
 | |
| 	KBASE_TL_RET_CTX_LPU,
 | |
| 	KBASE_TL_RET_ATOM_CTX,
 | |
| 	KBASE_TL_RET_ATOM_LPU,
 | |
| 	KBASE_TL_NRET_CTX_LPU,
 | |
| 	KBASE_TL_NRET_ATOM_CTX,
 | |
| 	KBASE_TL_NRET_ATOM_LPU,
 | |
| 	KBASE_TL_RET_AS_CTX,
 | |
| 	KBASE_TL_NRET_AS_CTX,
 | |
| 	KBASE_TL_RET_ATOM_AS,
 | |
| 	KBASE_TL_NRET_ATOM_AS,
 | |
| 	KBASE_TL_ATTRIB_ATOM_CONFIG,
 | |
| 	KBASE_TL_JIT_USEDPAGES,
 | |
| 	KBASE_TL_ATTRIB_ATOM_JITALLOCINFO,
 | |
| 	KBASE_TL_ATTRIB_ATOM_JITFREEINFO,
 | |
| 	KBASE_TL_ATTRIB_AS_CONFIG,
 | |
| 	KBASE_TL_EVENT_LPU_SOFTSTOP,
 | |
| 	KBASE_TL_EVENT_ATOM_SOFTSTOP_EX,
 | |
| 	KBASE_TL_EVENT_ATOM_SOFTSTOP_ISSUE,
 | |
| 	KBASE_TL_EVENT_ATOM_SOFTJOB_START,
 | |
| 	KBASE_TL_EVENT_ATOM_SOFTJOB_END,
 | |
| 	KBASE_TL_ARBITER_GRANTED,
 | |
| 	KBASE_TL_ARBITER_LOST,
 | |
| 	KBASE_TL_ARBITER_STARTED,
 | |
| 	KBASE_TL_ARBITER_STOP_REQUESTED,
 | |
| 	KBASE_TL_ARBITER_STOPPED,
 | |
| 	KBASE_TL_ARBITER_REQUESTED,
 | |
| 	KBASE_JD_GPU_SOFT_RESET,
 | |
| 	KBASE_JD_TILER_HEAP_CHUNK_ALLOC,
 | |
| 	KBASE_TL_JS_SCHED_START,
 | |
| 	KBASE_TL_JS_SCHED_END,
 | |
| 	KBASE_TL_JD_SUBMIT_ATOM_START,
 | |
| 	KBASE_TL_JD_SUBMIT_ATOM_END,
 | |
| 	KBASE_TL_JD_DONE_NO_LOCK_START,
 | |
| 	KBASE_TL_JD_DONE_NO_LOCK_END,
 | |
| 	KBASE_TL_JD_DONE_START,
 | |
| 	KBASE_TL_JD_DONE_END,
 | |
| 	KBASE_TL_JD_ATOM_COMPLETE,
 | |
| 	KBASE_TL_RUN_ATOM_START,
 | |
| 	KBASE_TL_RUN_ATOM_END,
 | |
| 	KBASE_TL_ATTRIB_ATOM_PRIORITY,
 | |
| 	KBASE_TL_ATTRIB_ATOM_STATE,
 | |
| 	KBASE_TL_ATTRIB_ATOM_PRIORITIZED,
 | |
| 	KBASE_TL_ATTRIB_ATOM_JIT,
 | |
| 	KBASE_TL_KBASE_NEW_DEVICE,
 | |
| 	KBASE_TL_KBASE_GPUCMDQUEUE_KICK,
 | |
| 	KBASE_TL_KBASE_DEVICE_PROGRAM_CSG,
 | |
| 	KBASE_TL_KBASE_DEVICE_DEPROGRAM_CSG,
 | |
| 	KBASE_TL_KBASE_DEVICE_HALTING_CSG,
 | |
| 	KBASE_TL_KBASE_DEVICE_SUSPEND_CSG,
 | |
| 	KBASE_TL_KBASE_DEVICE_CSG_IDLE,
 | |
| 	KBASE_TL_KBASE_NEW_CTX,
 | |
| 	KBASE_TL_KBASE_DEL_CTX,
 | |
| 	KBASE_TL_KBASE_CTX_ASSIGN_AS,
 | |
| 	KBASE_TL_KBASE_CTX_UNASSIGN_AS,
 | |
| 	KBASE_TL_KBASE_NEW_KCPUQUEUE,
 | |
| 	KBASE_TL_KBASE_DEL_KCPUQUEUE,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_FENCE_SIGNAL,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_FENCE_WAIT,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_WAIT,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_SET,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_WAIT_OPERATION,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_SET_OPERATION,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_MAP_IMPORT,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_UNMAP_IMPORT,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_UNMAP_IMPORT_FORCE,
 | |
| 	KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_ENQUEUE_JIT_ALLOC,
 | |
| 	KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_ENQUEUE_JIT_ALLOC,
 | |
| 	KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_ENQUEUE_JIT_ALLOC,
 | |
| 	KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_ENQUEUE_JIT_FREE,
 | |
| 	KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_ENQUEUE_JIT_FREE,
 | |
| 	KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_ENQUEUE_JIT_FREE,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_ERROR_BARRIER,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_GROUP_SUSPEND,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_SIGNAL_START,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_SIGNAL_END,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_WAIT_START,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_WAIT_END,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_START,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_END,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_SET,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_OPERATION_START,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_OPERATION_END,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_SET_OPERATION,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_MAP_IMPORT_START,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_MAP_IMPORT_END,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_START,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_END,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_FORCE_START,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_FORCE_END,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_JIT_ALLOC_START,
 | |
| 	KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_EXECUTE_JIT_ALLOC_END,
 | |
| 	KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_EXECUTE_JIT_ALLOC_END,
 | |
| 	KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_EXECUTE_JIT_ALLOC_END,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_JIT_FREE_START,
 | |
| 	KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_EXECUTE_JIT_FREE_END,
 | |
| 	KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_EXECUTE_JIT_FREE_END,
 | |
| 	KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_EXECUTE_JIT_FREE_END,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_ERROR_BARRIER,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_GROUP_SUSPEND_START,
 | |
| 	KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_GROUP_SUSPEND_END,
 | |
| 	KBASE_TL_KBASE_CSFFW_FW_RELOADING,
 | |
| 	KBASE_TL_KBASE_CSFFW_FW_ENABLING,
 | |
| 	KBASE_TL_KBASE_CSFFW_FW_REQUEST_SLEEP,
 | |
| 	KBASE_TL_KBASE_CSFFW_FW_REQUEST_WAKEUP,
 | |
| 	KBASE_TL_KBASE_CSFFW_FW_REQUEST_HALT,
 | |
| 	KBASE_TL_KBASE_CSFFW_FW_DISABLING,
 | |
| 	KBASE_TL_KBASE_CSFFW_FW_OFF,
 | |
| 	KBASE_TL_KBASE_CSFFW_TLSTREAM_OVERFLOW,
 | |
| 	KBASE_OBJ_MSG_COUNT,
 | |
| };
 | |
| 
 | |
| #define OBJ_TP_LIST \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_NEW_CTX, \
 | |
| 		"object ctx is created", \
 | |
| 		"@pII", \
 | |
| 		"ctx,ctx_nr,tgid") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_NEW_GPU, \
 | |
| 		"object gpu is created", \
 | |
| 		"@pII", \
 | |
| 		"gpu,gpu_id,core_count") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_NEW_LPU, \
 | |
| 		"object lpu is created", \
 | |
| 		"@pII", \
 | |
| 		"lpu,lpu_nr,lpu_fn") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_NEW_ATOM, \
 | |
| 		"object atom is created", \
 | |
| 		"@pI", \
 | |
| 		"atom,atom_nr") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_NEW_AS, \
 | |
| 		"address space object is created", \
 | |
| 		"@pI", \
 | |
| 		"address_space,as_nr") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_DEL_CTX, \
 | |
| 		"context is destroyed", \
 | |
| 		"@p", \
 | |
| 		"ctx") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_DEL_ATOM, \
 | |
| 		"atom is destroyed", \
 | |
| 		"@p", \
 | |
| 		"atom") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_LIFELINK_LPU_GPU, \
 | |
| 		"lpu is deleted with gpu", \
 | |
| 		"@pp", \
 | |
| 		"lpu,gpu") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_LIFELINK_AS_GPU, \
 | |
| 		"address space is deleted with gpu", \
 | |
| 		"@pp", \
 | |
| 		"address_space,gpu") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_RET_CTX_LPU, \
 | |
| 		"context is retained by lpu", \
 | |
| 		"@pp", \
 | |
| 		"ctx,lpu") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_RET_ATOM_CTX, \
 | |
| 		"atom is retained by context", \
 | |
| 		"@pp", \
 | |
| 		"atom,ctx") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_RET_ATOM_LPU, \
 | |
| 		"atom is retained by lpu", \
 | |
| 		"@pps", \
 | |
| 		"atom,lpu,attrib_match_list") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_NRET_CTX_LPU, \
 | |
| 		"context is released by lpu", \
 | |
| 		"@pp", \
 | |
| 		"ctx,lpu") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_NRET_ATOM_CTX, \
 | |
| 		"atom is released by context", \
 | |
| 		"@pp", \
 | |
| 		"atom,ctx") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_NRET_ATOM_LPU, \
 | |
| 		"atom is released by lpu", \
 | |
| 		"@pp", \
 | |
| 		"atom,lpu") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_RET_AS_CTX, \
 | |
| 		"address space is retained by context", \
 | |
| 		"@pp", \
 | |
| 		"address_space,ctx") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_NRET_AS_CTX, \
 | |
| 		"address space is released by context", \
 | |
| 		"@pp", \
 | |
| 		"address_space,ctx") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_RET_ATOM_AS, \
 | |
| 		"atom is retained by address space", \
 | |
| 		"@pp", \
 | |
| 		"atom,address_space") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_NRET_ATOM_AS, \
 | |
| 		"atom is released by address space", \
 | |
| 		"@pp", \
 | |
| 		"atom,address_space") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_CONFIG, \
 | |
| 		"atom job slot attributes", \
 | |
| 		"@pLLI", \
 | |
| 		"atom,descriptor,affinity,config") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_JIT_USEDPAGES, \
 | |
| 		"used pages for jit", \
 | |
| 		"@LI", \
 | |
| 		"used_pages,j_id") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_JITALLOCINFO, \
 | |
| 		"Information about JIT allocations", \
 | |
| 		"@pLLLIIIII", \
 | |
| 		"atom,va_pgs,com_pgs,extent,j_id,bin_id,max_allocs,jit_flags,usg_id") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_JITFREEINFO, \
 | |
| 		"Information about JIT frees", \
 | |
| 		"@pI", \
 | |
| 		"atom,j_id") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_ATTRIB_AS_CONFIG, \
 | |
| 		"address space attributes", \
 | |
| 		"@pLLL", \
 | |
| 		"address_space,transtab,memattr,transcfg") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_EVENT_LPU_SOFTSTOP, \
 | |
| 		"softstop event on given lpu", \
 | |
| 		"@p", \
 | |
| 		"lpu") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_EVENT_ATOM_SOFTSTOP_EX, \
 | |
| 		"atom softstopped", \
 | |
| 		"@p", \
 | |
| 		"atom") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_EVENT_ATOM_SOFTSTOP_ISSUE, \
 | |
| 		"atom softstop issued", \
 | |
| 		"@p", \
 | |
| 		"atom") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_EVENT_ATOM_SOFTJOB_START, \
 | |
| 		"atom soft job has started", \
 | |
| 		"@p", \
 | |
| 		"atom") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_EVENT_ATOM_SOFTJOB_END, \
 | |
| 		"atom soft job has completed", \
 | |
| 		"@p", \
 | |
| 		"atom") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_ARBITER_GRANTED, \
 | |
| 		"Arbiter has granted gpu access", \
 | |
| 		"@p", \
 | |
| 		"gpu") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_ARBITER_LOST, \
 | |
| 		"Received a gpu lost event from the arbiter", \
 | |
| 		"@p", \
 | |
| 		"gpu") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_ARBITER_STARTED, \
 | |
| 		"Driver is running again and able to process jobs", \
 | |
| 		"@p", \
 | |
| 		"gpu") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_ARBITER_STOP_REQUESTED, \
 | |
| 		"Arbiter has requested driver to stop using gpu", \
 | |
| 		"@p", \
 | |
| 		"gpu") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_ARBITER_STOPPED, \
 | |
| 		"Driver has stopped using gpu", \
 | |
| 		"@p", \
 | |
| 		"gpu") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_ARBITER_REQUESTED, \
 | |
| 		"Driver has requested the arbiter for gpu access", \
 | |
| 		"@p", \
 | |
| 		"gpu") \
 | |
| 	TRACEPOINT_DESC(KBASE_JD_GPU_SOFT_RESET, \
 | |
| 		"gpu soft reset", \
 | |
| 		"@p", \
 | |
| 		"gpu") \
 | |
| 	TRACEPOINT_DESC(KBASE_JD_TILER_HEAP_CHUNK_ALLOC, \
 | |
| 		"Tiler Heap Chunk Allocation", \
 | |
| 		"@ILL", \
 | |
| 		"ctx_nr,heap_id,chunk_va") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_JS_SCHED_START, \
 | |
| 		"Scheduling starts", \
 | |
| 		"@I", \
 | |
| 		"dummy") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_JS_SCHED_END, \
 | |
| 		"Scheduling ends", \
 | |
| 		"@I", \
 | |
| 		"dummy") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_JD_SUBMIT_ATOM_START, \
 | |
| 		"Submitting an atom starts", \
 | |
| 		"@p", \
 | |
| 		"atom") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_JD_SUBMIT_ATOM_END, \
 | |
| 		"Submitting an atom ends", \
 | |
| 		"@p", \
 | |
| 		"atom") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_JD_DONE_NO_LOCK_START, \
 | |
| 		"Within function kbase_jd_done_nolock", \
 | |
| 		"@p", \
 | |
| 		"atom") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_JD_DONE_NO_LOCK_END, \
 | |
| 		"Within function kbase_jd_done_nolock - end", \
 | |
| 		"@p", \
 | |
| 		"atom") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_JD_DONE_START, \
 | |
| 		"Start of kbase_jd_done", \
 | |
| 		"@p", \
 | |
| 		"atom") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_JD_DONE_END, \
 | |
| 		"End of kbase_jd_done", \
 | |
| 		"@p", \
 | |
| 		"atom") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_JD_ATOM_COMPLETE, \
 | |
| 		"Atom marked complete", \
 | |
| 		"@p", \
 | |
| 		"atom") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_RUN_ATOM_START, \
 | |
| 		"Running of atom starts", \
 | |
| 		"@pI", \
 | |
| 		"atom,atom_nr") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_RUN_ATOM_END, \
 | |
| 		"Running of atom ends", \
 | |
| 		"@pI", \
 | |
| 		"atom,atom_nr") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_PRIORITY, \
 | |
| 		"atom priority", \
 | |
| 		"@pI", \
 | |
| 		"atom,prio") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_STATE, \
 | |
| 		"atom state", \
 | |
| 		"@pI", \
 | |
| 		"atom,state") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_PRIORITIZED, \
 | |
| 		"atom caused priority change", \
 | |
| 		"@p", \
 | |
| 		"atom") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_JIT, \
 | |
| 		"jit done for atom", \
 | |
| 		"@pLLILILLL", \
 | |
| 		"atom,edit_addr,new_addr,jit_flags,mem_flags,j_id,com_pgs,extent,va_pgs") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_NEW_DEVICE, \
 | |
| 		"New KBase Device", \
 | |
| 		"@IIIIIIII", \
 | |
| 		"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,kbase_device_has_vd54d34dbb40917c8cea48cca407a8789413be0db") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_GPUCMDQUEUE_KICK, \
 | |
| 		"Kernel receives a request to process new GPU queue instructions", \
 | |
| 		"@IL", \
 | |
| 		"kernel_ctx_id,buffer_gpu_addr") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_DEVICE_PROGRAM_CSG, \
 | |
| 		"CSG is programmed to a slot", \
 | |
| 		"@IIIII", \
 | |
| 		"kbase_device_id,kernel_ctx_id,gpu_cmdq_grp_handle,kbase_device_csg_slot_index,kbase_device_csg_slot_resuming") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_DEVICE_DEPROGRAM_CSG, \
 | |
| 		"CSG is deprogrammed from a slot", \
 | |
| 		"@II", \
 | |
| 		"kbase_device_id,kbase_device_csg_slot_index") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_DEVICE_HALTING_CSG, \
 | |
| 		"CSG is halting", \
 | |
| 		"@III", \
 | |
| 		"kbase_device_id,kbase_device_csg_slot_index,kbase_device_csg_slot_suspending") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_DEVICE_SUSPEND_CSG, \
 | |
| 		"CSG is suspended", \
 | |
| 		"@II", \
 | |
| 		"kbase_device_id,kbase_device_csg_slot_index") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_DEVICE_CSG_IDLE, \
 | |
| 		"KBase device is notified that CSG is idle.", \
 | |
| 		"@II", \
 | |
| 		"kbase_device_id,kbase_device_csg_slot_index") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_NEW_CTX, \
 | |
| 		"New KBase Context", \
 | |
| 		"@II", \
 | |
| 		"kernel_ctx_id,kbase_device_id") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_DEL_CTX, \
 | |
| 		"Delete KBase Context", \
 | |
| 		"@I", \
 | |
| 		"kernel_ctx_id") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_CTX_ASSIGN_AS, \
 | |
| 		"Address Space is assigned to a KBase context", \
 | |
| 		"@II", \
 | |
| 		"kernel_ctx_id,kbase_device_as_index") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_CTX_UNASSIGN_AS, \
 | |
| 		"Address Space is unassigned from a KBase context", \
 | |
| 		"@I", \
 | |
| 		"kernel_ctx_id") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_NEW_KCPUQUEUE, \
 | |
| 		"New KCPU Queue", \
 | |
| 		"@pIII", \
 | |
| 		"kcpu_queue,kcpu_queue_id,kernel_ctx_id,kcpuq_num_pending_cmds") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_DEL_KCPUQUEUE, \
 | |
| 		"Delete KCPU Queue", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_FENCE_SIGNAL, \
 | |
| 		"KCPU Queue enqueues Signal on Fence", \
 | |
| 		"@pp", \
 | |
| 		"kcpu_queue,fence") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_FENCE_WAIT, \
 | |
| 		"KCPU Queue enqueues Wait on Fence", \
 | |
| 		"@pp", \
 | |
| 		"kcpu_queue,fence") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_WAIT, \
 | |
| 		"KCPU Queue enqueues Wait on Cross Queue Sync Object", \
 | |
| 		"@pLII", \
 | |
| 		"kcpu_queue,cqs_obj_gpu_addr,compare_value,inherit_error") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_SET, \
 | |
| 		"KCPU Queue enqueues Set on Cross Queue Sync Object", \
 | |
| 		"@pL", \
 | |
| 		"kcpu_queue,cqs_obj_gpu_addr") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_WAIT_OPERATION, \
 | |
| 		"KCPU Queue enqueues Wait Operation on Cross Queue Sync Object", \
 | |
| 		"@pLLIII", \
 | |
| 		"kcpu_queue,cqs_obj_gpu_addr,compare_value,condition,data_type,inherit_error") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_SET_OPERATION, \
 | |
| 		"KCPU Queue enqueues Set Operation on Cross Queue Sync Object", \
 | |
| 		"@pLLII", \
 | |
| 		"kcpu_queue,cqs_obj_gpu_addr,value,operation,data_type") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_MAP_IMPORT, \
 | |
| 		"KCPU Queue enqueues Map Import", \
 | |
| 		"@pL", \
 | |
| 		"kcpu_queue,map_import_buf_gpu_addr") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_UNMAP_IMPORT, \
 | |
| 		"KCPU Queue enqueues Unmap Import", \
 | |
| 		"@pL", \
 | |
| 		"kcpu_queue,map_import_buf_gpu_addr") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_UNMAP_IMPORT_FORCE, \
 | |
| 		"KCPU Queue enqueues Unmap Import ignoring reference count", \
 | |
| 		"@pL", \
 | |
| 		"kcpu_queue,map_import_buf_gpu_addr") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_ENQUEUE_JIT_ALLOC, \
 | |
| 		"Begin array of KCPU Queue enqueues JIT Alloc", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_ENQUEUE_JIT_ALLOC, \
 | |
| 		"Array item of KCPU Queue enqueues JIT Alloc", \
 | |
| 		"@pLLLLIIIII", \
 | |
| 		"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") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_ENQUEUE_JIT_ALLOC, \
 | |
| 		"End array of KCPU Queue enqueues JIT Alloc", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_ENQUEUE_JIT_FREE, \
 | |
| 		"Begin array of KCPU Queue enqueues JIT Free", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_ENQUEUE_JIT_FREE, \
 | |
| 		"Array item of KCPU Queue enqueues JIT Free", \
 | |
| 		"@pI", \
 | |
| 		"kcpu_queue,jit_alloc_jit_id") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_ENQUEUE_JIT_FREE, \
 | |
| 		"End array of KCPU Queue enqueues JIT Free", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_ERROR_BARRIER, \
 | |
| 		"KCPU Queue enqueues Error Barrier", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_GROUP_SUSPEND, \
 | |
| 		"KCPU Queue enqueues Group Suspend", \
 | |
| 		"@ppI", \
 | |
| 		"kcpu_queue,group_suspend_buf,gpu_cmdq_grp_handle") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_SIGNAL_START, \
 | |
| 		"KCPU Queue starts a Signal on Fence", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_SIGNAL_END, \
 | |
| 		"KCPU Queue ends a Signal on Fence", \
 | |
| 		"@pI", \
 | |
| 		"kcpu_queue,execute_error") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_WAIT_START, \
 | |
| 		"KCPU Queue starts a Wait on Fence", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_WAIT_END, \
 | |
| 		"KCPU Queue ends a Wait on Fence", \
 | |
| 		"@pI", \
 | |
| 		"kcpu_queue,execute_error") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_START, \
 | |
| 		"KCPU Queue starts a Wait on Cross Queue Sync Object", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_END, \
 | |
| 		"KCPU Queue ends a Wait on Cross Queue Sync Object", \
 | |
| 		"@pI", \
 | |
| 		"kcpu_queue,execute_error") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_SET, \
 | |
| 		"KCPU Queue executes a Set on Cross Queue Sync Object", \
 | |
| 		"@pI", \
 | |
| 		"kcpu_queue,execute_error") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_OPERATION_START, \
 | |
| 		"KCPU Queue starts a Wait Operation on Cross Queue Sync Object", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_OPERATION_END, \
 | |
| 		"KCPU Queue ends a Wait Operation on Cross Queue Sync Object", \
 | |
| 		"@pI", \
 | |
| 		"kcpu_queue,execute_error") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_SET_OPERATION, \
 | |
| 		"KCPU Queue executes a Set Operation on Cross Queue Sync Object", \
 | |
| 		"@pI", \
 | |
| 		"kcpu_queue,execute_error") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_MAP_IMPORT_START, \
 | |
| 		"KCPU Queue starts a Map Import", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_MAP_IMPORT_END, \
 | |
| 		"KCPU Queue ends a Map Import", \
 | |
| 		"@pI", \
 | |
| 		"kcpu_queue,execute_error") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_START, \
 | |
| 		"KCPU Queue starts an Unmap Import", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_END, \
 | |
| 		"KCPU Queue ends an Unmap Import", \
 | |
| 		"@pI", \
 | |
| 		"kcpu_queue,execute_error") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_FORCE_START, \
 | |
| 		"KCPU Queue starts an Unmap Import ignoring reference count", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_FORCE_END, \
 | |
| 		"KCPU Queue ends an Unmap Import ignoring reference count", \
 | |
| 		"@pI", \
 | |
| 		"kcpu_queue,execute_error") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_JIT_ALLOC_START, \
 | |
| 		"KCPU Queue starts an array of JIT Allocs", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_EXECUTE_JIT_ALLOC_END, \
 | |
| 		"Begin array of KCPU Queue ends an array of JIT Allocs", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_EXECUTE_JIT_ALLOC_END, \
 | |
| 		"Array item of KCPU Queue ends an array of JIT Allocs", \
 | |
| 		"@pILL", \
 | |
| 		"kcpu_queue,execute_error,jit_alloc_gpu_alloc_addr,jit_alloc_mmu_flags") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_EXECUTE_JIT_ALLOC_END, \
 | |
| 		"End array of KCPU Queue ends an array of JIT Allocs", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_JIT_FREE_START, \
 | |
| 		"KCPU Queue starts an array of JIT Frees", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_EXECUTE_JIT_FREE_END, \
 | |
| 		"Begin array of KCPU Queue ends an array of JIT Frees", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_EXECUTE_JIT_FREE_END, \
 | |
| 		"Array item of KCPU Queue ends an array of JIT Frees", \
 | |
| 		"@pIL", \
 | |
| 		"kcpu_queue,execute_error,jit_free_pages_used") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_EXECUTE_JIT_FREE_END, \
 | |
| 		"End array of KCPU Queue ends an array of JIT Frees", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_ERROR_BARRIER, \
 | |
| 		"KCPU Queue executes an Error Barrier", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_GROUP_SUSPEND_START, \
 | |
| 		"KCPU Queue starts a group suspend", \
 | |
| 		"@p", \
 | |
| 		"kcpu_queue") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_GROUP_SUSPEND_END, \
 | |
| 		"KCPU Queue ends a group suspend", \
 | |
| 		"@pI", \
 | |
| 		"kcpu_queue,execute_error") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_RELOADING, \
 | |
| 		"CSF FW is being reloaded", \
 | |
| 		"@L", \
 | |
| 		"csffw_cycle") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_ENABLING, \
 | |
| 		"CSF FW is being enabled", \
 | |
| 		"@L", \
 | |
| 		"csffw_cycle") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_REQUEST_SLEEP, \
 | |
| 		"CSF FW sleep is requested", \
 | |
| 		"@L", \
 | |
| 		"csffw_cycle") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_REQUEST_WAKEUP, \
 | |
| 		"CSF FW wake up is requested", \
 | |
| 		"@L", \
 | |
| 		"csffw_cycle") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_REQUEST_HALT, \
 | |
| 		"CSF FW halt is requested", \
 | |
| 		"@L", \
 | |
| 		"csffw_cycle") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_DISABLING, \
 | |
| 		"CSF FW is being disabled", \
 | |
| 		"@L", \
 | |
| 		"csffw_cycle") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_OFF, \
 | |
| 		"CSF FW is off", \
 | |
| 		"@L", \
 | |
| 		"csffw_cycle") \
 | |
| 	TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_TLSTREAM_OVERFLOW, \
 | |
| 		"An overflow has happened with the CSFFW Timeline stream", \
 | |
| 		"@LL", \
 | |
| 		"csffw_timestamp,csffw_cycle")
 | |
| 
 | |
| #define MIPE_HEADER_BLOB_VAR_NAME        __obj_desc_header
 | |
| #define MIPE_HEADER_STREAM_ID            TL_STREAM_ID_KERNEL
 | |
| #define MIPE_HEADER_PKT_CLASS            TL_PACKET_CLASS_OBJ
 | |
| #define MIPE_HEADER_TRACEPOINT_LIST      OBJ_TP_LIST
 | |
| #define MIPE_HEADER_TRACEPOINT_LIST_SIZE KBASE_OBJ_MSG_COUNT
 | |
| 
 | |
| #include "mali_kbase_mipe_gen_header.h"
 | |
| 
 | |
| const char   *obj_desc_header = (const char *) &__obj_desc_header;
 | |
| const size_t  obj_desc_header_size = sizeof(__obj_desc_header);
 | |
| 
 | |
| /* Message ids of trace events that are recorded in the aux stream. */
 | |
| enum tl_msg_id_aux {
 | |
| 	KBASE_AUX_PM_STATE,
 | |
| 	KBASE_AUX_PAGEFAULT,
 | |
| 	KBASE_AUX_PAGESALLOC,
 | |
| 	KBASE_AUX_DEVFREQ_TARGET,
 | |
| 	KBASE_AUX_JIT_STATS,
 | |
| 	KBASE_AUX_TILER_HEAP_STATS,
 | |
| 	KBASE_AUX_EVENT_JOB_SLOT,
 | |
| 	KBASE_AUX_PROTECTED_ENTER_START,
 | |
| 	KBASE_AUX_PROTECTED_ENTER_END,
 | |
| 	KBASE_AUX_MMU_COMMAND,
 | |
| 	KBASE_AUX_PROTECTED_LEAVE_START,
 | |
| 	KBASE_AUX_PROTECTED_LEAVE_END,
 | |
| 	KBASE_AUX_MSG_COUNT,
 | |
| };
 | |
| 
 | |
| #define AUX_TP_LIST \
 | |
| 	TRACEPOINT_DESC(KBASE_AUX_PM_STATE, \
 | |
| 		"PM state", \
 | |
| 		"@IL", \
 | |
| 		"core_type,core_state_bitset") \
 | |
| 	TRACEPOINT_DESC(KBASE_AUX_PAGEFAULT, \
 | |
| 		"Page fault", \
 | |
| 		"@IIL", \
 | |
| 		"ctx_nr,as_nr,page_cnt_change") \
 | |
| 	TRACEPOINT_DESC(KBASE_AUX_PAGESALLOC, \
 | |
| 		"Total alloc pages change", \
 | |
| 		"@IL", \
 | |
| 		"ctx_nr,page_cnt") \
 | |
| 	TRACEPOINT_DESC(KBASE_AUX_DEVFREQ_TARGET, \
 | |
| 		"New device frequency target", \
 | |
| 		"@L", \
 | |
| 		"target_freq") \
 | |
| 	TRACEPOINT_DESC(KBASE_AUX_JIT_STATS, \
 | |
| 		"per-bin JIT statistics", \
 | |
| 		"@IIIIII", \
 | |
| 		"ctx_nr,bid,max_allocs,allocs,va_pages,ph_pages") \
 | |
| 	TRACEPOINT_DESC(KBASE_AUX_TILER_HEAP_STATS, \
 | |
| 		"Tiler Heap statistics", \
 | |
| 		"@ILIIIIIII", \
 | |
| 		"ctx_nr,heap_id,va_pages,ph_pages,max_chunks,chunk_size,chunk_count,target_in_flight,nr_in_flight") \
 | |
| 	TRACEPOINT_DESC(KBASE_AUX_EVENT_JOB_SLOT, \
 | |
| 		"event on a given job slot", \
 | |
| 		"@pIII", \
 | |
| 		"ctx,slot_nr,atom_nr,event") \
 | |
| 	TRACEPOINT_DESC(KBASE_AUX_PROTECTED_ENTER_START, \
 | |
| 		"enter protected mode start", \
 | |
| 		"@p", \
 | |
| 		"gpu") \
 | |
| 	TRACEPOINT_DESC(KBASE_AUX_PROTECTED_ENTER_END, \
 | |
| 		"enter protected mode end", \
 | |
| 		"@p", \
 | |
| 		"gpu") \
 | |
| 	TRACEPOINT_DESC(KBASE_AUX_MMU_COMMAND, \
 | |
| 		"mmu commands with synchronicity info", \
 | |
| 		"@IIILI", \
 | |
| 		"kernel_ctx_id,mmu_cmd_id,mmu_synchronicity,mmu_lock_addr,mmu_lock_page_num") \
 | |
| 	TRACEPOINT_DESC(KBASE_AUX_PROTECTED_LEAVE_START, \
 | |
| 		"leave protected mode start", \
 | |
| 		"@p", \
 | |
| 		"gpu") \
 | |
| 	TRACEPOINT_DESC(KBASE_AUX_PROTECTED_LEAVE_END, \
 | |
| 		"leave protected mode end", \
 | |
| 		"@p", \
 | |
| 		"gpu")
 | |
| 
 | |
| #define MIPE_HEADER_BLOB_VAR_NAME        __aux_desc_header
 | |
| #define MIPE_HEADER_STREAM_ID            TL_STREAM_ID_KERNEL
 | |
| #define MIPE_HEADER_PKT_CLASS            TL_PACKET_CLASS_AUX
 | |
| #define MIPE_HEADER_TRACEPOINT_LIST      AUX_TP_LIST
 | |
| #define MIPE_HEADER_TRACEPOINT_LIST_SIZE KBASE_AUX_MSG_COUNT
 | |
| 
 | |
| #include "mali_kbase_mipe_gen_header.h"
 | |
| 
 | |
| const char   *aux_desc_header = (const char *) &__aux_desc_header;
 | |
| const size_t  aux_desc_header_size = sizeof(__aux_desc_header);
 | |
| 
 | |
| void __kbase_tlstream_tl_new_ctx(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *ctx,
 | |
| 	u32 ctx_nr,
 | |
| 	u32 tgid
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_NEW_CTX;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(ctx)
 | |
| 		+ sizeof(ctx_nr)
 | |
| 		+ sizeof(tgid)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &ctx, sizeof(ctx));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &ctx_nr, sizeof(ctx_nr));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &tgid, sizeof(tgid));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_new_gpu(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *gpu,
 | |
| 	u32 gpu_id,
 | |
| 	u32 core_count
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_NEW_GPU;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(gpu)
 | |
| 		+ sizeof(gpu_id)
 | |
| 		+ sizeof(core_count)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &gpu, sizeof(gpu));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &gpu_id, sizeof(gpu_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &core_count, sizeof(core_count));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_new_lpu(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *lpu,
 | |
| 	u32 lpu_nr,
 | |
| 	u32 lpu_fn
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_NEW_LPU;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(lpu)
 | |
| 		+ sizeof(lpu_nr)
 | |
| 		+ sizeof(lpu_fn)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &lpu, sizeof(lpu));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &lpu_nr, sizeof(lpu_nr));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &lpu_fn, sizeof(lpu_fn));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_new_atom(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom,
 | |
| 	u32 atom_nr
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_NEW_ATOM;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		+ sizeof(atom_nr)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom_nr, sizeof(atom_nr));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_new_as(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *address_space,
 | |
| 	u32 as_nr
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_NEW_AS;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(address_space)
 | |
| 		+ sizeof(as_nr)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &address_space, sizeof(address_space));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &as_nr, sizeof(as_nr));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_del_ctx(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *ctx
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_DEL_CTX;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(ctx)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &ctx, sizeof(ctx));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_del_atom(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_DEL_ATOM;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_lifelink_lpu_gpu(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *lpu,
 | |
| 	const void *gpu
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_LIFELINK_LPU_GPU;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(lpu)
 | |
| 		+ sizeof(gpu)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &lpu, sizeof(lpu));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &gpu, sizeof(gpu));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_lifelink_as_gpu(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *address_space,
 | |
| 	const void *gpu
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_LIFELINK_AS_GPU;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(address_space)
 | |
| 		+ sizeof(gpu)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &address_space, sizeof(address_space));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &gpu, sizeof(gpu));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_ret_ctx_lpu(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *ctx,
 | |
| 	const void *lpu
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_RET_CTX_LPU;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(ctx)
 | |
| 		+ sizeof(lpu)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &ctx, sizeof(ctx));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &lpu, sizeof(lpu));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_ret_atom_ctx(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom,
 | |
| 	const void *ctx
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_RET_ATOM_CTX;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		+ sizeof(ctx)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &ctx, sizeof(ctx));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_ret_atom_lpu(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom,
 | |
| 	const void *lpu,
 | |
| 	const char *attrib_match_list
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_RET_ATOM_LPU;
 | |
| 	const size_t s2 = sizeof(u32) + sizeof(char)
 | |
| 		+ strnlen(attrib_match_list, STRLEN_MAX);
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		+ sizeof(lpu)
 | |
| 		+ s2
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &lpu, sizeof(lpu));
 | |
| 	pos = kbasep_serialize_string(buffer,
 | |
| 		pos, attrib_match_list, s2);
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_nret_ctx_lpu(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *ctx,
 | |
| 	const void *lpu
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_NRET_CTX_LPU;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(ctx)
 | |
| 		+ sizeof(lpu)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &ctx, sizeof(ctx));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &lpu, sizeof(lpu));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_nret_atom_ctx(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom,
 | |
| 	const void *ctx
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_NRET_ATOM_CTX;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		+ sizeof(ctx)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &ctx, sizeof(ctx));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_nret_atom_lpu(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom,
 | |
| 	const void *lpu
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_NRET_ATOM_LPU;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		+ sizeof(lpu)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &lpu, sizeof(lpu));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_ret_as_ctx(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *address_space,
 | |
| 	const void *ctx
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_RET_AS_CTX;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(address_space)
 | |
| 		+ sizeof(ctx)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &address_space, sizeof(address_space));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &ctx, sizeof(ctx));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_nret_as_ctx(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *address_space,
 | |
| 	const void *ctx
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_NRET_AS_CTX;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(address_space)
 | |
| 		+ sizeof(ctx)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &address_space, sizeof(address_space));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &ctx, sizeof(ctx));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_ret_atom_as(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom,
 | |
| 	const void *address_space
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_RET_ATOM_AS;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		+ sizeof(address_space)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &address_space, sizeof(address_space));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_nret_atom_as(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom,
 | |
| 	const void *address_space
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_NRET_ATOM_AS;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		+ sizeof(address_space)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &address_space, sizeof(address_space));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_attrib_atom_config(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom,
 | |
| 	u64 descriptor,
 | |
| 	u64 affinity,
 | |
| 	u32 config
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_ATTRIB_ATOM_CONFIG;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		+ sizeof(descriptor)
 | |
| 		+ sizeof(affinity)
 | |
| 		+ sizeof(config)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &descriptor, sizeof(descriptor));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &affinity, sizeof(affinity));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &config, sizeof(config));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_jit_usedpages(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u64 used_pages,
 | |
| 	u32 j_id
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_JIT_USEDPAGES;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(used_pages)
 | |
| 		+ sizeof(j_id)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &used_pages, sizeof(used_pages));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &j_id, sizeof(j_id));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __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
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_ATTRIB_ATOM_JITALLOCINFO;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		+ sizeof(va_pgs)
 | |
| 		+ sizeof(com_pgs)
 | |
| 		+ sizeof(extent)
 | |
| 		+ sizeof(j_id)
 | |
| 		+ sizeof(bin_id)
 | |
| 		+ sizeof(max_allocs)
 | |
| 		+ sizeof(jit_flags)
 | |
| 		+ sizeof(usg_id)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &va_pgs, sizeof(va_pgs));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &com_pgs, sizeof(com_pgs));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &extent, sizeof(extent));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &j_id, sizeof(j_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &bin_id, sizeof(bin_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &max_allocs, sizeof(max_allocs));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &jit_flags, sizeof(jit_flags));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &usg_id, sizeof(usg_id));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_attrib_atom_jitfreeinfo(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom,
 | |
| 	u32 j_id
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_ATTRIB_ATOM_JITFREEINFO;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		+ sizeof(j_id)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &j_id, sizeof(j_id));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_attrib_as_config(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *address_space,
 | |
| 	u64 transtab,
 | |
| 	u64 memattr,
 | |
| 	u64 transcfg
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_ATTRIB_AS_CONFIG;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(address_space)
 | |
| 		+ sizeof(transtab)
 | |
| 		+ sizeof(memattr)
 | |
| 		+ sizeof(transcfg)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &address_space, sizeof(address_space));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &transtab, sizeof(transtab));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &memattr, sizeof(memattr));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &transcfg, sizeof(transcfg));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_event_lpu_softstop(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *lpu
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_EVENT_LPU_SOFTSTOP;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(lpu)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &lpu, sizeof(lpu));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_event_atom_softstop_ex(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_EVENT_ATOM_SOFTSTOP_EX;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_event_atom_softstop_issue(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_EVENT_ATOM_SOFTSTOP_ISSUE;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_event_atom_softjob_start(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_EVENT_ATOM_SOFTJOB_START;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_event_atom_softjob_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_EVENT_ATOM_SOFTJOB_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_arbiter_granted(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *gpu
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_ARBITER_GRANTED;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(gpu)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &gpu, sizeof(gpu));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_arbiter_lost(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *gpu
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_ARBITER_LOST;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(gpu)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &gpu, sizeof(gpu));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_arbiter_started(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *gpu
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_ARBITER_STARTED;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(gpu)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &gpu, sizeof(gpu));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_arbiter_stop_requested(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *gpu
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_ARBITER_STOP_REQUESTED;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(gpu)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &gpu, sizeof(gpu));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_arbiter_stopped(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *gpu
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_ARBITER_STOPPED;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(gpu)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &gpu, sizeof(gpu));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_arbiter_requested(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *gpu
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_ARBITER_REQUESTED;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(gpu)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &gpu, sizeof(gpu));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_jd_gpu_soft_reset(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *gpu
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_JD_GPU_SOFT_RESET;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(gpu)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &gpu, sizeof(gpu));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_jd_tiler_heap_chunk_alloc(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u32 ctx_nr,
 | |
| 	u64 heap_id,
 | |
| 	u64 chunk_va
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_JD_TILER_HEAP_CHUNK_ALLOC;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(ctx_nr)
 | |
| 		+ sizeof(heap_id)
 | |
| 		+ sizeof(chunk_va)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &ctx_nr, sizeof(ctx_nr));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &heap_id, sizeof(heap_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &chunk_va, sizeof(chunk_va));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_js_sched_start(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u32 dummy
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_JS_SCHED_START;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(dummy)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &dummy, sizeof(dummy));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_js_sched_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u32 dummy
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_JS_SCHED_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(dummy)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &dummy, sizeof(dummy));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_jd_submit_atom_start(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_JD_SUBMIT_ATOM_START;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_jd_submit_atom_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_JD_SUBMIT_ATOM_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_jd_done_no_lock_start(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_JD_DONE_NO_LOCK_START;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_jd_done_no_lock_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_JD_DONE_NO_LOCK_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_jd_done_start(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_JD_DONE_START;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_jd_done_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_JD_DONE_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_jd_atom_complete(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_JD_ATOM_COMPLETE;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_run_atom_start(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom,
 | |
| 	u32 atom_nr
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_RUN_ATOM_START;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		+ sizeof(atom_nr)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom_nr, sizeof(atom_nr));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_run_atom_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom,
 | |
| 	u32 atom_nr
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_RUN_ATOM_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		+ sizeof(atom_nr)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom_nr, sizeof(atom_nr));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_attrib_atom_priority(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom,
 | |
| 	u32 prio
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_ATTRIB_ATOM_PRIORITY;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		+ sizeof(prio)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &prio, sizeof(prio));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_attrib_atom_state(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom,
 | |
| 	u32 state
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_ATTRIB_ATOM_STATE;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		+ sizeof(state)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &state, sizeof(state));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_attrib_atom_prioritized(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *atom
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_ATTRIB_ATOM_PRIORITIZED;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __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
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_ATTRIB_ATOM_JIT;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(atom)
 | |
| 		+ sizeof(edit_addr)
 | |
| 		+ sizeof(new_addr)
 | |
| 		+ sizeof(jit_flags)
 | |
| 		+ sizeof(mem_flags)
 | |
| 		+ sizeof(j_id)
 | |
| 		+ sizeof(com_pgs)
 | |
| 		+ sizeof(extent)
 | |
| 		+ sizeof(va_pgs)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom, sizeof(atom));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &edit_addr, sizeof(edit_addr));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &new_addr, sizeof(new_addr));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &jit_flags, sizeof(jit_flags));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &mem_flags, sizeof(mem_flags));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &j_id, sizeof(j_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &com_pgs, sizeof(com_pgs));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &extent, sizeof(extent));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &va_pgs, sizeof(va_pgs));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __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,
 | |
| 	u32 kbase_device_has_vd54d34dbb40917c8cea48cca407a8789413be0db
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_NEW_DEVICE;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kbase_device_id)
 | |
| 		+ sizeof(kbase_device_gpu_core_count)
 | |
| 		+ sizeof(kbase_device_max_num_csgs)
 | |
| 		+ sizeof(kbase_device_as_count)
 | |
| 		+ sizeof(kbase_device_sb_entry_count)
 | |
| 		+ sizeof(kbase_device_has_cross_stream_sync)
 | |
| 		+ sizeof(kbase_device_supports_gpu_sleep)
 | |
| 		+ sizeof(kbase_device_has_vd54d34dbb40917c8cea48cca407a8789413be0db)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_id, sizeof(kbase_device_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_gpu_core_count, sizeof(kbase_device_gpu_core_count));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_max_num_csgs, sizeof(kbase_device_max_num_csgs));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_as_count, sizeof(kbase_device_as_count));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_sb_entry_count, sizeof(kbase_device_sb_entry_count));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_has_cross_stream_sync, sizeof(kbase_device_has_cross_stream_sync));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_supports_gpu_sleep, sizeof(kbase_device_supports_gpu_sleep));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_has_vd54d34dbb40917c8cea48cca407a8789413be0db, sizeof(kbase_device_has_vd54d34dbb40917c8cea48cca407a8789413be0db));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_gpucmdqueue_kick(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u32 kernel_ctx_id,
 | |
| 	u64 buffer_gpu_addr
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_GPUCMDQUEUE_KICK;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kernel_ctx_id)
 | |
| 		+ sizeof(buffer_gpu_addr)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &buffer_gpu_addr, sizeof(buffer_gpu_addr));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __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_resuming
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_DEVICE_PROGRAM_CSG;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kbase_device_id)
 | |
| 		+ sizeof(kernel_ctx_id)
 | |
| 		+ sizeof(gpu_cmdq_grp_handle)
 | |
| 		+ sizeof(kbase_device_csg_slot_index)
 | |
| 		+ sizeof(kbase_device_csg_slot_resuming)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_id, sizeof(kbase_device_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &gpu_cmdq_grp_handle, sizeof(gpu_cmdq_grp_handle));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_csg_slot_index, sizeof(kbase_device_csg_slot_index));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_csg_slot_resuming, sizeof(kbase_device_csg_slot_resuming));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_device_deprogram_csg(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u32 kbase_device_id,
 | |
| 	u32 kbase_device_csg_slot_index
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_DEVICE_DEPROGRAM_CSG;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kbase_device_id)
 | |
| 		+ sizeof(kbase_device_csg_slot_index)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_id, sizeof(kbase_device_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_csg_slot_index, sizeof(kbase_device_csg_slot_index));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_device_halting_csg(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u32 kbase_device_id,
 | |
| 	u32 kbase_device_csg_slot_index,
 | |
| 	u32 kbase_device_csg_slot_suspending
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_DEVICE_HALTING_CSG;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kbase_device_id)
 | |
| 		+ sizeof(kbase_device_csg_slot_index)
 | |
| 		+ sizeof(kbase_device_csg_slot_suspending)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_id, sizeof(kbase_device_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_csg_slot_index, sizeof(kbase_device_csg_slot_index));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_csg_slot_suspending, sizeof(kbase_device_csg_slot_suspending));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_device_suspend_csg(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u32 kbase_device_id,
 | |
| 	u32 kbase_device_csg_slot_index
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_DEVICE_SUSPEND_CSG;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kbase_device_id)
 | |
| 		+ sizeof(kbase_device_csg_slot_index)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_id, sizeof(kbase_device_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_csg_slot_index, sizeof(kbase_device_csg_slot_index));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_device_csg_idle(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u32 kbase_device_id,
 | |
| 	u32 kbase_device_csg_slot_index
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_DEVICE_CSG_IDLE;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kbase_device_id)
 | |
| 		+ sizeof(kbase_device_csg_slot_index)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_id, sizeof(kbase_device_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_csg_slot_index, sizeof(kbase_device_csg_slot_index));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_new_ctx(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u32 kernel_ctx_id,
 | |
| 	u32 kbase_device_id
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_NEW_CTX;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kernel_ctx_id)
 | |
| 		+ sizeof(kbase_device_id)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_id, sizeof(kbase_device_id));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_del_ctx(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u32 kernel_ctx_id
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_DEL_CTX;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kernel_ctx_id)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_ctx_assign_as(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u32 kernel_ctx_id,
 | |
| 	u32 kbase_device_as_index
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_CTX_ASSIGN_AS;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kernel_ctx_id)
 | |
| 		+ sizeof(kbase_device_as_index)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kbase_device_as_index, sizeof(kbase_device_as_index));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_ctx_unassign_as(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u32 kernel_ctx_id
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_CTX_UNASSIGN_AS;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kernel_ctx_id)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_new_kcpuqueue(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	u32 kcpu_queue_id,
 | |
| 	u32 kernel_ctx_id,
 | |
| 	u32 kcpuq_num_pending_cmds
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_NEW_KCPUQUEUE;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(kcpu_queue_id)
 | |
| 		+ sizeof(kernel_ctx_id)
 | |
| 		+ sizeof(kcpuq_num_pending_cmds)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue_id, sizeof(kcpu_queue_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpuq_num_pending_cmds, sizeof(kcpuq_num_pending_cmds));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_del_kcpuqueue(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_DEL_KCPUQUEUE;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_fence_signal(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	const void *fence
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_FENCE_SIGNAL;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(fence)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &fence, sizeof(fence));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_fence_wait(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	const void *fence
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_FENCE_WAIT;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(fence)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &fence, sizeof(fence));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_cqs_wait(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	u64 cqs_obj_gpu_addr,
 | |
| 	u32 compare_value,
 | |
| 	u32 inherit_error
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_WAIT;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(cqs_obj_gpu_addr)
 | |
| 		+ sizeof(compare_value)
 | |
| 		+ sizeof(inherit_error)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &cqs_obj_gpu_addr, sizeof(cqs_obj_gpu_addr));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &compare_value, sizeof(compare_value));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &inherit_error, sizeof(inherit_error));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_cqs_set(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	u64 cqs_obj_gpu_addr
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_SET;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(cqs_obj_gpu_addr)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &cqs_obj_gpu_addr, sizeof(cqs_obj_gpu_addr));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_cqs_wait_operation(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	u64 cqs_obj_gpu_addr,
 | |
| 	u64 compare_value,
 | |
| 	u32 condition,
 | |
| 	u32 data_type,
 | |
| 	u32 inherit_error
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_WAIT_OPERATION;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(cqs_obj_gpu_addr)
 | |
| 		+ sizeof(compare_value)
 | |
| 		+ sizeof(condition)
 | |
| 		+ sizeof(data_type)
 | |
| 		+ sizeof(inherit_error)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &cqs_obj_gpu_addr, sizeof(cqs_obj_gpu_addr));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &compare_value, sizeof(compare_value));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &condition, sizeof(condition));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &data_type, sizeof(data_type));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &inherit_error, sizeof(inherit_error));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_cqs_set_operation(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	u64 cqs_obj_gpu_addr,
 | |
| 	u64 value,
 | |
| 	u32 operation,
 | |
| 	u32 data_type
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_SET_OPERATION;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(cqs_obj_gpu_addr)
 | |
| 		+ sizeof(value)
 | |
| 		+ sizeof(operation)
 | |
| 		+ sizeof(data_type)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &cqs_obj_gpu_addr, sizeof(cqs_obj_gpu_addr));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &value, sizeof(value));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &operation, sizeof(operation));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &data_type, sizeof(data_type));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_map_import(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	u64 map_import_buf_gpu_addr
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_MAP_IMPORT;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(map_import_buf_gpu_addr)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &map_import_buf_gpu_addr, sizeof(map_import_buf_gpu_addr));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_unmap_import(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	u64 map_import_buf_gpu_addr
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_UNMAP_IMPORT;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(map_import_buf_gpu_addr)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &map_import_buf_gpu_addr, sizeof(map_import_buf_gpu_addr));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_unmap_import_force(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	u64 map_import_buf_gpu_addr
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_UNMAP_IMPORT_FORCE;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(map_import_buf_gpu_addr)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &map_import_buf_gpu_addr, sizeof(map_import_buf_gpu_addr));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_array_begin_kcpuqueue_enqueue_jit_alloc(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_ENQUEUE_JIT_ALLOC;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __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
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_ENQUEUE_JIT_ALLOC;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(jit_alloc_gpu_alloc_addr_dest)
 | |
| 		+ sizeof(jit_alloc_va_pages)
 | |
| 		+ sizeof(jit_alloc_commit_pages)
 | |
| 		+ sizeof(jit_alloc_extent)
 | |
| 		+ sizeof(jit_alloc_jit_id)
 | |
| 		+ sizeof(jit_alloc_bin_id)
 | |
| 		+ sizeof(jit_alloc_max_allocations)
 | |
| 		+ sizeof(jit_alloc_flags)
 | |
| 		+ sizeof(jit_alloc_usage_id)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &jit_alloc_gpu_alloc_addr_dest, sizeof(jit_alloc_gpu_alloc_addr_dest));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &jit_alloc_va_pages, sizeof(jit_alloc_va_pages));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &jit_alloc_commit_pages, sizeof(jit_alloc_commit_pages));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &jit_alloc_extent, sizeof(jit_alloc_extent));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &jit_alloc_jit_id, sizeof(jit_alloc_jit_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &jit_alloc_bin_id, sizeof(jit_alloc_bin_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &jit_alloc_max_allocations, sizeof(jit_alloc_max_allocations));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &jit_alloc_flags, sizeof(jit_alloc_flags));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &jit_alloc_usage_id, sizeof(jit_alloc_usage_id));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_array_end_kcpuqueue_enqueue_jit_alloc(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_ENQUEUE_JIT_ALLOC;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_array_begin_kcpuqueue_enqueue_jit_free(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_ENQUEUE_JIT_FREE;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_array_item_kcpuqueue_enqueue_jit_free(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	u32 jit_alloc_jit_id
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_ENQUEUE_JIT_FREE;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(jit_alloc_jit_id)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &jit_alloc_jit_id, sizeof(jit_alloc_jit_id));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_array_end_kcpuqueue_enqueue_jit_free(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_ENQUEUE_JIT_FREE;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_error_barrier(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_ERROR_BARRIER;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __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
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_GROUP_SUSPEND;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(group_suspend_buf)
 | |
| 		+ sizeof(gpu_cmdq_grp_handle)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &group_suspend_buf, sizeof(group_suspend_buf));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &gpu_cmdq_grp_handle, sizeof(gpu_cmdq_grp_handle));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_fence_signal_start(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_SIGNAL_START;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_fence_signal_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	u32 execute_error
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_SIGNAL_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(execute_error)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &execute_error, sizeof(execute_error));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_fence_wait_start(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_WAIT_START;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_fence_wait_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	u32 execute_error
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_WAIT_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(execute_error)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &execute_error, sizeof(execute_error));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_cqs_wait_start(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_START;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_cqs_wait_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	u32 execute_error
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(execute_error)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &execute_error, sizeof(execute_error));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_cqs_set(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	u32 execute_error
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_SET;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(execute_error)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &execute_error, sizeof(execute_error));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_cqs_wait_operation_start(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_OPERATION_START;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_cqs_wait_operation_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	u32 execute_error
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_OPERATION_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(execute_error)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &execute_error, sizeof(execute_error));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_cqs_set_operation(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	u32 execute_error
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_SET_OPERATION;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(execute_error)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &execute_error, sizeof(execute_error));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_map_import_start(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_MAP_IMPORT_START;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_map_import_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	u32 execute_error
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_MAP_IMPORT_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(execute_error)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &execute_error, sizeof(execute_error));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_unmap_import_start(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_START;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_unmap_import_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	u32 execute_error
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(execute_error)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &execute_error, sizeof(execute_error));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_unmap_import_force_start(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_FORCE_START;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_unmap_import_force_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	u32 execute_error
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_FORCE_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(execute_error)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &execute_error, sizeof(execute_error));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_jit_alloc_start(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_JIT_ALLOC_START;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_array_begin_kcpuqueue_execute_jit_alloc_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_EXECUTE_JIT_ALLOC_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __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
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_EXECUTE_JIT_ALLOC_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(execute_error)
 | |
| 		+ sizeof(jit_alloc_gpu_alloc_addr)
 | |
| 		+ sizeof(jit_alloc_mmu_flags)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &execute_error, sizeof(execute_error));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &jit_alloc_gpu_alloc_addr, sizeof(jit_alloc_gpu_alloc_addr));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &jit_alloc_mmu_flags, sizeof(jit_alloc_mmu_flags));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_array_end_kcpuqueue_execute_jit_alloc_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_EXECUTE_JIT_ALLOC_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_jit_free_start(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_JIT_FREE_START;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_array_begin_kcpuqueue_execute_jit_free_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_EXECUTE_JIT_FREE_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __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
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_EXECUTE_JIT_FREE_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(execute_error)
 | |
| 		+ sizeof(jit_free_pages_used)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &execute_error, sizeof(execute_error));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &jit_free_pages_used, sizeof(jit_free_pages_used));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_array_end_kcpuqueue_execute_jit_free_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_EXECUTE_JIT_FREE_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_error_barrier(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_ERROR_BARRIER;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_group_suspend_start(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_GROUP_SUSPEND_START;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_kcpuqueue_execute_group_suspend_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *kcpu_queue,
 | |
| 	u32 execute_error
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_GROUP_SUSPEND_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kcpu_queue)
 | |
| 		+ sizeof(execute_error)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kcpu_queue, sizeof(kcpu_queue));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &execute_error, sizeof(execute_error));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_csffw_fw_reloading(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u64 csffw_cycle
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_RELOADING;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(csffw_cycle)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &csffw_cycle, sizeof(csffw_cycle));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_csffw_fw_enabling(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u64 csffw_cycle
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_ENABLING;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(csffw_cycle)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &csffw_cycle, sizeof(csffw_cycle));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_csffw_fw_request_sleep(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u64 csffw_cycle
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_REQUEST_SLEEP;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(csffw_cycle)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &csffw_cycle, sizeof(csffw_cycle));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_csffw_fw_request_wakeup(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u64 csffw_cycle
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_REQUEST_WAKEUP;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(csffw_cycle)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &csffw_cycle, sizeof(csffw_cycle));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_csffw_fw_request_halt(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u64 csffw_cycle
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_REQUEST_HALT;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(csffw_cycle)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &csffw_cycle, sizeof(csffw_cycle));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_csffw_fw_disabling(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u64 csffw_cycle
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_DISABLING;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(csffw_cycle)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &csffw_cycle, sizeof(csffw_cycle));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_csffw_fw_off(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u64 csffw_cycle
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_OFF;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(csffw_cycle)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &csffw_cycle, sizeof(csffw_cycle));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_tl_kbase_csffw_tlstream_overflow(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u64 csffw_timestamp,
 | |
| 	u64 csffw_cycle
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_TL_KBASE_CSFFW_TLSTREAM_OVERFLOW;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(csffw_timestamp)
 | |
| 		+ sizeof(csffw_cycle)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &csffw_timestamp, sizeof(csffw_timestamp));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &csffw_cycle, sizeof(csffw_cycle));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_aux_pm_state(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u32 core_type,
 | |
| 	u64 core_state_bitset
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_AUX_PM_STATE;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(core_type)
 | |
| 		+ sizeof(core_state_bitset)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &core_type, sizeof(core_type));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &core_state_bitset, sizeof(core_state_bitset));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_aux_pagefault(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u32 ctx_nr,
 | |
| 	u32 as_nr,
 | |
| 	u64 page_cnt_change
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_AUX_PAGEFAULT;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(ctx_nr)
 | |
| 		+ sizeof(as_nr)
 | |
| 		+ sizeof(page_cnt_change)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &ctx_nr, sizeof(ctx_nr));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &as_nr, sizeof(as_nr));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &page_cnt_change, sizeof(page_cnt_change));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_aux_pagesalloc(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u32 ctx_nr,
 | |
| 	u64 page_cnt
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_AUX_PAGESALLOC;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(ctx_nr)
 | |
| 		+ sizeof(page_cnt)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &ctx_nr, sizeof(ctx_nr));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &page_cnt, sizeof(page_cnt));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_aux_devfreq_target(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	u64 target_freq
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_AUX_DEVFREQ_TARGET;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(target_freq)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &target_freq, sizeof(target_freq));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __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
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_AUX_JIT_STATS;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(ctx_nr)
 | |
| 		+ sizeof(bid)
 | |
| 		+ sizeof(max_allocs)
 | |
| 		+ sizeof(allocs)
 | |
| 		+ sizeof(va_pages)
 | |
| 		+ sizeof(ph_pages)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &ctx_nr, sizeof(ctx_nr));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &bid, sizeof(bid));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &max_allocs, sizeof(max_allocs));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &allocs, sizeof(allocs));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &va_pages, sizeof(va_pages));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &ph_pages, sizeof(ph_pages));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __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
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_AUX_TILER_HEAP_STATS;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(ctx_nr)
 | |
| 		+ sizeof(heap_id)
 | |
| 		+ sizeof(va_pages)
 | |
| 		+ sizeof(ph_pages)
 | |
| 		+ sizeof(max_chunks)
 | |
| 		+ sizeof(chunk_size)
 | |
| 		+ sizeof(chunk_count)
 | |
| 		+ sizeof(target_in_flight)
 | |
| 		+ sizeof(nr_in_flight)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &ctx_nr, sizeof(ctx_nr));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &heap_id, sizeof(heap_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &va_pages, sizeof(va_pages));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &ph_pages, sizeof(ph_pages));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &max_chunks, sizeof(max_chunks));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &chunk_size, sizeof(chunk_size));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &chunk_count, sizeof(chunk_count));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &target_in_flight, sizeof(target_in_flight));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &nr_in_flight, sizeof(nr_in_flight));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_aux_event_job_slot(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *ctx,
 | |
| 	u32 slot_nr,
 | |
| 	u32 atom_nr,
 | |
| 	u32 event
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_AUX_EVENT_JOB_SLOT;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(ctx)
 | |
| 		+ sizeof(slot_nr)
 | |
| 		+ sizeof(atom_nr)
 | |
| 		+ sizeof(event)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &ctx, sizeof(ctx));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &slot_nr, sizeof(slot_nr));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &atom_nr, sizeof(atom_nr));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &event, sizeof(event));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_aux_protected_enter_start(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *gpu
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_AUX_PROTECTED_ENTER_START;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(gpu)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &gpu, sizeof(gpu));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_aux_protected_enter_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *gpu
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_AUX_PROTECTED_ENTER_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(gpu)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &gpu, sizeof(gpu));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __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
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_AUX_MMU_COMMAND;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(kernel_ctx_id)
 | |
| 		+ sizeof(mmu_cmd_id)
 | |
| 		+ sizeof(mmu_synchronicity)
 | |
| 		+ sizeof(mmu_lock_addr)
 | |
| 		+ sizeof(mmu_lock_page_num)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &mmu_cmd_id, sizeof(mmu_cmd_id));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &mmu_synchronicity, sizeof(mmu_synchronicity));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &mmu_lock_addr, sizeof(mmu_lock_addr));
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &mmu_lock_page_num, sizeof(mmu_lock_page_num));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_aux_protected_leave_start(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *gpu
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_AUX_PROTECTED_LEAVE_START;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(gpu)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &gpu, sizeof(gpu));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| void __kbase_tlstream_aux_protected_leave_end(
 | |
| 	struct kbase_tlstream *stream,
 | |
| 	const void *gpu
 | |
| )
 | |
| {
 | |
| 	const u32 msg_id = KBASE_AUX_PROTECTED_LEAVE_END;
 | |
| 	const size_t msg_size = sizeof(msg_id) + sizeof(u64)
 | |
| 		+ sizeof(gpu)
 | |
| 		;
 | |
| 	char *buffer;
 | |
| 	unsigned long acq_flags;
 | |
| 	size_t pos = 0;
 | |
| 
 | |
| 	buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
 | |
| 
 | |
| 	pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
 | |
| 	pos = kbasep_serialize_timestamp(buffer, pos);
 | |
| 	pos = kbasep_serialize_bytes(buffer,
 | |
| 		pos, &gpu, sizeof(gpu));
 | |
| 
 | |
| 	kbase_tlstream_msgbuf_release(stream, acq_flags);
 | |
| }
 | |
| 
 | |
| /* clang-format on */
 |