Lines Matching refs:adev

64 void amdgpu_amdkfd_device_probe(struct amdgpu_device *adev)  in amdgpu_amdkfd_device_probe()  argument
68 switch (adev->asic_type) { in amdgpu_amdkfd_device_probe()
99 dev_info(adev->dev, "kfd not supported on this ASIC\n"); in amdgpu_amdkfd_device_probe()
103 adev->kfd.dev = kgd2kfd_probe((struct kgd_dev *)adev, in amdgpu_amdkfd_device_probe()
104 adev->pdev, kfd2kgd); in amdgpu_amdkfd_device_probe()
106 if (adev->kfd.dev) in amdgpu_amdkfd_device_probe()
107 amdgpu_amdkfd_total_mem_size += adev->gmc.real_vram_size; in amdgpu_amdkfd_device_probe()
123 static void amdgpu_doorbell_get_kfd_info(struct amdgpu_device *adev, in amdgpu_doorbell_get_kfd_info() argument
132 if (adev->doorbell.size > adev->doorbell.num_doorbells * sizeof(u32)) { in amdgpu_doorbell_get_kfd_info()
133 *aperture_base = adev->doorbell.base; in amdgpu_doorbell_get_kfd_info()
134 *aperture_size = adev->doorbell.size; in amdgpu_doorbell_get_kfd_info()
135 *start_offset = adev->doorbell.num_doorbells * sizeof(u32); in amdgpu_doorbell_get_kfd_info()
143 void amdgpu_amdkfd_device_init(struct amdgpu_device *adev) in amdgpu_amdkfd_device_init() argument
148 if (adev->kfd.dev) { in amdgpu_amdkfd_device_init()
151 .num_pipe_per_mec = adev->gfx.mec.num_pipe_per_mec, in amdgpu_amdkfd_device_init()
152 .num_queue_per_pipe = adev->gfx.mec.num_queue_per_pipe, in amdgpu_amdkfd_device_init()
153 .gpuvm_size = min(adev->vm_manager.max_pfn in amdgpu_amdkfd_device_init()
156 .drm_render_minor = adev->ddev->render->index, in amdgpu_amdkfd_device_init()
157 .sdma_doorbell_idx = adev->doorbell_index.sdma_engine, in amdgpu_amdkfd_device_init()
165 adev->gfx.mec.queue_bitmap, in amdgpu_amdkfd_device_init()
169 if (adev->gfx.kiq.ring.sched.ready) in amdgpu_amdkfd_device_init()
170 clear_bit(amdgpu_gfx_mec_queue_to_bit(adev, in amdgpu_amdkfd_device_init()
171 adev->gfx.kiq.ring.me - 1, in amdgpu_amdkfd_device_init()
172 adev->gfx.kiq.ring.pipe, in amdgpu_amdkfd_device_init()
173 adev->gfx.kiq.ring.queue), in amdgpu_amdkfd_device_init()
180 * adev->gfx.mec.num_pipe_per_mec in amdgpu_amdkfd_device_init()
181 * adev->gfx.mec.num_queue_per_pipe; in amdgpu_amdkfd_device_init()
185 amdgpu_doorbell_get_kfd_info(adev, in amdgpu_amdkfd_device_init()
198 if (adev->asic_type >= CHIP_VEGA10) { in amdgpu_amdkfd_device_init()
200 adev->doorbell_index.first_non_cp; in amdgpu_amdkfd_device_init()
202 adev->doorbell_index.last_non_cp; in amdgpu_amdkfd_device_init()
205 kgd2kfd_device_init(adev->kfd.dev, &gpu_resources); in amdgpu_amdkfd_device_init()
209 void amdgpu_amdkfd_device_fini(struct amdgpu_device *adev) in amdgpu_amdkfd_device_fini() argument
211 if (adev->kfd.dev) { in amdgpu_amdkfd_device_fini()
212 kgd2kfd_device_exit(adev->kfd.dev); in amdgpu_amdkfd_device_fini()
213 adev->kfd.dev = NULL; in amdgpu_amdkfd_device_fini()
217 void amdgpu_amdkfd_interrupt(struct amdgpu_device *adev, in amdgpu_amdkfd_interrupt() argument
220 if (adev->kfd.dev) in amdgpu_amdkfd_interrupt()
221 kgd2kfd_interrupt(adev->kfd.dev, ih_ring_entry); in amdgpu_amdkfd_interrupt()
224 void amdgpu_amdkfd_suspend(struct amdgpu_device *adev) in amdgpu_amdkfd_suspend() argument
226 if (adev->kfd.dev) in amdgpu_amdkfd_suspend()
227 kgd2kfd_suspend(adev->kfd.dev); in amdgpu_amdkfd_suspend()
230 int amdgpu_amdkfd_resume(struct amdgpu_device *adev) in amdgpu_amdkfd_resume() argument
234 if (adev->kfd.dev) in amdgpu_amdkfd_resume()
235 r = kgd2kfd_resume(adev->kfd.dev); in amdgpu_amdkfd_resume()
240 int amdgpu_amdkfd_pre_reset(struct amdgpu_device *adev) in amdgpu_amdkfd_pre_reset() argument
244 if (adev->kfd.dev) in amdgpu_amdkfd_pre_reset()
245 r = kgd2kfd_pre_reset(adev->kfd.dev); in amdgpu_amdkfd_pre_reset()
250 int amdgpu_amdkfd_post_reset(struct amdgpu_device *adev) in amdgpu_amdkfd_post_reset() argument
254 if (adev->kfd.dev) in amdgpu_amdkfd_post_reset()
255 r = kgd2kfd_post_reset(adev->kfd.dev); in amdgpu_amdkfd_post_reset()
262 struct amdgpu_device *adev = (struct amdgpu_device *)kgd; in amdgpu_amdkfd_gpu_reset() local
264 if (amdgpu_device_should_recover_gpu(adev)) in amdgpu_amdkfd_gpu_reset()
265 amdgpu_device_gpu_recover(adev, NULL); in amdgpu_amdkfd_gpu_reset()
272 struct amdgpu_device *adev = (struct amdgpu_device *)kgd; in amdgpu_amdkfd_alloc_gtt_mem() local
289 r = amdgpu_bo_create(adev, &bp, &bo); in amdgpu_amdkfd_alloc_gtt_mem()
291 dev_err(adev->dev, in amdgpu_amdkfd_alloc_gtt_mem()
299 dev_err(adev->dev, "(%d) failed to reserve bo for amdkfd\n", r); in amdgpu_amdkfd_alloc_gtt_mem()
305 dev_err(adev->dev, "(%d) failed to pin bo for amdkfd\n", r); in amdgpu_amdkfd_alloc_gtt_mem()
311 dev_err(adev->dev, "%p bind failed\n", bo); in amdgpu_amdkfd_alloc_gtt_mem()
317 dev_err(adev->dev, in amdgpu_amdkfd_alloc_gtt_mem()
354 struct amdgpu_device *adev = (struct amdgpu_device *)kgd; in amdgpu_amdkfd_alloc_gws() local
367 r = amdgpu_bo_create(adev, &bp, &bo); in amdgpu_amdkfd_alloc_gws()
369 dev_err(adev->dev, in amdgpu_amdkfd_alloc_gws()
388 struct amdgpu_device *adev = (struct amdgpu_device *)kgd; in amdgpu_amdkfd_get_fw_version() local
392 return adev->gfx.pfp_fw_version; in amdgpu_amdkfd_get_fw_version()
395 return adev->gfx.me_fw_version; in amdgpu_amdkfd_get_fw_version()
398 return adev->gfx.ce_fw_version; in amdgpu_amdkfd_get_fw_version()
401 return adev->gfx.mec_fw_version; in amdgpu_amdkfd_get_fw_version()
404 return adev->gfx.mec2_fw_version; in amdgpu_amdkfd_get_fw_version()
407 return adev->gfx.rlc_fw_version; in amdgpu_amdkfd_get_fw_version()
410 return adev->sdma.instance[0].fw_version; in amdgpu_amdkfd_get_fw_version()
413 return adev->sdma.instance[1].fw_version; in amdgpu_amdkfd_get_fw_version()
425 struct amdgpu_device *adev = (struct amdgpu_device *)kgd; in amdgpu_amdkfd_get_local_mem_info() local
426 uint64_t address_mask = adev->dev->dma_mask ? ~*adev->dev->dma_mask : in amdgpu_amdkfd_get_local_mem_info()
428 resource_size_t aper_limit = adev->gmc.aper_base + adev->gmc.aper_size; in amdgpu_amdkfd_get_local_mem_info()
431 if (!(adev->gmc.aper_base & address_mask || aper_limit & address_mask)) { in amdgpu_amdkfd_get_local_mem_info()
432 mem_info->local_mem_size_public = adev->gmc.visible_vram_size; in amdgpu_amdkfd_get_local_mem_info()
433 mem_info->local_mem_size_private = adev->gmc.real_vram_size - in amdgpu_amdkfd_get_local_mem_info()
434 adev->gmc.visible_vram_size; in amdgpu_amdkfd_get_local_mem_info()
437 mem_info->local_mem_size_private = adev->gmc.real_vram_size; in amdgpu_amdkfd_get_local_mem_info()
439 mem_info->vram_width = adev->gmc.vram_width; in amdgpu_amdkfd_get_local_mem_info()
442 &adev->gmc.aper_base, &aper_limit, in amdgpu_amdkfd_get_local_mem_info()
446 if (amdgpu_sriov_vf(adev)) in amdgpu_amdkfd_get_local_mem_info()
447 mem_info->mem_clk_max = adev->clock.default_mclk / 100; in amdgpu_amdkfd_get_local_mem_info()
448 else if (adev->powerplay.pp_funcs) { in amdgpu_amdkfd_get_local_mem_info()
452 mem_info->mem_clk_max = amdgpu_dpm_get_mclk(adev, false) / 100; in amdgpu_amdkfd_get_local_mem_info()
459 struct amdgpu_device *adev = (struct amdgpu_device *)kgd; in amdgpu_amdkfd_get_gpu_clock_counter() local
461 if (adev->gfx.funcs->get_gpu_clock_counter) in amdgpu_amdkfd_get_gpu_clock_counter()
462 return adev->gfx.funcs->get_gpu_clock_counter(adev); in amdgpu_amdkfd_get_gpu_clock_counter()
468 struct amdgpu_device *adev = (struct amdgpu_device *)kgd; in amdgpu_amdkfd_get_max_engine_clock_in_mhz() local
471 if (amdgpu_sriov_vf(adev)) in amdgpu_amdkfd_get_max_engine_clock_in_mhz()
472 return adev->clock.default_sclk / 100; in amdgpu_amdkfd_get_max_engine_clock_in_mhz()
473 else if (adev->powerplay.pp_funcs) in amdgpu_amdkfd_get_max_engine_clock_in_mhz()
474 return amdgpu_dpm_get_sclk(adev, false) / 100; in amdgpu_amdkfd_get_max_engine_clock_in_mhz()
481 struct amdgpu_device *adev = (struct amdgpu_device *)kgd; in amdgpu_amdkfd_get_cu_info() local
482 struct amdgpu_cu_info acu_info = adev->gfx.cu_info; in amdgpu_amdkfd_get_cu_info()
492 cu_info->num_shader_engines = adev->gfx.config.max_shader_engines; in amdgpu_amdkfd_get_cu_info()
493 cu_info->num_shader_arrays_per_engine = adev->gfx.config.max_sh_per_se; in amdgpu_amdkfd_get_cu_info()
494 cu_info->num_cu_per_sh = adev->gfx.config.max_cu_per_sh; in amdgpu_amdkfd_get_cu_info()
508 struct amdgpu_device *adev = (struct amdgpu_device *)kgd; in amdgpu_amdkfd_get_dmabuf_info() local
524 if (obj->dev->driver != adev->ddev->driver) in amdgpu_amdkfd_get_dmabuf_info()
528 adev = obj->dev->dev_private; in amdgpu_amdkfd_get_dmabuf_info()
537 *dma_buf_kgd = (struct kgd_dev *)adev; in amdgpu_amdkfd_get_dmabuf_info()
560 struct amdgpu_device *adev = (struct amdgpu_device *)kgd; in amdgpu_amdkfd_get_vram_usage() local
562 return amdgpu_vram_mgr_usage(&adev->mman.bdev.man[TTM_PL_VRAM]); in amdgpu_amdkfd_get_vram_usage()
567 struct amdgpu_device *adev = (struct amdgpu_device *)kgd; in amdgpu_amdkfd_get_hive_id() local
569 return adev->gmc.xgmi.hive_id; in amdgpu_amdkfd_get_hive_id()
574 struct amdgpu_device *adev = (struct amdgpu_device *)dst; in amdgpu_amdkfd_get_xgmi_hops_count() local
575 int ret = amdgpu_xgmi_get_hops_count(adev, peer_adev); in amdgpu_amdkfd_get_xgmi_hops_count()
579 adev->gmc.xgmi.physical_node_id, in amdgpu_amdkfd_get_xgmi_hops_count()
588 struct amdgpu_device *adev = (struct amdgpu_device *)kgd; in amdgpu_amdkfd_get_mmio_remap_phys_addr() local
590 return adev->rmmio_remap.bus_addr; in amdgpu_amdkfd_get_mmio_remap_phys_addr()
595 struct amdgpu_device *adev = (struct amdgpu_device *)kgd; in amdgpu_amdkfd_get_num_gws() local
597 return adev->gds.gws_size; in amdgpu_amdkfd_get_num_gws()
604 struct amdgpu_device *adev = (struct amdgpu_device *)kgd; in amdgpu_amdkfd_submit_ib() local
613 ring = &adev->gfx.compute_ring[0]; in amdgpu_amdkfd_submit_ib()
616 ring = &adev->sdma.instance[0].ring; in amdgpu_amdkfd_submit_ib()
619 ring = &adev->sdma.instance[1].ring; in amdgpu_amdkfd_submit_ib()
627 ret = amdgpu_job_alloc(adev, 1, &job, NULL); in amdgpu_amdkfd_submit_ib()
657 struct amdgpu_device *adev = (struct amdgpu_device *)kgd; in amdgpu_amdkfd_set_compute_idle() local
659 if (is_support_sw_smu(adev)) in amdgpu_amdkfd_set_compute_idle()
660 smu_switch_power_profile(&adev->smu, in amdgpu_amdkfd_set_compute_idle()
663 else if (adev->powerplay.pp_funcs && in amdgpu_amdkfd_set_compute_idle()
664 adev->powerplay.pp_funcs->switch_power_profile) in amdgpu_amdkfd_set_compute_idle()
665 amdgpu_dpm_switch_power_profile(adev, in amdgpu_amdkfd_set_compute_idle()
670 bool amdgpu_amdkfd_is_kfd_vmid(struct amdgpu_device *adev, u32 vmid) in amdgpu_amdkfd_is_kfd_vmid() argument
672 if (adev->kfd.dev) { in amdgpu_amdkfd_is_kfd_vmid()
682 struct amdgpu_device *adev = (struct amdgpu_device *)kgd; in amdgpu_amdkfd_have_atomics_support() local
684 return adev->have_atomics_support; in amdgpu_amdkfd_have_atomics_support()
697 void amdgpu_amdkfd_gpuvm_destroy_cb(struct amdgpu_device *adev, in amdgpu_amdkfd_gpuvm_destroy_cb() argument