Lines Matching refs:umsch_mm
106 struct amdgpu_device *adev = container_of(umsch, struct amdgpu_device, umsch_mm); in amdgpu_umsch_mm_ring_init()
135 r = amdgpu_ucode_request(adev, &adev->umsch_mm.fw, AMDGPU_UCODE_REQUIRED, in amdgpu_umsch_mm_init_microcode()
138 release_firmware(adev->umsch_mm.fw); in amdgpu_umsch_mm_init_microcode()
139 adev->umsch_mm.fw = NULL; in amdgpu_umsch_mm_init_microcode()
143 umsch_mm_hdr = (const struct umsch_mm_firmware_header_v1_0 *)adev->umsch_mm.fw->data; in amdgpu_umsch_mm_init_microcode()
145 adev->umsch_mm.ucode_size = le32_to_cpu(umsch_mm_hdr->umsch_mm_ucode_size_bytes); in amdgpu_umsch_mm_init_microcode()
146 adev->umsch_mm.data_size = le32_to_cpu(umsch_mm_hdr->umsch_mm_ucode_data_size_bytes); in amdgpu_umsch_mm_init_microcode()
148 adev->umsch_mm.irq_start_addr = in amdgpu_umsch_mm_init_microcode()
151 adev->umsch_mm.uc_start_addr = in amdgpu_umsch_mm_init_microcode()
154 adev->umsch_mm.data_start_addr = in amdgpu_umsch_mm_init_microcode()
163 info->fw = adev->umsch_mm.fw; in amdgpu_umsch_mm_init_microcode()
169 info->fw = adev->umsch_mm.fw; in amdgpu_umsch_mm_init_microcode()
186 adev->umsch_mm.fw->data; in amdgpu_umsch_mm_allocate_ucode_buffer()
188 fw_data = (const __le32 *)(adev->umsch_mm.fw->data + in amdgpu_umsch_mm_allocate_ucode_buffer()
194 &adev->umsch_mm.ucode_fw_obj, in amdgpu_umsch_mm_allocate_ucode_buffer()
195 &adev->umsch_mm.ucode_fw_gpu_addr, in amdgpu_umsch_mm_allocate_ucode_buffer()
196 (void **)&adev->umsch_mm.ucode_fw_ptr); in amdgpu_umsch_mm_allocate_ucode_buffer()
202 memcpy(adev->umsch_mm.ucode_fw_ptr, fw_data, fw_size); in amdgpu_umsch_mm_allocate_ucode_buffer()
204 amdgpu_bo_kunmap(adev->umsch_mm.ucode_fw_obj); in amdgpu_umsch_mm_allocate_ucode_buffer()
205 amdgpu_bo_unreserve(adev->umsch_mm.ucode_fw_obj); in amdgpu_umsch_mm_allocate_ucode_buffer()
218 adev->umsch_mm.fw->data; in amdgpu_umsch_mm_allocate_ucode_data_buffer()
220 fw_data = (const __le32 *)(adev->umsch_mm.fw->data + in amdgpu_umsch_mm_allocate_ucode_data_buffer()
226 &adev->umsch_mm.data_fw_obj, in amdgpu_umsch_mm_allocate_ucode_data_buffer()
227 &adev->umsch_mm.data_fw_gpu_addr, in amdgpu_umsch_mm_allocate_ucode_data_buffer()
228 (void **)&adev->umsch_mm.data_fw_ptr); in amdgpu_umsch_mm_allocate_ucode_data_buffer()
234 memcpy(adev->umsch_mm.data_fw_ptr, fw_data, fw_size); in amdgpu_umsch_mm_allocate_ucode_data_buffer()
236 amdgpu_bo_kunmap(adev->umsch_mm.data_fw_obj); in amdgpu_umsch_mm_allocate_ucode_data_buffer()
237 amdgpu_bo_unreserve(adev->umsch_mm.data_fw_obj); in amdgpu_umsch_mm_allocate_ucode_data_buffer()
246 .mc_addr = adev->umsch_mm.cmd_buf_gpu_addr, in amdgpu_umsch_mm_psp_execute_cmd_buf()
247 .ucode_size = ((uintptr_t)adev->umsch_mm.cmd_buf_curr_ptr - in amdgpu_umsch_mm_psp_execute_cmd_buf()
248 (uintptr_t)adev->umsch_mm.cmd_buf_ptr), in amdgpu_umsch_mm_psp_execute_cmd_buf()
264 adev->umsch_mm.agdb_index[i] = umsch_mm_agdb_start + i; in umsch_mm_agdb_index_init()
271 adev->umsch_mm.vmid_mask_mm_vpe = 0xf00; in umsch_mm_init()
272 adev->umsch_mm.engine_mask = (1 << UMSCH_SWIP_ENGINE_TYPE_VPE); in umsch_mm_init()
273 adev->umsch_mm.vpe_hqd_mask = 0xfe; in umsch_mm_init()
275 r = amdgpu_device_wb_get(adev, &adev->umsch_mm.wb_index); in umsch_mm_init()
281 adev->umsch_mm.sch_ctx_gpu_addr = adev->wb.gpu_addr + in umsch_mm_init()
282 (adev->umsch_mm.wb_index * 4); in umsch_mm_init()
286 &adev->umsch_mm.cmd_buf_obj, in umsch_mm_init()
287 &adev->umsch_mm.cmd_buf_gpu_addr, in umsch_mm_init()
288 (void **)&adev->umsch_mm.cmd_buf_ptr); in umsch_mm_init()
291 amdgpu_device_wb_free(adev, adev->umsch_mm.wb_index); in umsch_mm_init()
298 &adev->umsch_mm.dbglog_bo, in umsch_mm_init()
299 &adev->umsch_mm.log_gpu_addr, in umsch_mm_init()
300 &adev->umsch_mm.log_cpu_addr); in umsch_mm_init()
306 mutex_init(&adev->umsch_mm.mutex_hidden); in umsch_mm_init()
321 umsch_mm_v4_0_set_funcs(&adev->umsch_mm); in umsch_mm_early_init()
327 adev->umsch_mm.ring.funcs = &umsch_v4_0_ring_funcs; in umsch_mm_early_init()
328 umsch_mm_set_regs(&adev->umsch_mm); in umsch_mm_early_init()
352 amdgpu_umsch_fwlog_init(&adev->umsch_mm); in umsch_mm_sw_init()
353 r = umsch_mm_ring_init(&adev->umsch_mm); in umsch_mm_sw_init()
357 r = umsch_mm_init_microcode(&adev->umsch_mm); in umsch_mm_sw_init()
368 release_firmware(adev->umsch_mm.fw); in umsch_mm_sw_fini()
369 adev->umsch_mm.fw = NULL; in umsch_mm_sw_fini()
371 amdgpu_ring_fini(&adev->umsch_mm.ring); in umsch_mm_sw_fini()
373 mutex_destroy(&adev->umsch_mm.mutex_hidden); in umsch_mm_sw_fini()
375 amdgpu_bo_free_kernel(&adev->umsch_mm.cmd_buf_obj, in umsch_mm_sw_fini()
376 &adev->umsch_mm.cmd_buf_gpu_addr, in umsch_mm_sw_fini()
377 (void **)&adev->umsch_mm.cmd_buf_ptr); in umsch_mm_sw_fini()
379 amdgpu_bo_free_kernel(&adev->umsch_mm.dbglog_bo, in umsch_mm_sw_fini()
380 &adev->umsch_mm.log_gpu_addr, in umsch_mm_sw_fini()
381 (void **)&adev->umsch_mm.log_cpu_addr); in umsch_mm_sw_fini()
383 amdgpu_device_wb_free(adev, adev->umsch_mm.wb_index); in umsch_mm_sw_fini()
393 r = umsch_mm_load_microcode(&adev->umsch_mm); in umsch_mm_hw_init()
397 umsch_mm_ring_start(&adev->umsch_mm); in umsch_mm_hw_init()
399 r = umsch_mm_set_hw_resources(&adev->umsch_mm); in umsch_mm_hw_init()
410 umsch_mm_ring_stop(&adev->umsch_mm); in umsch_mm_hw_fini()
412 amdgpu_bo_free_kernel(&adev->umsch_mm.data_fw_obj, in umsch_mm_hw_fini()
413 &adev->umsch_mm.data_fw_gpu_addr, in umsch_mm_hw_fini()
414 (void **)&adev->umsch_mm.data_fw_ptr); in umsch_mm_hw_fini()
416 amdgpu_bo_free_kernel(&adev->umsch_mm.ucode_fw_obj, in umsch_mm_hw_fini()
417 &adev->umsch_mm.ucode_fw_gpu_addr, in umsch_mm_hw_fini()
418 (void **)&adev->umsch_mm.ucode_fw_ptr); in umsch_mm_hw_fini()
432 void amdgpu_umsch_fwlog_init(struct amdgpu_umsch_mm *umsch_mm) in amdgpu_umsch_fwlog_init() argument
435 void *fw_log_cpu_addr = umsch_mm->log_cpu_addr; in amdgpu_umsch_fwlog_init()
453 struct amdgpu_umsch_mm *umsch_mm; in amdgpu_debugfs_umsch_fwlog_read() local
459 umsch_mm = file_inode(f)->i_private; in amdgpu_debugfs_umsch_fwlog_read()
460 if (!umsch_mm) in amdgpu_debugfs_umsch_fwlog_read()
463 if (!umsch_mm->log_cpu_addr) in amdgpu_debugfs_umsch_fwlog_read()
466 log_buf = umsch_mm->log_cpu_addr; in amdgpu_debugfs_umsch_fwlog_read()
518 struct amdgpu_umsch_mm *umsch_mm) in amdgpu_debugfs_umsch_fwlog_init() argument
526 debugfs_create_file_size(name, S_IFREG | 0444, root, umsch_mm, in amdgpu_debugfs_umsch_fwlog_init()