]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/amdgpu: enable vcn encode ring tests
authorLeo Liu <leo.liu@amd.com>
Tue, 21 Feb 2017 15:38:42 +0000 (10:38 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 24 May 2017 21:41:43 +0000 (17:41 -0400)
Wire up the callback and enable them.

Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c

index 91050ca153e93048fe1003b20f44a6c77251c2de..18fd565587510ad5740fc4b9373cb860c28133de 100644 (file)
@@ -497,7 +497,7 @@ int amdgpu_vcn_enc_ring_test_ring(struct amdgpu_ring *ring)
                          ring->idx, r);
                return r;
        }
-       amdgpu_ring_write(ring, VCE_CMD_END);
+       amdgpu_ring_write(ring, VCN_ENC_CMD_END);
        amdgpu_ring_commit(ring);
 
        for (i = 0; i < adev->usec_timeout; i++) {
index f09d2aea9886ce3d3ce9b50dc4de6ad34d9a29c5..4ddaec318d91bf72d50e6d597551b9ae46957df0 100644 (file)
@@ -144,7 +144,7 @@ static int vcn_v1_0_hw_init(void *handle)
 {
        struct amdgpu_device *adev = (struct amdgpu_device *)handle;
        struct amdgpu_ring *ring = &adev->vcn.ring_dec;
-       int r;
+       int i, r;
 
        r = vcn_v1_0_start(adev);
        if (r)
@@ -157,9 +157,19 @@ static int vcn_v1_0_hw_init(void *handle)
                goto done;
        }
 
+       for (i = 0; i < adev->vcn.num_enc_rings; ++i) {
+               ring = &adev->vcn.ring_enc[i];
+               ring->ready = true;
+               r = amdgpu_ring_test_ring(ring);
+               if (r) {
+                       ring->ready = false;
+                       goto done;
+               }
+       }
+
 done:
        if (!r)
-               DRM_INFO("VCN decode initialized successfully.\n");
+               DRM_INFO("VCN decode and encode initialized successfully.\n");
 
        return r;
 }
@@ -930,6 +940,7 @@ static const struct amdgpu_ring_funcs vcn_v1_0_enc_ring_vm_funcs = {
        .emit_ib = vcn_v1_0_enc_ring_emit_ib,
        .emit_fence = vcn_v1_0_enc_ring_emit_fence,
        .emit_vm_flush = vcn_v1_0_enc_ring_emit_vm_flush,
+       .test_ring = amdgpu_vcn_enc_ring_test_ring,
        .insert_nop = amdgpu_ring_insert_nop,
        .insert_end = vcn_v1_0_enc_ring_insert_end,
        .pad_ib = amdgpu_ring_generic_pad_ib,