Lines Matching refs:uvd
89 if (ring == &adev->uvd.inst[ring->me].ring_enc[0]) in uvd_v7_0_enc_ring_get_rptr()
123 if (ring == &adev->uvd.inst[ring->me].ring_enc[0]) in uvd_v7_0_enc_ring_get_wptr()
161 if (ring == &adev->uvd.inst[ring->me].ring_enc[0]) in uvd_v7_0_enc_ring_set_wptr()
342 struct amdgpu_bo *bo = ring->adev->uvd.ib_bo; in uvd_v7_0_enc_ring_test_ib()
372 adev->uvd.num_uvd_inst = UVD7_MAX_HW_INSTANCES_VEGA20; in uvd_v7_0_early_init()
373 for (i = 0; i < adev->uvd.num_uvd_inst; i++) { in uvd_v7_0_early_init()
376 adev->uvd.harvest_config |= 1 << i; in uvd_v7_0_early_init()
379 if (adev->uvd.harvest_config == (AMDGPU_UVD_HARVEST_UVD0 | in uvd_v7_0_early_init()
384 adev->uvd.num_uvd_inst = 1; in uvd_v7_0_early_init()
388 adev->uvd.num_enc_rings = 1; in uvd_v7_0_early_init()
390 adev->uvd.num_enc_rings = 2; in uvd_v7_0_early_init()
405 for (j = 0; j < adev->uvd.num_uvd_inst; j++) { in uvd_v7_0_sw_init()
406 if (adev->uvd.harvest_config & (1 << j)) in uvd_v7_0_sw_init()
409 … amdgpu_ih_clientid_uvds[j], UVD_7_0__SRCID__UVD_SYSTEM_MESSAGE_INTERRUPT, &adev->uvd.inst[j].irq); in uvd_v7_0_sw_init()
414 for (i = 0; i < adev->uvd.num_enc_rings; ++i) { in uvd_v7_0_sw_init()
415 …id(adev, amdgpu_ih_clientid_uvds[j], i + UVD_7_0__SRCID__UVD_ENC_GEN_PURP, &adev->uvd.inst[j].irq); in uvd_v7_0_sw_init()
427 hdr = (const struct common_firmware_header *)adev->uvd.fw->data; in uvd_v7_0_sw_init()
429 adev->firmware.ucode[AMDGPU_UCODE_ID_UVD].fw = adev->uvd.fw; in uvd_v7_0_sw_init()
433 if (adev->uvd.num_uvd_inst == UVD7_MAX_HW_INSTANCES_VEGA20) { in uvd_v7_0_sw_init()
435 adev->firmware.ucode[AMDGPU_UCODE_ID_UVD1].fw = adev->uvd.fw; in uvd_v7_0_sw_init()
442 for (j = 0; j < adev->uvd.num_uvd_inst; j++) { in uvd_v7_0_sw_init()
443 if (adev->uvd.harvest_config & (1 << j)) in uvd_v7_0_sw_init()
446 ring = &adev->uvd.inst[j].ring; in uvd_v7_0_sw_init()
450 &adev->uvd.inst[j].irq, 0, in uvd_v7_0_sw_init()
456 for (i = 0; i < adev->uvd.num_enc_rings; ++i) { in uvd_v7_0_sw_init()
457 ring = &adev->uvd.inst[j].ring_enc[i]; in uvd_v7_0_sw_init()
472 &adev->uvd.inst[j].irq, 0, in uvd_v7_0_sw_init()
505 for (j = 0; j < adev->uvd.num_uvd_inst; ++j) { in uvd_v7_0_sw_fini()
506 if (adev->uvd.harvest_config & (1 << j)) in uvd_v7_0_sw_fini()
508 for (i = 0; i < adev->uvd.num_enc_rings; ++i) in uvd_v7_0_sw_fini()
509 amdgpu_ring_fini(&adev->uvd.inst[j].ring_enc[i]); in uvd_v7_0_sw_fini()
535 for (j = 0; j < adev->uvd.num_uvd_inst; ++j) { in uvd_v7_0_hw_init()
536 if (adev->uvd.harvest_config & (1 << j)) in uvd_v7_0_hw_init()
538 ring = &adev->uvd.inst[j].ring; in uvd_v7_0_hw_init()
578 for (i = 0; i < adev->uvd.num_enc_rings; ++i) { in uvd_v7_0_hw_init()
579 ring = &adev->uvd.inst[j].ring_enc[i]; in uvd_v7_0_hw_init()
603 cancel_delayed_work_sync(&adev->uvd.idle_work); in uvd_v7_0_hw_fini()
631 cancel_delayed_work_sync(&adev->uvd.idle_work); in uvd_v7_0_suspend()
676 for (i = 0; i < adev->uvd.num_uvd_inst; ++i) { in uvd_v7_0_mc_resume()
677 if (adev->uvd.harvest_config & (1 << i)) in uvd_v7_0_mc_resume()
692 lower_32_bits(adev->uvd.inst[i].gpu_addr)); in uvd_v7_0_mc_resume()
694 upper_32_bits(adev->uvd.inst[i].gpu_addr)); in uvd_v7_0_mc_resume()
703 lower_32_bits(adev->uvd.inst[i].gpu_addr + offset)); in uvd_v7_0_mc_resume()
705 upper_32_bits(adev->uvd.inst[i].gpu_addr + offset)); in uvd_v7_0_mc_resume()
710 lower_32_bits(adev->uvd.inst[i].gpu_addr + offset + AMDGPU_UVD_HEAP_SIZE)); in uvd_v7_0_mc_resume()
712 upper_32_bits(adev->uvd.inst[i].gpu_addr + offset + AMDGPU_UVD_HEAP_SIZE)); in uvd_v7_0_mc_resume()
724 WREG32_SOC15(UVD, i, mmUVD_GP_SCRATCH4, adev->uvd.max_handles); in uvd_v7_0_mc_resume()
755 for (i = 0; i < adev->uvd.num_uvd_inst; ++i) { in uvd_v7_0_mmsch_start()
756 if (adev->uvd.harvest_config & (1 << i)) in uvd_v7_0_mmsch_start()
758 WDOORBELL32(adev->uvd.inst[i].ring_enc[0].doorbell_index, 0); in uvd_v7_0_mmsch_start()
759 *adev->uvd.inst[i].ring_enc[0].wptr_cpu_addr = 0; in uvd_v7_0_mmsch_start()
760 adev->uvd.inst[i].ring_enc[0].wptr = 0; in uvd_v7_0_mmsch_start()
761 adev->uvd.inst[i].ring_enc[0].wptr_old = 0; in uvd_v7_0_mmsch_start()
813 for (i = 0; i < adev->uvd.num_uvd_inst; ++i) { in uvd_v7_0_sriov_start()
814 if (adev->uvd.harvest_config & (1 << i)) in uvd_v7_0_sriov_start()
816 ring = &adev->uvd.inst[i].ring; in uvd_v7_0_sriov_start()
818 size = AMDGPU_GPU_PAGE_ALIGN(adev->uvd.fw->size + 4); in uvd_v7_0_sriov_start()
834 lower_32_bits(adev->uvd.inst[i].gpu_addr)); in uvd_v7_0_sriov_start()
836 upper_32_bits(adev->uvd.inst[i].gpu_addr)); in uvd_v7_0_sriov_start()
846 lower_32_bits(adev->uvd.inst[i].gpu_addr + offset)); in uvd_v7_0_sriov_start()
848 upper_32_bits(adev->uvd.inst[i].gpu_addr + offset)); in uvd_v7_0_sriov_start()
853 lower_32_bits(adev->uvd.inst[i].gpu_addr + offset + AMDGPU_UVD_HEAP_SIZE)); in uvd_v7_0_sriov_start()
855 upper_32_bits(adev->uvd.inst[i].gpu_addr + offset + AMDGPU_UVD_HEAP_SIZE)); in uvd_v7_0_sriov_start()
860 MMSCH_V1_0_INSERT_DIRECT_WT(SOC15_REG_OFFSET(UVD, i, mmUVD_GP_SCRATCH4), adev->uvd.max_handles); in uvd_v7_0_sriov_start()
919 ring = &adev->uvd.inst[i].ring_enc[0]; in uvd_v7_0_sriov_start()
958 for (k = 0; k < adev->uvd.num_uvd_inst; ++k) { in uvd_v7_0_start()
959 if (adev->uvd.harvest_config & (1 << k)) in uvd_v7_0_start()
972 for (k = 0; k < adev->uvd.num_uvd_inst; ++k) { in uvd_v7_0_start()
973 if (adev->uvd.harvest_config & (1 << k)) in uvd_v7_0_start()
975 ring = &adev->uvd.inst[k].ring; in uvd_v7_0_start()
1113 ring = &adev->uvd.inst[k].ring_enc[0]; in uvd_v7_0_start()
1120 ring = &adev->uvd.inst[k].ring_enc[1]; in uvd_v7_0_start()
1141 for (i = 0; i < adev->uvd.num_uvd_inst; ++i) { in uvd_v7_0_stop()
1142 if (adev->uvd.harvest_config & (1 << i)) in uvd_v7_0_stop()
1498 adev->uvd.inst[ring->me].srbm_soft_reset = srbm_soft_reset;
1501 adev->uvd.inst[ring->me].srbm_soft_reset = 0;
1510 if (!adev->uvd.inst[ring->me].srbm_soft_reset)
1522 if (!adev->uvd.inst[ring->me].srbm_soft_reset)
1524 srbm_soft_reset = adev->uvd.inst[ring->me].srbm_soft_reset;
1552 if (!adev->uvd.inst[ring->me].srbm_soft_reset)
1592 amdgpu_fence_process(&adev->uvd.inst[ip_instance].ring); in uvd_v7_0_process_interrupt()
1595 amdgpu_fence_process(&adev->uvd.inst[ip_instance].ring_enc[0]); in uvd_v7_0_process_interrupt()
1599 amdgpu_fence_process(&adev->uvd.inst[ip_instance].ring_enc[1]); in uvd_v7_0_process_interrupt()
1869 for (i = 0; i < adev->uvd.num_uvd_inst; i++) { in uvd_v7_0_set_ring_funcs()
1870 if (adev->uvd.harvest_config & (1 << i)) in uvd_v7_0_set_ring_funcs()
1872 adev->uvd.inst[i].ring.funcs = &uvd_v7_0_ring_vm_funcs; in uvd_v7_0_set_ring_funcs()
1873 adev->uvd.inst[i].ring.me = i; in uvd_v7_0_set_ring_funcs()
1882 for (j = 0; j < adev->uvd.num_uvd_inst; j++) { in uvd_v7_0_set_enc_ring_funcs()
1883 if (adev->uvd.harvest_config & (1 << j)) in uvd_v7_0_set_enc_ring_funcs()
1885 for (i = 0; i < adev->uvd.num_enc_rings; ++i) { in uvd_v7_0_set_enc_ring_funcs()
1886 adev->uvd.inst[j].ring_enc[i].funcs = &uvd_v7_0_enc_ring_vm_funcs; in uvd_v7_0_set_enc_ring_funcs()
1887 adev->uvd.inst[j].ring_enc[i].me = j; in uvd_v7_0_set_enc_ring_funcs()
1903 for (i = 0; i < adev->uvd.num_uvd_inst; i++) { in uvd_v7_0_set_irq_funcs()
1904 if (adev->uvd.harvest_config & (1 << i)) in uvd_v7_0_set_irq_funcs()
1906 adev->uvd.inst[i].irq.num_types = adev->uvd.num_enc_rings + 1; in uvd_v7_0_set_irq_funcs()
1907 adev->uvd.inst[i].irq.funcs = &uvd_v7_0_irq_funcs; in uvd_v7_0_set_irq_funcs()