aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2326-drm-amdgpu-mes10.1-upload-mes-data-ucode-to-gpu-buff.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2326-drm-amdgpu-mes10.1-upload-mes-data-ucode-to-gpu-buff.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2326-drm-amdgpu-mes10.1-upload-mes-data-ucode-to-gpu-buff.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2326-drm-amdgpu-mes10.1-upload-mes-data-ucode-to-gpu-buff.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2326-drm-amdgpu-mes10.1-upload-mes-data-ucode-to-gpu-buff.patch
new file mode 100644
index 00000000..15b412c4
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2326-drm-amdgpu-mes10.1-upload-mes-data-ucode-to-gpu-buff.patch
@@ -0,0 +1,61 @@
+From e29ecae6f6c649d9e64480be650bbff2ca9b8a61 Mon Sep 17 00:00:00 2001
+From: Jack Xiao <Jack.Xiao@amd.com>
+Date: Fri, 12 Apr 2019 18:58:57 +0800
+Subject: [PATCH 2326/2940] drm/amdgpu/mes10.1: upload mes data ucode to gpu
+ buffer
+
+Allocate GPU buffer and upload mes data ucode 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 | 32 ++++++++++++++++++++++++++
+ 1 file changed, 32 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/mes_v10_1.c b/drivers/gpu/drm/amd/amdgpu/mes_v10_1.c
+index a19b2616d446..764967b20c40 100644
+--- a/drivers/gpu/drm/amd/amdgpu/mes_v10_1.c
++++ b/drivers/gpu/drm/amd/amdgpu/mes_v10_1.c
+@@ -137,6 +137,38 @@ static int mes_v10_1_allocate_ucode_buffer(struct amdgpu_device *adev)
+ return 0;
+ }
+
++static int mes_v10_1_allocate_ucode_data_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_data_offset_bytes));
++ fw_size = le32_to_cpu(mes_hdr->mes_ucode_data_size_bytes);
++
++ r = amdgpu_bo_create_reserved(adev, fw_size,
++ 64 * 1024, AMDGPU_GEM_DOMAIN_GTT,
++ &adev->mes.data_fw_obj,
++ &adev->mes.data_fw_gpu_addr,
++ (void **)&adev->mes.data_fw_ptr);
++ if (r) {
++ dev_err(adev->dev, "(%d) failed to create mes data fw bo\n", r);
++ return r;
++ }
++
++ memcpy(adev->mes.data_fw_ptr, fw_data, fw_size);
++
++ amdgpu_bo_kunmap(adev->mes.data_fw_obj);
++ amdgpu_bo_unreserve(adev->mes.data_fw_obj);
++
++ return 0;
++}
++
+ static int mes_v10_1_sw_init(void *handle)
+ {
+ return 0;
+--
+2.17.1
+