diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2325-drm-amdgpu-mes10.1-upload-mes-ucode-to-gpu-buffer.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2325-drm-amdgpu-mes10.1-upload-mes-ucode-to-gpu-buffer.patch | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2325-drm-amdgpu-mes10.1-upload-mes-ucode-to-gpu-buffer.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2325-drm-amdgpu-mes10.1-upload-mes-ucode-to-gpu-buffer.patch new file mode 100644 index 00000000..5e72912b --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2325-drm-amdgpu-mes10.1-upload-mes-ucode-to-gpu-buffer.patch @@ -0,0 +1,70 @@ +From f52a5ec5ee4450e12abe4f973ff4eba1972a3077 Mon Sep 17 00:00:00 2001 +From: Jack Xiao <Jack.Xiao@amd.com> +Date: Fri, 12 Apr 2019 18:53:35 +0800 +Subject: [PATCH 2325/2940] drm/amdgpu/mes10.1: upload mes ucode to gpu buffer + +Allocate GPU buffer and upload ucode firmware to the buffer. + +Signed-off-by: Jack Xiao <Jack.Xiao@amd.com> +Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/mes_v10_1.c | 34 ++++++++++++++++++++++++++ + 1 file changed, 34 insertions(+) + +diff --git a/drivers/gpu/drm/amd/amdgpu/mes_v10_1.c b/drivers/gpu/drm/amd/amdgpu/mes_v10_1.c +index e53819b99442..a19b2616d446 100644 +--- a/drivers/gpu/drm/amd/amdgpu/mes_v10_1.c ++++ b/drivers/gpu/drm/amd/amdgpu/mes_v10_1.c +@@ -21,7 +21,9 @@ + * + */ + ++#include <linux/firmware.h> + #include "amdgpu.h" ++#include "soc15_common.h" + + MODULE_FIRMWARE("amdgpu/navi10_mes.bin"); + +@@ -103,6 +105,38 @@ static void mes_v10_1_free_microcode(struct amdgpu_device *adev) + adev->mes.fw = NULL; + } + ++static int mes_v10_1_allocate_ucode_buffer(struct amdgpu_device *adev) ++{ ++ int r; ++ const struct mes_firmware_header_v1_0 *mes_hdr; ++ const __le32 *fw_data; ++ unsigned fw_size; ++ ++ mes_hdr = (const struct mes_firmware_header_v1_0 *) ++ adev->mes.fw->data; ++ ++ fw_data = (const __le32 *)(adev->mes.fw->data + ++ le32_to_cpu(mes_hdr->mes_ucode_offset_bytes)); ++ fw_size = le32_to_cpu(mes_hdr->mes_ucode_size_bytes); ++ ++ r = amdgpu_bo_create_reserved(adev, fw_size, ++ PAGE_SIZE, AMDGPU_GEM_DOMAIN_GTT, ++ &adev->mes.ucode_fw_obj, ++ &adev->mes.ucode_fw_gpu_addr, ++ (void **)&adev->mes.ucode_fw_ptr); ++ if (r) { ++ dev_err(adev->dev, "(%d) failed to create mes fw bo\n", r); ++ return r; ++ } ++ ++ memcpy(adev->mes.ucode_fw_ptr, fw_data, fw_size); ++ ++ amdgpu_bo_kunmap(adev->mes.ucode_fw_obj); ++ amdgpu_bo_unreserve(adev->mes.ucode_fw_obj); ++ ++ return 0; ++} ++ + static int mes_v10_1_sw_init(void *handle) + { + return 0; +-- +2.17.1 + |