aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/1256-drm-amdkfd-Remove-firmware-version-check-for-multi-p.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/1256-drm-amdkfd-Remove-firmware-version-check-for-multi-p.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/1256-drm-amdkfd-Remove-firmware-version-check-for-multi-p.patch52
1 files changed, 52 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/1256-drm-amdkfd-Remove-firmware-version-check-for-multi-p.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/1256-drm-amdkfd-Remove-firmware-version-check-for-multi-p.patch
new file mode 100644
index 00000000..b8c44dec
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/1256-drm-amdkfd-Remove-firmware-version-check-for-multi-p.patch
@@ -0,0 +1,52 @@
+From 62ec2cc01b51a7b8e2b00e70b9cbfd5cb5788ca6 Mon Sep 17 00:00:00 2001
+From: Jay Cornwall <Jay.Cornwall@amd.com>
+Date: Wed, 29 Mar 2017 18:15:30 -0500
+Subject: [PATCH 1256/4131] drm/amdkfd: Remove firmware version check for
+ multi-process HWS
+
+The firmware version check was incorrect for different GFXIP variants,
+which use unrelated versioning schemes. Gfx9 ASICs failed this check
+although their firmware supports multi-process scheduling.
+
+Remove firmware version check since MEC microcode without this feature
+has been deprecated for some time.
+
+Change-Id: I93b1c8072d0838a8d7c7de1bfc0ff030b2b6afbd
+Signed-off-by: Jay Cornwall <Jay.Cornwall@amd.com>
+---
+ drivers/gpu/drm/amd/amdkfd/kfd_device.c | 5 +----
+ drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 1 -
+ 2 files changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
+index 93ac064..acb9c2e 100644
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
+@@ -477,11 +477,8 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd,
+ - kfd->vm_info.first_vmid_kfd + 1;
+ kfd->vm_info.vmid_num_kfd = vmid_num_kfd;
+
+- /* If MEC firmware is too old, turn off hws multiple process mapping */
+- if (kfd->mec_fw_version < KFD_MULTI_PROC_MAPPING_HWS_SUPPORT)
+- kfd->max_proc_per_quantum = 0;
+ /* Verify module parameters regarding mapped process number*/
+- else if ((hws_max_conc_proc < 0)
++ if ((hws_max_conc_proc < 0)
+ || (hws_max_conc_proc > vmid_num_kfd)) {
+ dev_err(kfd_device,
+ "hws_max_conc_proc (%d) must be between 0 and %d, use %d instead\n",
+diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
+index f2a9030..bbd6336 100644
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
+@@ -1061,7 +1061,6 @@ int dbgdev_wave_reset_wavefronts(struct kfd_dev *dev, struct kfd_process *p);
+
+ #define KFD_SCRATCH_CZ_FW_VER 600
+ #define KFD_SCRATCH_KV_FW_VER 413
+-#define KFD_MULTI_PROC_MAPPING_HWS_SUPPORT 600
+ #define KFD_CWSR_CZ_FW_VER 625
+
+ /* PeerDirect support */
+--
+2.7.4
+