[PATCH] drm/amdgpu/sriov/vcn: skip ip revision check case to ip init for SIENNA_CICHLID
Deucher, Alexander
Alexander.Deucher at amd.com
Tue Nov 23 15:02:34 UTC 2021
[Public]
Can we just add a check for the new IP version in that case? This looks really hacky.
Alex
________________________________
From: Jane Jian <Jane.Jian at amd.com>
Sent: Tuesday, November 23, 2021 6:34 AM
To: amd-gfx at lists.freedesktop.org <amd-gfx at lists.freedesktop.org>; Deucher, Alexander <Alexander.Deucher at amd.com>; Chen, Guchun <Guchun.Chen at amd.com>; Chen, JingWen <JingWen.Chen2 at amd.com>
Cc: Jian, Jane <Jane.Jian at amd.com>
Subject: [PATCH] drm/amdgpu/sriov/vcn: skip ip revision check case to ip init for SIENNA_CICHLID
[WHY]
for sriov odd# vf will modify vcn0 engine ip revision(due to multimedia bandwidth feature),
which will be mismatched with original vcn0 revision
[HOW]
skip ip revision match case and continue use asic type to check
Signed-off-by: Jane Jian <Jane.Jian at amd.com>
Change-Id: I1ace32acbf3a13c0baac958508da1324ec387a58
---
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 5 ++++-
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 6 ++++++
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
index 4e3669407518..0a91e53f520c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
@@ -1334,7 +1334,10 @@ int amdgpu_discovery_set_ip_blocks(struct amdgpu_device *adev)
return r;
}
- r = amdgpu_discovery_set_mm_ip_blocks(adev);
+ if (adev->asic_type == CHIP_SIENNA_CICHLID && amdgpu_sriov_vf(adev))
+ r = amdgpu_device_ip_block_add(adev, &vcn_v3_0_ip_block);
+ else
+ r = amdgpu_discovery_set_mm_ip_blocks(adev);
if (r)
return r;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
index 4f7c70845785..87f56b61be53 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
@@ -86,6 +86,10 @@ int amdgpu_vcn_sw_init(struct amdgpu_device *adev)
for (i = 0; i < adev->vcn.num_vcn_inst; i++)
atomic_set(&adev->vcn.inst[i].dpg_enc_submission_cnt, 0);
+ if (adev->asic_type == CHIP_SIENNA_CICHLID && amdgpu_sriov_vf(adev)) {
+ fw_name = FIRMWARE_SIENNA_CICHLID;
+ goto next;
+ }
switch (adev->ip_versions[UVD_HWIP][0]) {
case IP_VERSION(1, 0, 0):
case IP_VERSION(1, 0, 1):
@@ -168,6 +172,8 @@ int amdgpu_vcn_sw_init(struct amdgpu_device *adev)
return -EINVAL;
}
+next:
+
r = request_firmware(&adev->vcn.fw, fw_name, adev->dev);
if (r) {
dev_err(adev->dev, "amdgpu_vcn: Can't load firmware \"%s\"\n",
--
2.17.1
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20211123/f553cf85/attachment-0001.htm>
More information about the amd-gfx
mailing list