aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2325-drm-amdgpu-mes10.1-upload-mes-ucode-to-gpu-buffer.patch
diff options
context:
space:
mode:
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.patch70
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
+