On 10/21/2021 12:45 PM, Guchun Chen wrote:
VCN instance 1 is power gated permanently by SMU.

Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1743

Fixes: f6b6d7d6bc2d("drm/amdgpu/vcn: remove manual instance setting")

Nice find. Looking at the fix, the logic is already broken by
5e26e52adb46("drm/amdgpu/vcn3.0: convert to IP version checking")

Any ASIC other than Sienna which has same VCN IP version (3.0.0) may be broken. Any more extra checks?

Thanks,
Lijo

Signed-off-by: Guchun Chen <guchun.c...@amd.com>
---
  drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c | 9 +++++++++
  1 file changed, 9 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c 
b/drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c
index dbfd92984655..4848922667f2 100644
--- a/drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c
@@ -103,6 +103,15 @@ static int vcn_v3_0_early_init(void *handle)
                        adev->vcn.num_enc_rings = 0;
                else
                        adev->vcn.num_enc_rings = 2;
+
+               /*
+                * Fix ME.
+                * VCN instance number is limited to 1 for below ASIC due to
+                * VCN instnace 1 is permanently power gated.
+                */
+               if ((adev->ip_versions[UVD_HWIP][0] == IP_VERSION(3, 0, 0)) &&
+                       (adev->ip_versions[GC_HWIP][0] == IP_VERSION(10, 3, 2)))
+                       adev->vcn.num_vcn_inst = 1;
        }
vcn_v3_0_set_dec_ring_funcs(adev);

Reply via email to