diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1222-drm-amdkfd-Module-option-to-disable-CRAT-table.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1222-drm-amdkfd-Module-option-to-disable-CRAT-table.patch | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1222-drm-amdkfd-Module-option-to-disable-CRAT-table.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1222-drm-amdkfd-Module-option-to-disable-CRAT-table.patch new file mode 100644 index 00000000..40588244 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1222-drm-amdkfd-Module-option-to-disable-CRAT-table.patch @@ -0,0 +1,65 @@ +From 32aaf780e7811e7678d2d88eff564602088fc1f2 Mon Sep 17 00:00:00 2001 +From: Felix Kuehling <Felix.Kuehling@amd.com> +Date: Wed, 15 Feb 2017 18:02:44 -0500 +Subject: [PATCH 1222/4131] drm/amdkfd: Module option to disable CRAT table + +Change-Id: Ieab5db54efd761d08a5c68bea9d8278bf53548ea +Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com> +--- + drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 5 +++++ + drivers/gpu/drm/amd/amdkfd/kfd_module.c | 5 +++++ + drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 6 ++++++ + 3 files changed, 16 insertions(+) + +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c +index 3681fcf..054ac54 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c +@@ -682,6 +682,11 @@ int kfd_create_crat_image_acpi(void **crat_image, size_t *size) + return -EINVAL; + } + ++ if (ignore_crat) { ++ pr_info("CRAT table disabled by module option\n"); ++ return -ENODATA; ++ } ++ + pcrat_image = kmalloc(crat_table->length, GFP_KERNEL); + if (!pcrat_image) { + pr_err("No memory for allocating CRAT image\n"); +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_module.c b/drivers/gpu/drm/amd/amdkfd/kfd_module.c +index 274312f..a529fe1 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_module.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_module.c +@@ -80,6 +80,11 @@ module_param(debug_largebar, int, 0444); + MODULE_PARM_DESC(debug_largebar, + "Debug large-bar flag used to simulate large-bar capability on non-large bar machine (0 = disable, 1 = enable)"); + ++int ignore_crat; ++module_param(ignore_crat, int, 0444); ++MODULE_PARM_DESC(ignore_crat, ++ "Ignore CRAT table during KFD initialization (0 = use CRAT (default), 1 = ignore CRAT)"); ++ + int kgd2kfd_init(unsigned interface_version, const struct kgd2kfd_calls **g2f) + { + if (!amdkfd_init_completed) +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h +index 122e9e4..a9e5618 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h +@@ -127,6 +127,12 @@ extern int send_sigterm; + */ + extern int debug_largebar; + ++/* ++ * Ignore CRAT table during KFD initialization, can be used to work around ++ * broken CRAT tables on some AMD systems ++ */ ++extern int ignore_crat; ++ + /** + * enum kfd_sched_policy + * +-- +2.7.4 + |