Signed-off-by: James Zhu <James.Zhu at amd.com> --- drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 55 +++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c b/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c index 612455d..319d4b3 100644 --- a/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c +++ b/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c @@ -402,17 +402,16 @@ static int uvd_v6_0_sw_init(void *handle) if (r) return r; - /* UVD ENC TRAP */ - if (uvd_v6_0_enc_support(adev)) { + if (adev->uvd.num_enc_rings) { + struct drm_sched_rq *rq; + + /* UVD ENC TRAP */ for (i = 0; i < adev->uvd.num_enc_rings; ++i) { r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_LEGACY, i + 119, &adev->uvd.irq); if (r) return r; } - } - if (uvd_v6_0_enc_support(adev)) { - struct drm_sched_rq *rq; ring = &adev->uvd.ring_enc[0]; rq = &ring->sched.sched_rq[DRM_SCHED_PRIORITY_NORMAL]; r = drm_sched_entity_init(&ring->sched, &adev->uvd.entity_enc, @@ -433,14 +432,12 @@ static int uvd_v6_0_sw_init(void *handle) if (r) return r; - if (uvd_v6_0_enc_support(adev)) { - for (i = 0; i < adev->uvd.num_enc_rings; ++i) { - ring = &adev->uvd.ring_enc[i]; - sprintf(ring->name, "uvd_enc%d", i); - r = amdgpu_ring_init(adev, ring, 512, &adev->uvd.irq, 0); - if (r) - return r; - } + for (i = 0; i < adev->uvd.num_enc_rings; ++i) { + ring = &adev->uvd.ring_enc[i]; + sprintf(ring->name, "uvd_enc%d", i); + r = amdgpu_ring_init(adev, ring, 512, &adev->uvd.irq, 0); + if (r) + return r; } return r; @@ -455,7 +452,7 @@ static int uvd_v6_0_sw_fini(void *handle) if (r) return r; - if (uvd_v6_0_enc_support(adev)) { + if (adev->uvd.num_enc_rings) { drm_sched_entity_fini(&adev->uvd.ring_enc[0].sched, &adev->uvd.entity_enc); for (i = 0; i < adev->uvd.num_enc_rings; ++i) @@ -517,21 +514,19 @@ static int uvd_v6_0_hw_init(void *handle) amdgpu_ring_commit(ring); - if (uvd_v6_0_enc_support(adev)) { - for (i = 0; i < adev->uvd.num_enc_rings; ++i) { - ring = &adev->uvd.ring_enc[i]; - ring->ready = true; - r = amdgpu_ring_test_ring(ring); - if (r) { - ring->ready = false; - goto done; - } + for (i = 0; i < adev->uvd.num_enc_rings; ++i) { + ring = &adev->uvd.ring_enc[i]; + ring->ready = true; + r = amdgpu_ring_test_ring(ring); + if (r) { + ring->ready = false; + goto done; } } done: if (!r) { - if (uvd_v6_0_enc_support(adev)) + if (adev->uvd.num_enc_rings) DRM_INFO("UVD and UVD ENC initialized successfully.\n"); else DRM_INFO("UVD initialized successfully.\n"); @@ -852,7 +847,7 @@ static int uvd_v6_0_start(struct amdgpu_device *adev) WREG32_FIELD(UVD_RBC_RB_CNTL, RB_NO_FETCH, 0); - if (uvd_v6_0_enc_support(adev)) { + if (adev->uvd.num_enc_rings) { ring = &adev->uvd.ring_enc[0]; WREG32(mmUVD_RB_RPTR, lower_32_bits(ring->wptr)); WREG32(mmUVD_RB_WPTR, lower_32_bits(ring->wptr)); @@ -1254,13 +1249,13 @@ static int uvd_v6_0_process_interrupt(struct amdgpu_device *adev, amdgpu_fence_process(&adev->uvd.ring); break; case 119: - if (likely(uvd_v6_0_enc_support(adev))) + if (likely(adev->uvd.num_enc_rings)) amdgpu_fence_process(&adev->uvd.ring_enc[0]); else int_handled = false; break; case 120: - if (likely(uvd_v6_0_enc_support(adev))) + if (likely(adev->uvd.num_enc_rings)) amdgpu_fence_process(&adev->uvd.ring_enc[1]); else int_handled = false; @@ -1652,11 +1647,7 @@ static const struct amdgpu_irq_src_funcs uvd_v6_0_irq_funcs = { static void uvd_v6_0_set_irq_funcs(struct amdgpu_device *adev) { - if (uvd_v6_0_enc_support(adev)) - adev->uvd.irq.num_types = adev->uvd.num_enc_rings + 1; - else - adev->uvd.irq.num_types = 1; - + adev->uvd.irq.num_types = adev->uvd.num_enc_rings + 1; adev->uvd.irq.funcs = &uvd_v6_0_irq_funcs; } -- 2.7.4