Lines Matching refs:adev
29 uint64_t amdgpu_csa_vaddr(struct amdgpu_device *adev) in amdgpu_csa_vaddr() argument
31 uint64_t addr = adev->vm_manager.max_pfn << AMDGPU_GPU_PAGE_SHIFT; in amdgpu_csa_vaddr()
41 bool amdgpu_virt_mmio_blocked(struct amdgpu_device *adev) in amdgpu_virt_mmio_blocked() argument
49 int amdgpu_allocate_static_csa(struct amdgpu_device *adev) in amdgpu_allocate_static_csa() argument
54 r = amdgpu_bo_create_kernel(adev, AMDGPU_CSA_SIZE, PAGE_SIZE, in amdgpu_allocate_static_csa()
55 AMDGPU_GEM_DOMAIN_VRAM, &adev->virt.csa_obj, in amdgpu_allocate_static_csa()
56 &adev->virt.csa_vmid0_addr, &ptr); in amdgpu_allocate_static_csa()
64 void amdgpu_free_static_csa(struct amdgpu_device *adev) { in amdgpu_free_static_csa() argument
65 amdgpu_bo_free_kernel(&adev->virt.csa_obj, in amdgpu_free_static_csa()
66 &adev->virt.csa_vmid0_addr, in amdgpu_free_static_csa()
76 int amdgpu_map_static_csa(struct amdgpu_device *adev, struct amdgpu_vm *vm, in amdgpu_map_static_csa() argument
79 uint64_t csa_addr = amdgpu_csa_vaddr(adev) & AMDGPU_VA_HOLE_MASK; in amdgpu_map_static_csa()
88 csa_tv.bo = &adev->virt.csa_obj->tbo; in amdgpu_map_static_csa()
100 *bo_va = amdgpu_vm_bo_add(adev, vm, adev->virt.csa_obj); in amdgpu_map_static_csa()
107 r = amdgpu_vm_alloc_pts(adev, (*bo_va)->base.vm, csa_addr, in amdgpu_map_static_csa()
111 amdgpu_vm_bo_rmv(adev, *bo_va); in amdgpu_map_static_csa()
116 r = amdgpu_vm_bo_map(adev, *bo_va, csa_addr, 0, AMDGPU_CSA_SIZE, in amdgpu_map_static_csa()
122 amdgpu_vm_bo_rmv(adev, *bo_va); in amdgpu_map_static_csa()
131 void amdgpu_virt_init_setting(struct amdgpu_device *adev) in amdgpu_virt_init_setting() argument
134 adev->mode_info.num_crtc = 1; in amdgpu_virt_init_setting()
135 adev->enable_virtual_display = true; in amdgpu_virt_init_setting()
136 adev->cg_flags = 0; in amdgpu_virt_init_setting()
137 adev->pg_flags = 0; in amdgpu_virt_init_setting()
140 uint32_t amdgpu_virt_kiq_rreg(struct amdgpu_device *adev, uint32_t reg) in amdgpu_virt_kiq_rreg() argument
145 struct amdgpu_kiq *kiq = &adev->gfx.kiq; in amdgpu_virt_kiq_rreg()
167 if (r < 1 && (adev->in_gpu_reset || in_interrupt())) in amdgpu_virt_kiq_rreg()
181 return adev->wb.wb[adev->virt.reg_val_offs]; in amdgpu_virt_kiq_rreg()
188 void amdgpu_virt_kiq_wreg(struct amdgpu_device *adev, uint32_t reg, uint32_t v) in amdgpu_virt_kiq_wreg() argument
193 struct amdgpu_kiq *kiq = &adev->gfx.kiq; in amdgpu_virt_kiq_wreg()
215 if (r < 1 && (adev->in_gpu_reset || in_interrupt())) in amdgpu_virt_kiq_wreg()
243 int amdgpu_virt_request_full_gpu(struct amdgpu_device *adev, bool init) in amdgpu_virt_request_full_gpu() argument
245 struct amdgpu_virt *virt = &adev->virt; in amdgpu_virt_request_full_gpu()
249 r = virt->ops->req_full_gpu(adev, init); in amdgpu_virt_request_full_gpu()
253 adev->virt.caps &= ~AMDGPU_SRIOV_CAPS_RUNTIME; in amdgpu_virt_request_full_gpu()
266 int amdgpu_virt_release_full_gpu(struct amdgpu_device *adev, bool init) in amdgpu_virt_release_full_gpu() argument
268 struct amdgpu_virt *virt = &adev->virt; in amdgpu_virt_release_full_gpu()
272 r = virt->ops->rel_full_gpu(adev, init); in amdgpu_virt_release_full_gpu()
276 adev->virt.caps |= AMDGPU_SRIOV_CAPS_RUNTIME; in amdgpu_virt_release_full_gpu()
287 int amdgpu_virt_reset_gpu(struct amdgpu_device *adev) in amdgpu_virt_reset_gpu() argument
289 struct amdgpu_virt *virt = &adev->virt; in amdgpu_virt_reset_gpu()
293 r = virt->ops->reset_gpu(adev); in amdgpu_virt_reset_gpu()
297 adev->virt.caps &= ~AMDGPU_SRIOV_CAPS_RUNTIME; in amdgpu_virt_reset_gpu()
309 int amdgpu_virt_wait_reset(struct amdgpu_device *adev) in amdgpu_virt_wait_reset() argument
311 struct amdgpu_virt *virt = &adev->virt; in amdgpu_virt_wait_reset()
316 return virt->ops->wait_reset(adev); in amdgpu_virt_wait_reset()
325 int amdgpu_virt_alloc_mm_table(struct amdgpu_device *adev) in amdgpu_virt_alloc_mm_table() argument
329 if (!amdgpu_sriov_vf(adev) || adev->virt.mm_table.gpu_addr) in amdgpu_virt_alloc_mm_table()
332 r = amdgpu_bo_create_kernel(adev, PAGE_SIZE, PAGE_SIZE, in amdgpu_virt_alloc_mm_table()
334 &adev->virt.mm_table.bo, in amdgpu_virt_alloc_mm_table()
335 &adev->virt.mm_table.gpu_addr, in amdgpu_virt_alloc_mm_table()
336 (void *)&adev->virt.mm_table.cpu_addr); in amdgpu_virt_alloc_mm_table()
342 memset((void *)adev->virt.mm_table.cpu_addr, 0, PAGE_SIZE); in amdgpu_virt_alloc_mm_table()
344 adev->virt.mm_table.gpu_addr, in amdgpu_virt_alloc_mm_table()
345 adev->virt.mm_table.cpu_addr); in amdgpu_virt_alloc_mm_table()
354 void amdgpu_virt_free_mm_table(struct amdgpu_device *adev) in amdgpu_virt_free_mm_table() argument
356 if (!amdgpu_sriov_vf(adev) || !adev->virt.mm_table.gpu_addr) in amdgpu_virt_free_mm_table()
359 amdgpu_bo_free_kernel(&adev->virt.mm_table.bo, in amdgpu_virt_free_mm_table()
360 &adev->virt.mm_table.gpu_addr, in amdgpu_virt_free_mm_table()
361 (void *)&adev->virt.mm_table.cpu_addr); in amdgpu_virt_free_mm_table()
362 adev->virt.mm_table.gpu_addr = 0; in amdgpu_virt_free_mm_table()
386 void amdgpu_virt_init_data_exchange(struct amdgpu_device *adev) in amdgpu_virt_init_data_exchange() argument
393 adev->virt.fw_reserve.p_pf2vf = NULL; in amdgpu_virt_init_data_exchange()
394 adev->virt.fw_reserve.p_vf2pf = NULL; in amdgpu_virt_init_data_exchange()
396 if (adev->fw_vram_usage.va != NULL) { in amdgpu_virt_init_data_exchange()
397 adev->virt.fw_reserve.p_pf2vf = in amdgpu_virt_init_data_exchange()
399 adev->fw_vram_usage.va + AMDGIM_DATAEXCHANGE_OFFSET); in amdgpu_virt_init_data_exchange()
400 AMDGPU_FW_VRAM_PF2VF_READ(adev, header.size, &pf2vf_size); in amdgpu_virt_init_data_exchange()
401 AMDGPU_FW_VRAM_PF2VF_READ(adev, checksum, &checksum); in amdgpu_virt_init_data_exchange()
402 AMDGPU_FW_VRAM_PF2VF_READ(adev, feature_flags, &adev->virt.gim_feature); in amdgpu_virt_init_data_exchange()
407 adev->virt.fw_reserve.p_pf2vf, pf2vf_size, in amdgpu_virt_init_data_exchange()
408 adev->virt.fw_reserve.checksum_key, checksum); in amdgpu_virt_init_data_exchange()
410 adev->virt.fw_reserve.p_vf2pf = in amdgpu_virt_init_data_exchange()
411 ((void *)adev->virt.fw_reserve.p_pf2vf + in amdgpu_virt_init_data_exchange()
413 memset((void *)adev->virt.fw_reserve.p_vf2pf, 0, in amdgpu_virt_init_data_exchange()
415 AMDGPU_FW_VRAM_VF2PF_WRITE(adev, header.version, in amdgpu_virt_init_data_exchange()
417 AMDGPU_FW_VRAM_VF2PF_WRITE(adev, header.size, in amdgpu_virt_init_data_exchange()
419 AMDGPU_FW_VRAM_VF2PF_READ(adev, driver_version, in amdgpu_virt_init_data_exchange()
427 AMDGPU_FW_VRAM_VF2PF_WRITE(adev, driver_cert, in amdgpu_virt_init_data_exchange()
429 AMDGPU_FW_VRAM_VF2PF_WRITE(adev, checksum, in amdgpu_virt_init_data_exchange()
431 adev->virt.fw_reserve.p_vf2pf, in amdgpu_virt_init_data_exchange()
433 adev->virt.fw_reserve.checksum_key, 0)); in amdgpu_virt_init_data_exchange()