diff options
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.patch | 61 |
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 + |