diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdkfd/kfd_debug.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdkfd/kfd_debug.c | 17 | 
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_debug.c b/drivers/gpu/drm/amd/amdkfd/kfd_debug.c index 312dfa84f29f..a8abc3091801 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_debug.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_debug.c @@ -350,10 +350,27 @@ int kfd_dbg_set_mes_debug_mode(struct kfd_process_device *pdd, bool sq_trap_en)  {  	uint32_t spi_dbg_cntl = pdd->spi_dbg_override | pdd->spi_dbg_launch_mode;  	uint32_t flags = pdd->process->dbg_flags; +	struct amdgpu_device *adev = pdd->dev->adev; +	int r;  	if (!kfd_dbg_is_per_vmid_supported(pdd->dev))  		return 0; +	if (!pdd->proc_ctx_cpu_ptr) { +			r = amdgpu_amdkfd_alloc_gtt_mem(adev, +				AMDGPU_MES_PROC_CTX_SIZE, +				&pdd->proc_ctx_bo, +				&pdd->proc_ctx_gpu_addr, +				&pdd->proc_ctx_cpu_ptr, +				false); +		if (r) { +			dev_err(adev->dev, +			"failed to allocate process context bo\n"); +			return r; +		} +		memset(pdd->proc_ctx_cpu_ptr, 0, AMDGPU_MES_PROC_CTX_SIZE); +	} +  	return amdgpu_mes_set_shader_debugger(pdd->dev->adev, pdd->proc_ctx_gpu_addr, spi_dbg_cntl,  						pdd->watch_points, flags, sq_trap_en);  }  | 
