Lines Matching refs:adev

50 void amdgpu_unregister_gpu_instance(struct amdgpu_device *adev)  in amdgpu_unregister_gpu_instance()  argument
59 if (gpu_instance->adev == adev) { in amdgpu_unregister_gpu_instance()
63 if (adev->flags & AMD_IS_APU) in amdgpu_unregister_gpu_instance()
84 struct amdgpu_device *adev = drm_to_adev(dev); in amdgpu_driver_unload_kms() local
86 if (adev == NULL) in amdgpu_driver_unload_kms()
89 amdgpu_unregister_gpu_instance(adev); in amdgpu_driver_unload_kms()
91 if (adev->rmmio == NULL) in amdgpu_driver_unload_kms()
94 if (amdgpu_acpi_smart_shift_update(adev, AMDGPU_SS_DRV_UNLOAD)) in amdgpu_driver_unload_kms()
97 amdgpu_acpi_fini(adev); in amdgpu_driver_unload_kms()
98 amdgpu_device_fini_hw(adev); in amdgpu_driver_unload_kms()
101 void amdgpu_register_gpu_instance(struct amdgpu_device *adev) in amdgpu_register_gpu_instance() argument
114 gpu_instance->adev = adev; in amdgpu_register_gpu_instance()
118 if (adev->flags & AMD_IS_APU) in amdgpu_register_gpu_instance()
135 int amdgpu_driver_load_kms(struct amdgpu_device *adev, unsigned long flags) in amdgpu_driver_load_kms() argument
140 dev = adev_to_drm(adev); in amdgpu_driver_load_kms()
148 r = amdgpu_device_init(adev, flags); in amdgpu_driver_load_kms()
154 amdgpu_device_detect_runtime_pm_mode(adev); in amdgpu_driver_load_kms()
160 acpi_status = amdgpu_acpi_init(adev); in amdgpu_driver_load_kms()
164 if (amdgpu_acpi_smart_shift_update(adev, AMDGPU_SS_DRV_LOAD)) in amdgpu_driver_load_kms()
175 amdgpu_ip_get_block_type(struct amdgpu_device *adev, uint32_t ip) in amdgpu_ip_get_block_type() argument
201 type = (amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_JPEG)) ? in amdgpu_ip_get_block_type()
214 struct amdgpu_device *adev) in amdgpu_firmware_info() argument
218 fw_info->ver = adev->vce.fw_version; in amdgpu_firmware_info()
219 fw_info->feature = adev->vce.fb_version; in amdgpu_firmware_info()
222 fw_info->ver = adev->uvd.fw_version; in amdgpu_firmware_info()
226 fw_info->ver = adev->vcn.fw_version; in amdgpu_firmware_info()
230 fw_info->ver = adev->gmc.fw_version; in amdgpu_firmware_info()
234 fw_info->ver = adev->gfx.me_fw_version; in amdgpu_firmware_info()
235 fw_info->feature = adev->gfx.me_feature_version; in amdgpu_firmware_info()
238 fw_info->ver = adev->gfx.pfp_fw_version; in amdgpu_firmware_info()
239 fw_info->feature = adev->gfx.pfp_feature_version; in amdgpu_firmware_info()
242 fw_info->ver = adev->gfx.ce_fw_version; in amdgpu_firmware_info()
243 fw_info->feature = adev->gfx.ce_feature_version; in amdgpu_firmware_info()
246 fw_info->ver = adev->gfx.rlc_fw_version; in amdgpu_firmware_info()
247 fw_info->feature = adev->gfx.rlc_feature_version; in amdgpu_firmware_info()
250 fw_info->ver = adev->gfx.rlc_srlc_fw_version; in amdgpu_firmware_info()
251 fw_info->feature = adev->gfx.rlc_srlc_feature_version; in amdgpu_firmware_info()
254 fw_info->ver = adev->gfx.rlc_srlg_fw_version; in amdgpu_firmware_info()
255 fw_info->feature = adev->gfx.rlc_srlg_feature_version; in amdgpu_firmware_info()
258 fw_info->ver = adev->gfx.rlc_srls_fw_version; in amdgpu_firmware_info()
259 fw_info->feature = adev->gfx.rlc_srls_feature_version; in amdgpu_firmware_info()
262 fw_info->ver = adev->gfx.rlcp_ucode_version; in amdgpu_firmware_info()
263 fw_info->feature = adev->gfx.rlcp_ucode_feature_version; in amdgpu_firmware_info()
266 fw_info->ver = adev->gfx.rlcv_ucode_version; in amdgpu_firmware_info()
267 fw_info->feature = adev->gfx.rlcv_ucode_feature_version; in amdgpu_firmware_info()
271 fw_info->ver = adev->gfx.mec_fw_version; in amdgpu_firmware_info()
272 fw_info->feature = adev->gfx.mec_feature_version; in amdgpu_firmware_info()
274 fw_info->ver = adev->gfx.mec2_fw_version; in amdgpu_firmware_info()
275 fw_info->feature = adev->gfx.mec2_feature_version; in amdgpu_firmware_info()
280 fw_info->ver = adev->pm.fw_version; in amdgpu_firmware_info()
286 fw_info->ver = adev->psp.xgmi_context.context.bin_desc.fw_version; in amdgpu_firmware_info()
287 fw_info->feature = adev->psp.xgmi_context.context in amdgpu_firmware_info()
291 fw_info->ver = adev->psp.ras_context.context.bin_desc.fw_version; in amdgpu_firmware_info()
292 fw_info->feature = adev->psp.ras_context.context in amdgpu_firmware_info()
296 fw_info->ver = adev->psp.hdcp_context.context.bin_desc.fw_version; in amdgpu_firmware_info()
297 fw_info->feature = adev->psp.hdcp_context.context in amdgpu_firmware_info()
301 fw_info->ver = adev->psp.dtm_context.context.bin_desc.fw_version; in amdgpu_firmware_info()
302 fw_info->feature = adev->psp.dtm_context.context in amdgpu_firmware_info()
306 fw_info->ver = adev->psp.rap_context.context.bin_desc.fw_version; in amdgpu_firmware_info()
307 fw_info->feature = adev->psp.rap_context.context in amdgpu_firmware_info()
311 fw_info->ver = adev->psp.securedisplay_context.context.bin_desc.fw_version; in amdgpu_firmware_info()
313 adev->psp.securedisplay_context.context.bin_desc in amdgpu_firmware_info()
321 if (query_fw->index >= adev->sdma.num_instances) in amdgpu_firmware_info()
323 fw_info->ver = adev->sdma.instance[query_fw->index].fw_version; in amdgpu_firmware_info()
324 fw_info->feature = adev->sdma.instance[query_fw->index].feature_version; in amdgpu_firmware_info()
327 fw_info->ver = adev->psp.sos.fw_version; in amdgpu_firmware_info()
328 fw_info->feature = adev->psp.sos.feature_version; in amdgpu_firmware_info()
331 fw_info->ver = adev->psp.asd_context.bin_desc.fw_version; in amdgpu_firmware_info()
332 fw_info->feature = adev->psp.asd_context.bin_desc.feature_version; in amdgpu_firmware_info()
335 fw_info->ver = adev->dm.dmcu_fw_version; in amdgpu_firmware_info()
339 fw_info->ver = adev->dm.dmcub_fw_version; in amdgpu_firmware_info()
343 fw_info->ver = adev->psp.toc.fw_version; in amdgpu_firmware_info()
344 fw_info->feature = adev->psp.toc.feature_version; in amdgpu_firmware_info()
347 fw_info->ver = adev->psp.cap_fw_version; in amdgpu_firmware_info()
348 fw_info->feature = adev->psp.cap_feature_version; in amdgpu_firmware_info()
351 fw_info->ver = adev->mes.kiq_version & AMDGPU_MES_VERSION_MASK; in amdgpu_firmware_info()
352 fw_info->feature = (adev->mes.kiq_version & AMDGPU_MES_FEAT_VERSION_MASK) in amdgpu_firmware_info()
356 fw_info->ver = adev->mes.sched_version & AMDGPU_MES_VERSION_MASK; in amdgpu_firmware_info()
357 fw_info->feature = (adev->mes.sched_version & AMDGPU_MES_FEAT_VERSION_MASK) in amdgpu_firmware_info()
361 fw_info->ver = adev->gfx.imu_fw_version; in amdgpu_firmware_info()
365 fw_info->ver = adev->vpe.fw_version; in amdgpu_firmware_info()
366 fw_info->feature = adev->vpe.feature_version; in amdgpu_firmware_info()
374 static int amdgpu_userq_metadata_info_gfx(struct amdgpu_device *adev, in amdgpu_userq_metadata_info_gfx() argument
380 if (adev->gfx.funcs->get_gfx_shadow_info) { in amdgpu_userq_metadata_info_gfx()
383 adev->gfx.funcs->get_gfx_shadow_info(adev, &shadow, true); in amdgpu_userq_metadata_info_gfx()
394 static int amdgpu_hw_ip_info(struct amdgpu_device *adev, in amdgpu_hw_ip_info() argument
411 for (i = 0; i < adev->gfx.num_gfx_rings; i++) in amdgpu_hw_ip_info()
412 if (adev->gfx.gfx_ring[i].sched.ready && in amdgpu_hw_ip_info()
413 !adev->gfx.gfx_ring[i].no_user_submission) in amdgpu_hw_ip_info()
416 if (!adev->gfx.disable_uq) { in amdgpu_hw_ip_info()
418 num_slots += hweight32(adev->mes.gfx_hqd_mask[i]); in amdgpu_hw_ip_info()
426 for (i = 0; i < adev->gfx.num_compute_rings; i++) in amdgpu_hw_ip_info()
427 if (adev->gfx.compute_ring[i].sched.ready && in amdgpu_hw_ip_info()
428 !adev->gfx.compute_ring[i].no_user_submission) in amdgpu_hw_ip_info()
431 if (!adev->sdma.disable_uq) { in amdgpu_hw_ip_info()
433 num_slots += hweight32(adev->mes.compute_hqd_mask[i]); in amdgpu_hw_ip_info()
441 for (i = 0; i < adev->sdma.num_instances; i++) in amdgpu_hw_ip_info()
442 if (adev->sdma.instance[i].ring.sched.ready && in amdgpu_hw_ip_info()
443 !adev->sdma.instance[i].ring.no_user_submission) in amdgpu_hw_ip_info()
446 if (!adev->gfx.disable_uq) { in amdgpu_hw_ip_info()
448 num_slots += hweight32(adev->mes.sdma_hqd_mask[i]); in amdgpu_hw_ip_info()
456 for (i = 0; i < adev->uvd.num_uvd_inst; i++) { in amdgpu_hw_ip_info()
457 if (adev->uvd.harvest_config & (1 << i)) in amdgpu_hw_ip_info()
460 if (adev->uvd.inst[i].ring.sched.ready && in amdgpu_hw_ip_info()
461 !adev->uvd.inst[i].ring.no_user_submission) in amdgpu_hw_ip_info()
469 for (i = 0; i < adev->vce.num_rings; i++) in amdgpu_hw_ip_info()
470 if (adev->vce.ring[i].sched.ready && in amdgpu_hw_ip_info()
471 !adev->vce.ring[i].no_user_submission) in amdgpu_hw_ip_info()
478 for (i = 0; i < adev->uvd.num_uvd_inst; i++) { in amdgpu_hw_ip_info()
479 if (adev->uvd.harvest_config & (1 << i)) in amdgpu_hw_ip_info()
482 for (j = 0; j < adev->uvd.num_enc_rings; j++) in amdgpu_hw_ip_info()
483 if (adev->uvd.inst[i].ring_enc[j].sched.ready && in amdgpu_hw_ip_info()
484 !adev->uvd.inst[i].ring_enc[j].no_user_submission) in amdgpu_hw_ip_info()
492 for (i = 0; i < adev->vcn.num_vcn_inst; i++) { in amdgpu_hw_ip_info()
493 if (adev->vcn.harvest_config & (1 << i)) in amdgpu_hw_ip_info()
496 if (adev->vcn.inst[i].ring_dec.sched.ready && in amdgpu_hw_ip_info()
497 !adev->vcn.inst[i].ring_dec.no_user_submission) in amdgpu_hw_ip_info()
505 for (i = 0; i < adev->vcn.num_vcn_inst; i++) { in amdgpu_hw_ip_info()
506 if (adev->vcn.harvest_config & (1 << i)) in amdgpu_hw_ip_info()
509 for (j = 0; j < adev->vcn.inst[i].num_enc_rings; j++) in amdgpu_hw_ip_info()
510 if (adev->vcn.inst[i].ring_enc[j].sched.ready && in amdgpu_hw_ip_info()
511 !adev->vcn.inst[i].ring_enc[j].no_user_submission) in amdgpu_hw_ip_info()
518 type = (amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_JPEG)) ? in amdgpu_hw_ip_info()
521 for (i = 0; i < adev->jpeg.num_jpeg_inst; i++) { in amdgpu_hw_ip_info()
522 if (adev->jpeg.harvest_config & (1 << i)) in amdgpu_hw_ip_info()
525 for (j = 0; j < adev->jpeg.num_jpeg_rings; j++) in amdgpu_hw_ip_info()
526 if (adev->jpeg.inst[i].ring_dec[j].sched.ready && in amdgpu_hw_ip_info()
527 !adev->jpeg.inst[i].ring_dec[j].no_user_submission) in amdgpu_hw_ip_info()
535 if (adev->vpe.ring.sched.ready && in amdgpu_hw_ip_info()
536 !adev->vpe.ring.no_user_submission) in amdgpu_hw_ip_info()
545 for (i = 0; i < adev->num_ip_blocks; i++) in amdgpu_hw_ip_info()
546 if (adev->ip_blocks[i].version->type == type && in amdgpu_hw_ip_info()
547 adev->ip_blocks[i].status.valid) in amdgpu_hw_ip_info()
550 if (i == adev->num_ip_blocks) in amdgpu_hw_ip_info()
556 result->hw_ip_version_major = adev->ip_blocks[i].version->major; in amdgpu_hw_ip_info()
557 result->hw_ip_version_minor = adev->ip_blocks[i].version->minor; in amdgpu_hw_ip_info()
559 if (adev->asic_type >= CHIP_VEGA10) { in amdgpu_hw_ip_info()
563 IP_VERSION_MAJ_MIN_REV(amdgpu_ip_version(adev, GC_HWIP, 0)); in amdgpu_hw_ip_info()
567 IP_VERSION_MAJ_MIN_REV(amdgpu_ip_version(adev, SDMA0_HWIP, 0)); in amdgpu_hw_ip_info()
573 IP_VERSION_MAJ_MIN_REV(amdgpu_ip_version(adev, UVD_HWIP, 0)); in amdgpu_hw_ip_info()
577 IP_VERSION_MAJ_MIN_REV(amdgpu_ip_version(adev, VCE_HWIP, 0)); in amdgpu_hw_ip_info()
581 IP_VERSION_MAJ_MIN_REV(amdgpu_ip_version(adev, VPE_HWIP, 0)); in amdgpu_hw_ip_info()
615 struct amdgpu_device *adev = drm_to_adev(dev); in amdgpu_info_ioctl() local
617 struct amdgpu_mode_info *minfo = &adev->mode_info; in amdgpu_info_ioctl()
636 ui32 = adev->accel_working; in amdgpu_info_ioctl()
639 for (i = 0, found = 0; i < adev->mode_info.num_crtc; i++) { in amdgpu_info_ioctl()
657 ret = amdgpu_hw_ip_info(adev, info, &ip); in amdgpu_info_ioctl()
666 type = amdgpu_ip_get_block_type(adev, info->query_hw_ip.type); in amdgpu_info_ioctl()
667 ip_block = amdgpu_device_ip_get_ip_block(adev, type); in amdgpu_info_ioctl()
672 if (adev->xcp_mgr && adev->xcp_mgr->num_xcps > 0 && in amdgpu_info_ioctl()
673 fpriv->xcp_id < adev->xcp_mgr->num_xcps) { in amdgpu_info_ioctl()
674 xcp = &adev->xcp_mgr->xcp[fpriv->xcp_id]; in amdgpu_info_ioctl()
692 count = hweight32(inst_mask) * adev->jpeg.num_jpeg_rings; in amdgpu_info_ioctl()
713 count = adev->sdma.num_instances; in amdgpu_info_ioctl()
716 count = adev->jpeg.num_jpeg_inst * adev->jpeg.num_jpeg_rings; in amdgpu_info_ioctl()
719 count = adev->vcn.num_vcn_inst; in amdgpu_info_ioctl()
722 count = adev->uvd.num_uvd_inst; in amdgpu_info_ioctl()
735 ui64 = amdgpu_gfx_get_gpu_clock_counter(adev); in amdgpu_info_ioctl()
744 ret = amdgpu_firmware_info(&fw_info, &info->query_fw, adev); in amdgpu_info_ioctl()
752 ui64 = atomic64_read(&adev->num_bytes_moved); in amdgpu_info_ioctl()
755 ui64 = atomic64_read(&adev->num_evictions); in amdgpu_info_ioctl()
758 ui64 = atomic64_read(&adev->num_vram_cpu_page_faults); in amdgpu_info_ioctl()
761 ui64 = ttm_resource_manager_used(&adev->mman.vram_mgr.manager) ? in amdgpu_info_ioctl()
762 ttm_resource_manager_usage(&adev->mman.vram_mgr.manager) : 0; in amdgpu_info_ioctl()
765 ui64 = amdgpu_vram_mgr_vis_usage(&adev->mman.vram_mgr); in amdgpu_info_ioctl()
768 ui64 = ttm_resource_manager_usage(&adev->mman.gtt_mgr.manager); in amdgpu_info_ioctl()
774 gds_info.compute_partition_size = adev->gds.gds_size; in amdgpu_info_ioctl()
775 gds_info.gds_total_size = adev->gds.gds_size; in amdgpu_info_ioctl()
776 gds_info.gws_per_compute_partition = adev->gds.gws_size; in amdgpu_info_ioctl()
777 gds_info.oa_per_compute_partition = adev->gds.oa_size; in amdgpu_info_ioctl()
784 vram_gtt.vram_size = adev->gmc.real_vram_size - in amdgpu_info_ioctl()
785 atomic64_read(&adev->vram_pin_size) - in amdgpu_info_ioctl()
788 min(adev->gmc.visible_vram_size - in amdgpu_info_ioctl()
789 atomic64_read(&adev->visible_pin_size), in amdgpu_info_ioctl()
791 vram_gtt.gtt_size = ttm_manager_type(&adev->mman.bdev, TTM_PL_TT)->size; in amdgpu_info_ioctl()
792 vram_gtt.gtt_size -= atomic64_read(&adev->gart_pin_size); in amdgpu_info_ioctl()
799 &adev->mman.gtt_mgr.manager; in amdgpu_info_ioctl()
801 &adev->mman.vram_mgr.manager; in amdgpu_info_ioctl()
804 mem.vram.total_heap_size = adev->gmc.real_vram_size; in amdgpu_info_ioctl()
805 mem.vram.usable_heap_size = adev->gmc.real_vram_size - in amdgpu_info_ioctl()
806 atomic64_read(&adev->vram_pin_size) - in amdgpu_info_ioctl()
808 mem.vram.heap_usage = ttm_resource_manager_used(&adev->mman.vram_mgr.manager) ? in amdgpu_info_ioctl()
813 adev->gmc.visible_vram_size; in amdgpu_info_ioctl()
815 min(adev->gmc.visible_vram_size - in amdgpu_info_ioctl()
816 atomic64_read(&adev->visible_pin_size), in amdgpu_info_ioctl()
819 amdgpu_vram_mgr_vis_usage(&adev->mman.vram_mgr); in amdgpu_info_ioctl()
825 atomic64_read(&adev->gart_pin_size); in amdgpu_info_ioctl()
844 if (!down_read_trylock(&adev->reset_domain->sem)) in amdgpu_info_ioctl()
877 amdgpu_gfx_off_ctrl(adev, false); in amdgpu_info_ioctl()
879 if (amdgpu_asic_read_register(adev, se_num, sh_num, in amdgpu_info_ioctl()
885 amdgpu_gfx_off_ctrl(adev, true); in amdgpu_info_ioctl()
890 amdgpu_gfx_off_ctrl(adev, true); in amdgpu_info_ioctl()
895 up_read(&adev->reset_domain->sem); in amdgpu_info_ioctl()
907 dev_info->device_id = adev->pdev->device; in amdgpu_info_ioctl()
908 dev_info->chip_rev = adev->rev_id; in amdgpu_info_ioctl()
909 dev_info->external_rev = adev->external_rev_id; in amdgpu_info_ioctl()
910 dev_info->pci_rev = adev->pdev->revision; in amdgpu_info_ioctl()
911 dev_info->family = adev->family; in amdgpu_info_ioctl()
912 dev_info->num_shader_engines = adev->gfx.config.max_shader_engines; in amdgpu_info_ioctl()
913 dev_info->num_shader_arrays_per_engine = adev->gfx.config.max_sh_per_se; in amdgpu_info_ioctl()
915 dev_info->gpu_counter_freq = amdgpu_asic_get_xclk(adev) * 10; in amdgpu_info_ioctl()
916 if (adev->pm.dpm_enabled) { in amdgpu_info_ioctl()
917 dev_info->max_engine_clock = amdgpu_dpm_get_sclk(adev, false) * 10; in amdgpu_info_ioctl()
918 dev_info->max_memory_clock = amdgpu_dpm_get_mclk(adev, false) * 10; in amdgpu_info_ioctl()
919 dev_info->min_engine_clock = amdgpu_dpm_get_sclk(adev, true) * 10; in amdgpu_info_ioctl()
920 dev_info->min_memory_clock = amdgpu_dpm_get_mclk(adev, true) * 10; in amdgpu_info_ioctl()
924 adev->clock.default_sclk * 10; in amdgpu_info_ioctl()
927 adev->clock.default_mclk * 10; in amdgpu_info_ioctl()
929 dev_info->enabled_rb_pipes_mask = adev->gfx.config.backend_enable_mask; in amdgpu_info_ioctl()
930 dev_info->num_rb_pipes = adev->gfx.config.max_backends_per_se * in amdgpu_info_ioctl()
931 adev->gfx.config.max_shader_engines; in amdgpu_info_ioctl()
932 dev_info->num_hw_gfx_contexts = adev->gfx.config.max_hw_contexts; in amdgpu_info_ioctl()
934 if (adev->flags & AMD_IS_APU) in amdgpu_info_ioctl()
936 if (adev->gfx.mcbp) in amdgpu_info_ioctl()
938 if (amdgpu_is_tmz(adev)) in amdgpu_info_ioctl()
940 if (adev->gfx.config.ta_cntl2_truncate_coord_mode) in amdgpu_info_ioctl()
944 if (!amdgpu_sriov_vf(adev)) in amdgpu_info_ioctl()
947 if (amdgpu_passthrough(adev)) in amdgpu_info_ioctl()
951 else if (amdgpu_sriov_vf(adev)) in amdgpu_info_ioctl()
956 vm_size = adev->vm_manager.max_pfn * AMDGPU_GPU_PAGE_SIZE; in amdgpu_info_ioctl()
960 if (adev->vce.fw_version && in amdgpu_info_ioctl()
961 adev->vce.fw_version < AMDGPU_VCE_FW_53_45) in amdgpu_info_ioctl()
973 dev_info->pte_fragment_size = (1 << adev->vm_manager.fragment_size) * AMDGPU_GPU_PAGE_SIZE; in amdgpu_info_ioctl()
975 dev_info->cu_active_number = adev->gfx.cu_info.number; in amdgpu_info_ioctl()
976 dev_info->cu_ao_mask = adev->gfx.cu_info.ao_cu_mask; in amdgpu_info_ioctl()
977 dev_info->ce_ram_size = adev->gfx.ce_ram_size; in amdgpu_info_ioctl()
978 memcpy(&dev_info->cu_ao_bitmap[0], &adev->gfx.cu_info.ao_cu_bitmap[0], in amdgpu_info_ioctl()
979 sizeof(adev->gfx.cu_info.ao_cu_bitmap)); in amdgpu_info_ioctl()
980 memcpy(&dev_info->cu_bitmap[0], &adev->gfx.cu_info.bitmap[0], in amdgpu_info_ioctl()
982 dev_info->vram_type = adev->gmc.vram_type; in amdgpu_info_ioctl()
983 dev_info->vram_bit_width = adev->gmc.vram_width; in amdgpu_info_ioctl()
984 dev_info->vce_harvest_config = adev->vce.harvest_config; in amdgpu_info_ioctl()
986 adev->gfx.config.double_offchip_lds_buf; in amdgpu_info_ioctl()
987 dev_info->wave_front_size = adev->gfx.cu_info.wave_front_size; in amdgpu_info_ioctl()
988 dev_info->num_shader_visible_vgprs = adev->gfx.config.max_gprs; in amdgpu_info_ioctl()
989 dev_info->num_cu_per_sh = adev->gfx.config.max_cu_per_sh; in amdgpu_info_ioctl()
990 dev_info->num_tcc_blocks = adev->gfx.config.max_texture_channel_caches; in amdgpu_info_ioctl()
991 dev_info->gs_vgt_table_depth = adev->gfx.config.gs_vgt_table_depth; in amdgpu_info_ioctl()
992 dev_info->gs_prim_buffer_depth = adev->gfx.config.gs_prim_buffer_depth; in amdgpu_info_ioctl()
993 dev_info->max_gs_waves_per_vgt = adev->gfx.config.max_gs_threads; in amdgpu_info_ioctl()
995 if (adev->family >= AMDGPU_FAMILY_NV) in amdgpu_info_ioctl()
997 adev->gfx.config.pa_sc_tile_steering_override; in amdgpu_info_ioctl()
999 dev_info->tcc_disabled_mask = adev->gfx.config.tcc_disabled_mask; in amdgpu_info_ioctl()
1002 pcie_gen_mask = adev->pm.pcie_gen_mask & in amdgpu_info_ioctl()
1003 (adev->pm.pcie_gen_mask >> CAIL_PCIE_LINK_SPEED_SUPPORT_SHIFT); in amdgpu_info_ioctl()
1004 pcie_width_mask = adev->pm.pcie_mlw_mask & in amdgpu_info_ioctl()
1005 (adev->pm.pcie_mlw_mask >> CAIL_PCIE_LINK_WIDTH_SUPPORT_SHIFT); in amdgpu_info_ioctl()
1015 dev_info->tcp_cache_size = adev->gfx.config.gc_tcp_l1_size; in amdgpu_info_ioctl()
1016 dev_info->num_sqc_per_wgp = adev->gfx.config.gc_num_sqc_per_wgp; in amdgpu_info_ioctl()
1017 dev_info->sqc_data_cache_size = adev->gfx.config.gc_l1_data_cache_size_per_sqc; in amdgpu_info_ioctl()
1018 dev_info->sqc_inst_cache_size = adev->gfx.config.gc_l1_instruction_cache_size_per_sqc; in amdgpu_info_ioctl()
1019 dev_info->gl1c_cache_size = adev->gfx.config.gc_gl1c_size_per_instance * in amdgpu_info_ioctl()
1020 adev->gfx.config.gc_gl1c_per_sa; in amdgpu_info_ioctl()
1021 dev_info->gl2c_cache_size = adev->gfx.config.gc_gl2c_per_gpu; in amdgpu_info_ioctl()
1022 dev_info->mall_size = adev->gmc.mall_size; in amdgpu_info_ioctl()
1025 if (adev->gfx.funcs->get_gfx_shadow_info) { in amdgpu_info_ioctl()
1028 ret = amdgpu_gfx_get_gfx_shadow_info(adev, &shadow_info); in amdgpu_info_ioctl()
1037 dev_info->userq_ip_mask = amdgpu_userq_get_supported_ip_mask(adev); in amdgpu_info_ioctl()
1050 vce_state = amdgpu_dpm_get_vce_clock_state(adev, i); in amdgpu_info_ioctl()
1063 uint32_t bios_size = adev->bios_size; in amdgpu_info_ioctl()
1077 bios = adev->bios + bios_offset; in amdgpu_info_ioctl()
1086 atom_context = adev->mode_info.atom_context; in amdgpu_info_ioctl()
1114 if (adev->asic_type < CHIP_POLARIS10) { in amdgpu_info_ioctl()
1115 handle.uvd_max_handles = adev->uvd.max_handles; in amdgpu_info_ioctl()
1116 handle.uvd_used_handles = amdgpu_uvd_used_handles(adev); in amdgpu_info_ioctl()
1130 if (!adev->pm.dpm_enabled) in amdgpu_info_ioctl()
1136 if (amdgpu_dpm_read_sensor(adev, in amdgpu_info_ioctl()
1145 if (amdgpu_dpm_read_sensor(adev, in amdgpu_info_ioctl()
1154 if (amdgpu_dpm_read_sensor(adev, in amdgpu_info_ioctl()
1162 if (amdgpu_dpm_read_sensor(adev, in amdgpu_info_ioctl()
1170 if (amdgpu_dpm_read_sensor(adev, in amdgpu_info_ioctl()
1174 if (amdgpu_dpm_read_sensor(adev, in amdgpu_info_ioctl()
1184 if (amdgpu_dpm_read_sensor(adev, in amdgpu_info_ioctl()
1193 if (amdgpu_dpm_read_sensor(adev, in amdgpu_info_ioctl()
1201 if (amdgpu_dpm_read_sensor(adev, in amdgpu_info_ioctl()
1209 if (amdgpu_dpm_read_sensor(adev, in amdgpu_info_ioctl()
1218 if (amdgpu_dpm_read_sensor(adev, in amdgpu_info_ioctl()
1227 if (amdgpu_dpm_read_sensor(adev, in amdgpu_info_ioctl()
1236 if (amdgpu_dpm_read_sensor(adev, in amdgpu_info_ioctl()
1251 ui32 = atomic_read(&adev->vram_lost_counter); in amdgpu_info_ioctl()
1254 struct amdgpu_ras *ras = amdgpu_ras_get_context(adev); in amdgpu_info_ioctl()
1259 ras_mask = (uint64_t)adev->ras_enabled << 32 | ras->features; in amdgpu_info_ioctl()
1270 if (!adev->asic_funcs->query_video_codecs) in amdgpu_info_ioctl()
1275 r = amdgpu_asic_query_video_codecs(adev, false, &codecs); in amdgpu_info_ioctl()
1280 r = amdgpu_asic_query_video_codecs(adev, true, &codecs); in amdgpu_info_ioctl()
1345 xa_lock_irqsave(&adev->vm_manager.pasids, flags); in amdgpu_info_ioctl()
1349 xa_unlock_irqrestore(&adev->vm_manager.pasids, flags); in amdgpu_info_ioctl()
1359 ret = amdgpu_userq_metadata_info_gfx(adev, info, &meta_info.gfx); in amdgpu_info_ioctl()
1388 struct amdgpu_device *adev = drm_to_adev(dev); in amdgpu_driver_open_kms() local
1393 flush_delayed_work(&adev->delayed_init_work); in amdgpu_driver_open_kms()
1415 dev_warn(adev->dev, "No more PASIDs available!"); in amdgpu_driver_open_kms()
1419 r = amdgpu_xcp_open_device(adev, fpriv, file_priv); in amdgpu_driver_open_kms()
1425 r = amdgpu_vm_init(adev, &fpriv->vm, fpriv->xcp_id, pasid); in amdgpu_driver_open_kms()
1429 fpriv->prt_va = amdgpu_vm_bo_add(adev, &fpriv->vm, NULL); in amdgpu_driver_open_kms()
1435 if (adev->gfx.mcbp) { in amdgpu_driver_open_kms()
1436 uint64_t csa_addr = amdgpu_csa_vaddr(adev) & AMDGPU_GMC_HOLE_MASK; in amdgpu_driver_open_kms()
1438 r = amdgpu_map_static_csa(adev, &fpriv->vm, adev->virt.csa_obj, in amdgpu_driver_open_kms()
1444 r = amdgpu_seq64_map(adev, &fpriv->vm, &fpriv->seq64_va); in amdgpu_driver_open_kms()
1451 r = amdgpu_userq_mgr_init(&fpriv->userq_mgr, file_priv, adev); in amdgpu_driver_open_kms()
1459 amdgpu_ctx_mgr_init(&fpriv->ctx_mgr, adev); in amdgpu_driver_open_kms()
1465 amdgpu_vm_fini(adev, &fpriv->vm); in amdgpu_driver_open_kms()
1491 struct amdgpu_device *adev = drm_to_adev(dev); in amdgpu_driver_postclose_kms() local
1503 if (amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_UVD) != NULL) in amdgpu_driver_postclose_kms()
1504 amdgpu_uvd_free_handles(adev, file_priv); in amdgpu_driver_postclose_kms()
1505 if (amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_VCE) != NULL) in amdgpu_driver_postclose_kms()
1506 amdgpu_vce_free_handles(adev, file_priv); in amdgpu_driver_postclose_kms()
1509 uint64_t csa_addr = amdgpu_csa_vaddr(adev) & AMDGPU_GMC_HOLE_MASK; in amdgpu_driver_postclose_kms()
1511 WARN_ON(amdgpu_unmap_static_csa(adev, &fpriv->vm, adev->virt.csa_obj, in amdgpu_driver_postclose_kms()
1516 amdgpu_seq64_unmap(adev, fpriv); in amdgpu_driver_postclose_kms()
1521 amdgpu_vm_bo_del(adev, fpriv->prt_va); in amdgpu_driver_postclose_kms()
1526 amdgpu_vm_fini(adev, &fpriv->vm); in amdgpu_driver_postclose_kms()
1547 struct amdgpu_device *adev = drm_to_adev(dev); in amdgpu_driver_release_kms() local
1549 amdgpu_device_fini_sw(adev); in amdgpu_driver_release_kms()
1550 pci_set_drvdata(adev->pdev, NULL); in amdgpu_driver_release_kms()
1568 struct amdgpu_device *adev = drm_to_adev(dev); in amdgpu_get_vblank_counter_kms() local
1572 if (pipe >= adev->mode_info.num_crtc) { in amdgpu_get_vblank_counter_kms()
1585 if (adev->mode_info.crtcs[pipe]) { in amdgpu_get_vblank_counter_kms()
1590 count = amdgpu_display_vblank_get_counter(adev, pipe); in amdgpu_get_vblank_counter_kms()
1598 &adev->mode_info.crtcs[pipe]->base.hwmode); in amdgpu_get_vblank_counter_kms()
1599 } while (count != amdgpu_display_vblank_get_counter(adev, pipe)); in amdgpu_get_vblank_counter_kms()
1617 count = amdgpu_display_vblank_get_counter(adev, pipe); in amdgpu_get_vblank_counter_kms()
1636 struct amdgpu_device *adev = drm_to_adev(dev); in amdgpu_enable_vblank_kms() local
1637 int idx = amdgpu_display_crtc_idx_to_irq_type(adev, pipe); in amdgpu_enable_vblank_kms()
1639 return amdgpu_irq_get(adev, &adev->crtc_irq, idx); in amdgpu_enable_vblank_kms()
1653 struct amdgpu_device *adev = drm_to_adev(dev); in amdgpu_disable_vblank_kms() local
1654 int idx = amdgpu_display_crtc_idx_to_irq_type(adev, pipe); in amdgpu_disable_vblank_kms()
1656 amdgpu_irq_put(adev, &adev->crtc_irq, idx); in amdgpu_disable_vblank_kms()
1666 struct amdgpu_device *adev = m->private; in amdgpu_debugfs_firmware_info_show() local
1669 struct atom_context *ctx = adev->mode_info.atom_context; in amdgpu_debugfs_firmware_info_show()
1686 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1694 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1702 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1710 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1718 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1726 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1734 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1742 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1750 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1758 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1766 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1774 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1783 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1790 if (adev->gfx.mec2_fw) { in amdgpu_debugfs_firmware_info_show()
1792 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1802 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1810 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1819 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1828 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1838 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1850 for (i = 0; i < adev->sdma.num_instances; i++) { in amdgpu_debugfs_firmware_info_show()
1852 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1861 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1869 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1877 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1885 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1892 if (adev->psp.cap_fw) { in amdgpu_debugfs_firmware_info_show()
1894 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1903 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1911 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1919 ret = amdgpu_firmware_info(&fw_info, &query_fw, adev); in amdgpu_debugfs_firmware_info_show()
1934 void amdgpu_debugfs_firmware_init(struct amdgpu_device *adev) in amdgpu_debugfs_firmware_init() argument
1937 struct drm_minor *minor = adev_to_drm(adev)->primary; in amdgpu_debugfs_firmware_init()
1941 adev, &amdgpu_debugfs_firmware_info_fops); in amdgpu_debugfs_firmware_init()