aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c b/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c
index 12697ddb2007..7c39b4754026 100644
--- a/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c
@@ -183,6 +183,18 @@ static int uvd_v6_0_sw_init(void *handle)
183 if (r) 183 if (r)
184 return r; 184 return r;
185 185
186 if (uvd_v6_0_enc_support(adev)) {
187 struct amd_sched_rq *rq;
188 ring = &adev->uvd.ring_enc[0];
189 rq = &ring->sched.sched_rq[AMD_SCHED_PRIORITY_NORMAL];
190 r = amd_sched_entity_init(&ring->sched, &adev->uvd.entity_enc,
191 rq, amdgpu_sched_jobs);
192 if (r) {
193 DRM_ERROR("Failed setting up UVD ENC run queue.\n");
194 return r;
195 }
196 }
197
186 r = amdgpu_uvd_resume(adev); 198 r = amdgpu_uvd_resume(adev);
187 if (r) 199 if (r)
188 return r; 200 return r;
@@ -216,6 +228,8 @@ static int uvd_v6_0_sw_fini(void *handle)
216 return r; 228 return r;
217 229
218 if (uvd_v6_0_enc_support(adev)) { 230 if (uvd_v6_0_enc_support(adev)) {
231 amd_sched_entity_fini(&adev->uvd.ring_enc[0].sched, &adev->uvd.entity_enc);
232
219 for (i = 0; i < adev->uvd.num_enc_rings; ++i) 233 for (i = 0; i < adev->uvd.num_enc_rings; ++i)
220 amdgpu_ring_fini(&adev->uvd.ring_enc[i]); 234 amdgpu_ring_fini(&adev->uvd.ring_enc[i]);
221 } 235 }