hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c
....@@ -26,7 +26,7 @@
2626 */
2727
2828 #include <linux/firmware.h>
29
-#include <drm/drmP.h>
29
+
3030 #include "amdgpu.h"
3131 #include "amdgpu_vce.h"
3232 #include "vid.h"
....@@ -37,7 +37,6 @@
3737 #include "gca/gfx_8_0_d.h"
3838 #include "smu/smu_7_1_2_d.h"
3939 #include "smu/smu_7_1_2_sh_mask.h"
40
-#include "gca/gfx_8_0_d.h"
4140 #include "gca/gfx_8_0_sh_mask.h"
4241 #include "ivsrcid/ivsrcid_vislands30.h"
4342
....@@ -423,7 +422,7 @@
423422 int r, i;
424423
425424 /* VCE */
426
- r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_LEGACY, VISLANDS30_IV_SRCID_VCE_TRAP, &adev->vce.irq);
425
+ r = amdgpu_irq_add_id(adev, AMDGPU_IRQ_CLIENTID_LEGACY, VISLANDS30_IV_SRCID_VCE_TRAP, &adev->vce.irq);
427426 if (r)
428427 return r;
429428
....@@ -443,7 +442,8 @@
443442 for (i = 0; i < adev->vce.num_rings; i++) {
444443 ring = &adev->vce.ring[i];
445444 sprintf(ring->name, "vce%d", i);
446
- r = amdgpu_ring_init(adev, ring, 512, &adev->vce.irq, 0);
445
+ r = amdgpu_ring_init(adev, ring, 512, &adev->vce.irq, 0,
446
+ AMDGPU_RING_PRIO_DEFAULT);
447447 if (r)
448448 return r;
449449 }
....@@ -474,15 +474,10 @@
474474
475475 amdgpu_asic_set_vce_clocks(adev, 10000, 10000);
476476
477
- for (i = 0; i < adev->vce.num_rings; i++)
478
- adev->vce.ring[i].ready = false;
479
-
480477 for (i = 0; i < adev->vce.num_rings; i++) {
481
- r = amdgpu_ring_test_ring(&adev->vce.ring[i]);
478
+ r = amdgpu_ring_test_helper(&adev->vce.ring[i]);
482479 if (r)
483480 return r;
484
- else
485
- adev->vce.ring[i].ready = true;
486481 }
487482
488483 DRM_INFO("VCE initialized successfully.\n");
....@@ -745,7 +740,7 @@
745740 enum amd_clockgating_state state)
746741 {
747742 struct amdgpu_device *adev = (struct amdgpu_device *)handle;
748
- bool enable = (state == AMD_CG_STATE_GATE) ? true : false;
743
+ bool enable = (state == AMD_CG_STATE_GATE);
749744 int i;
750745
751746 if (!(adev->cg_flags & AMD_CG_SUPPORT_VCE_MGCG))
....@@ -838,8 +833,12 @@
838833 }
839834
840835 static void vce_v3_0_ring_emit_ib(struct amdgpu_ring *ring,
841
- struct amdgpu_ib *ib, unsigned int vmid, bool ctx_switch)
836
+ struct amdgpu_job *job,
837
+ struct amdgpu_ib *ib,
838
+ uint32_t flags)
842839 {
840
+ unsigned vmid = AMDGPU_JOB_GET_VMID(job);
841
+
843842 amdgpu_ring_write(ring, VCE_CMD_IB_VM);
844843 amdgpu_ring_write(ring, vmid);
845844 amdgpu_ring_write(ring, lower_32_bits(ib->gpu_addr));
....@@ -896,6 +895,7 @@
896895 .align_mask = 0xf,
897896 .nop = VCE_CMD_NO_OP,
898897 .support_64bit_ptrs = false,
898
+ .no_user_fence = true,
899899 .get_rptr = vce_v3_0_ring_get_rptr,
900900 .get_wptr = vce_v3_0_ring_get_wptr,
901901 .set_wptr = vce_v3_0_ring_set_wptr,
....@@ -919,6 +919,7 @@
919919 .align_mask = 0xf,
920920 .nop = VCE_CMD_NO_OP,
921921 .support_64bit_ptrs = false,
922
+ .no_user_fence = true,
922923 .get_rptr = vce_v3_0_ring_get_rptr,
923924 .get_wptr = vce_v3_0_ring_get_wptr,
924925 .set_wptr = vce_v3_0_ring_set_wptr,