diff options
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 14 |
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 | } |