drm/amdgpu/vcn3.0: schedule instance 0 for decode and 1 for encode
authorAlex Deucher <alexander.deucher@amd.com>
Thu, 9 Apr 2020 20:08:55 +0000 (16:08 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 1 Jul 2020 05:59:12 +0000 (01:59 -0400)
VCN3 has 2 unsymmetrical instances, i.e there're less codecs
on instance 1, we use 0 for decode and 1 for encode for now

Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c

index 875bdc8..2497f29 100644 (file)
@@ -167,6 +167,8 @@ static int vcn_v3_0_sw_init(void *handle)
                ring = &adev->vcn.inst[i].ring_dec;
                ring->use_doorbell = true;
                ring->doorbell_index = (adev->doorbell_index.vcn.vcn_ring0_1 << 1) + 8 * i;
+               if (i != 0)
+                       ring->no_scheduler = true;
                sprintf(ring->name, "vcn_dec_%d", i);
                r = amdgpu_ring_init(adev, ring, 512, &adev->vcn.inst[i].irq, 0,
                                     AMDGPU_RING_PRIO_DEFAULT);
@@ -183,6 +185,8 @@ static int vcn_v3_0_sw_init(void *handle)
                        ring = &adev->vcn.inst[i].ring_enc[j];
                        ring->use_doorbell = true;
                        ring->doorbell_index = (adev->doorbell_index.vcn.vcn_ring0_1 << 1) + 2 + j + 8 * i;
+                       if (i != 1)
+                               ring->no_scheduler = true;
                        sprintf(ring->name, "vcn_enc_%d.%d", i, j);
                        r = amdgpu_ring_init(adev, ring, 512, &adev->vcn.inst[i].irq, 0,
                                             AMDGPU_RING_PRIO_DEFAULT);