diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/5158-drm-amdgpu-added-support-2nd-UVD-instance.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/5158-drm-amdgpu-added-support-2nd-UVD-instance.patch | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/5158-drm-amdgpu-added-support-2nd-UVD-instance.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/5158-drm-amdgpu-added-support-2nd-UVD-instance.patch new file mode 100644 index 00000000..08d71fca --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/5158-drm-amdgpu-added-support-2nd-UVD-instance.patch @@ -0,0 +1,80 @@ +From 0f47e74b4198c16aa27dcfa4c55e9149f7cc4f6e Mon Sep 17 00:00:00 2001 +From: Evan Quan <evan.quan@amd.com> +Date: Tue, 14 Aug 2018 14:53:52 -0400 +Subject: [PATCH 5158/5725] drm/amdgpu: added support 2nd UVD instance + +Added psp fw loading support for vega20 2nd UVD instance. + +Signed-off-by: Evan Quan <evan.quan@amd.com> +Acked-by: Huang Rui <ray.huang@amd.com> +Reviewed-by: Alex Deucher <alexander.deucher@amd.com> +Signed-off-by: Feifei Xu <Feifei.Xu@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h | 1 + + drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h | 3 ++- + drivers/gpu/drm/amd/amdgpu/psp_v11_0.c | 3 +++ + drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c | 7 +++++++ + 4 files changed, 13 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h +index 1a265e4..b2f820c 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h +@@ -193,6 +193,7 @@ enum AMDGPU_UCODE_ID { + AMDGPU_UCODE_ID_STORAGE, + AMDGPU_UCODE_ID_SMC, + AMDGPU_UCODE_ID_UVD, ++ AMDGPU_UCODE_ID_UVD1, + AMDGPU_UCODE_ID_VCE, + AMDGPU_UCODE_ID_VCN, + AMDGPU_UCODE_ID_MAXIMUM, +diff --git a/drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h b/drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h +index 0cf48d2..882bd83 100644 +--- a/drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h ++++ b/drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h +@@ -189,7 +189,8 @@ enum psp_gfx_fw_type + GFX_FW_TYPE_RLC_RESTORE_LIST_GPM_MEM = 20, + GFX_FW_TYPE_RLC_RESTORE_LIST_SRM_MEM = 21, + GFX_FW_TYPE_RLC_RESTORE_LIST_CNTL = 22, +- GFX_FW_TYPE_MAX = 23 ++ GFX_FW_TYPE_UVD1 = 23, ++ GFX_FW_TYPE_MAX = 24 + }; + + /* Command to load HW IP FW. */ +diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c +index 9c58a23..b70cfa3 100644 +--- a/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c +@@ -81,6 +81,9 @@ psp_v11_0_get_fw_type(struct amdgpu_firmware_info *ucode, enum psp_gfx_fw_type * + case AMDGPU_UCODE_ID_VCE: + *type = GFX_FW_TYPE_VCE; + break; ++ case AMDGPU_UCODE_ID_UVD1: ++ *type = GFX_FW_TYPE_UVD1; ++ break; + case AMDGPU_UCODE_ID_MAXIMUM: + default: + return -EINVAL; +diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c b/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c +index 2a583d8..cc705b4 100644 +--- a/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c +@@ -440,6 +440,13 @@ static int uvd_v7_0_sw_init(void *handle) + adev->firmware.ucode[AMDGPU_UCODE_ID_UVD].fw = adev->uvd.fw; + adev->firmware.fw_size += + ALIGN(le32_to_cpu(hdr->ucode_size_bytes), PAGE_SIZE); ++ ++ if (adev->uvd.num_uvd_inst == UVD7_MAX_HW_INSTANCES_VEGA20) { ++ adev->firmware.ucode[AMDGPU_UCODE_ID_UVD1].ucode_id = AMDGPU_UCODE_ID_UVD1; ++ adev->firmware.ucode[AMDGPU_UCODE_ID_UVD1].fw = adev->uvd.fw; ++ adev->firmware.fw_size += ++ ALIGN(le32_to_cpu(hdr->ucode_size_bytes), PAGE_SIZE); ++ } + DRM_INFO("PSP loading UVD firmware\n"); + } + +-- +2.7.4 + |