Revert "drm/amdgpu/vcn3.0: remove extra asic type check"
authorJames Zhu <James.Zhu@amd.com>
Sat, 25 Jul 2020 13:30:35 +0000 (09:30 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 27 Jul 2020 20:22:23 +0000 (16:22 -0400)
This reverts commit 058c07201ec7d373fc6a0a570b38a8a9d62c29fb.
Chip NAVY_FLOUNDER uses vcn3.0, but it has only one VCN instance.

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

index 101fc49..63e5547 100644 (file)
@@ -88,20 +88,23 @@ static int vcn_v3_0_early_init(void *handle)
                adev->vcn.num_enc_rings = 1;
 
        } else {
-               u32 harvest;
-               int i;
-
-               adev->vcn.num_vcn_inst = VCN_INSTANCES_SIENNA_CICHLID;
-               for (i = 0; i < adev->vcn.num_vcn_inst; i++) {
-                       harvest = RREG32_SOC15(VCN, i, mmCC_UVD_HARVESTING);
-                       if (harvest & CC_UVD_HARVESTING__UVD_DISABLE_MASK)
-                               adev->vcn.harvest_config |= 1 << i;
-               }
+               if (adev->asic_type == CHIP_SIENNA_CICHLID) {
+                       u32 harvest;
+                       int i;
+
+                       adev->vcn.num_vcn_inst = VCN_INSTANCES_SIENNA_CICHLID;
+                       for (i = 0; i < adev->vcn.num_vcn_inst; i++) {
+                               harvest = RREG32_SOC15(VCN, i, mmCC_UVD_HARVESTING);
+                               if (harvest & CC_UVD_HARVESTING__UVD_DISABLE_MASK)
+                                       adev->vcn.harvest_config |= 1 << i;
+                       }
 
-               if (adev->vcn.harvest_config == (AMDGPU_VCN_HARVEST_VCN0 |
-                                       AMDGPU_VCN_HARVEST_VCN1))
-                       /* both instances are harvested, disable the block */
-                       return -ENOENT;
+                       if (adev->vcn.harvest_config == (AMDGPU_VCN_HARVEST_VCN0 |
+                                               AMDGPU_VCN_HARVEST_VCN1))
+                               /* both instances are harvested, disable the block */
+                               return -ENOENT;
+               } else
+                       adev->vcn.num_vcn_inst = 1;
 
                adev->vcn.num_enc_rings = 2;
        }