diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4619-drm-amd-display-Load-TA-firmware-for-navi10-12-14.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4619-drm-amd-display-Load-TA-firmware-for-navi10-12-14.patch | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4619-drm-amd-display-Load-TA-firmware-for-navi10-12-14.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4619-drm-amd-display-Load-TA-firmware-for-navi10-12-14.patch new file mode 100644 index 00000000..8be98eca --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4619-drm-amd-display-Load-TA-firmware-for-navi10-12-14.patch @@ -0,0 +1,55 @@ +From dc314ed13f38600a0dc22f8163aef634ffea8b80 Mon Sep 17 00:00:00 2001 +From: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> +Date: Fri, 8 Nov 2019 16:57:21 -0500 +Subject: [PATCH 4619/4736] drm/amd/display: Load TA firmware for navi10/12/14 + +load the ta firmware for navi10/12/14. +This is already being done for raven/picasso and +is needed for supporting hdcp on navi + +Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> +Acked-by: Alex Deucher <alexander.deucher@amd.com> +Reviewed-by: Harry Wentland <harry.wentland@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/psp_v11_0.c | 25 +++++++++++++++++++++++++ + 1 file changed, 25 insertions(+) + +diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c +index a12804d6bdce..2e936fc8b1dc 100644 +--- a/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c +@@ -194,6 +194,31 @@ static int psp_v11_0_init_microcode(struct psp_context *psp) + case CHIP_NAVI10: + case CHIP_NAVI14: + case CHIP_NAVI12: ++ snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name); ++ err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev); ++ if (err) { ++ release_firmware(adev->psp.ta_fw); ++ adev->psp.ta_fw = NULL; ++ dev_info(adev->dev, ++ "psp v11.0: Failed to load firmware \"%s\"\n", fw_name); ++ } else { ++ err = amdgpu_ucode_validate(adev->psp.ta_fw); ++ if (err) ++ goto out2; ++ ++ ta_hdr = (const struct ta_firmware_header_v1_0 *)adev->psp.ta_fw->data; ++ adev->psp.ta_hdcp_ucode_version = le32_to_cpu(ta_hdr->ta_hdcp_ucode_version); ++ adev->psp.ta_hdcp_ucode_size = le32_to_cpu(ta_hdr->ta_hdcp_size_bytes); ++ adev->psp.ta_hdcp_start_addr = (uint8_t *)ta_hdr + ++ le32_to_cpu(ta_hdr->header.ucode_array_offset_bytes); ++ ++ adev->psp.ta_fw_version = le32_to_cpu(ta_hdr->header.ucode_version); ++ ++ adev->psp.ta_dtm_ucode_version = le32_to_cpu(ta_hdr->ta_dtm_ucode_version); ++ adev->psp.ta_dtm_ucode_size = le32_to_cpu(ta_hdr->ta_dtm_size_bytes); ++ adev->psp.ta_dtm_start_addr = (uint8_t *)adev->psp.ta_hdcp_start_addr + ++ le32_to_cpu(ta_hdr->ta_dtm_offset_bytes); ++ } + break; + default: + BUG(); +-- +2.17.1 + |