[Public] Hi Jane/Alex,
Adding a check of new IP in this case looks good to me. Regards, Guchun From: Jian, Jane <jane.j...@amd.com> Sent: Wednesday, November 24, 2021 10:54 AM To: Deucher, Alexander <alexander.deuc...@amd.com>; Chen, Guchun <guchun.c...@amd.com>; Chen, JingWen <jingwen.ch...@amd.com> Cc: amd-gfx@lists.freedesktop.org Subject: RE: [PATCH] drm/amdgpu/sriov/vcn: skip ip revision check case to ip init for SIENNA_CICHLID [Public] Hi Guchun, Per Alex's suggestion, we would better add a check for new vcn0 IP version, which is a version only owned by sriov and a way that I originally did, how do you think? Thanks, Jane From: Deucher, Alexander <alexander.deuc...@amd.com<mailto:alexander.deuc...@amd.com>> Sent: Tuesday, November 23, 2021 11:03 PM To: Jian, Jane <jane.j...@amd.com<mailto:jane.j...@amd.com>>; amd-gfx@lists.freedesktop.org<mailto:amd-gfx@lists.freedesktop.org>; Chen, Guchun <guchun.c...@amd.com<mailto:guchun.c...@amd.com>>; Chen, JingWen <jingwen.ch...@amd.com<mailto:jingwen.ch...@amd.com>> Subject: Re: [PATCH] drm/amdgpu/sriov/vcn: skip ip revision check case to ip init for SIENNA_CICHLID [Public] Can we just add a check for the new IP version in that case? This looks really hacky. Alex ________________________________ From: Jane Jian <jane.j...@amd.com<mailto:jane.j...@amd.com>> Sent: Tuesday, November 23, 2021 6:34 AM To: amd-gfx@lists.freedesktop.org<mailto:amd-gfx@lists.freedesktop.org> <amd-gfx@lists.freedesktop.org<mailto:amd-gfx@lists.freedesktop.org>>; Deucher, Alexander <alexander.deuc...@amd.com<mailto:alexander.deuc...@amd.com>>; Chen, Guchun <guchun.c...@amd.com<mailto:guchun.c...@amd.com>>; Chen, JingWen <jingwen.ch...@amd.com<mailto:jingwen.ch...@amd.com>> Cc: Jian, Jane <jane.j...@amd.com<mailto:jane.j...@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.j...@amd.com<mailto:jane.j...@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