aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3730-drm-amdgpu-disable-gfxoff-while-use-no-H-W-schedulin.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3730-drm-amdgpu-disable-gfxoff-while-use-no-H-W-schedulin.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3730-drm-amdgpu-disable-gfxoff-while-use-no-H-W-schedulin.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3730-drm-amdgpu-disable-gfxoff-while-use-no-H-W-schedulin.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3730-drm-amdgpu-disable-gfxoff-while-use-no-H-W-schedulin.patch
new file mode 100644
index 00000000..83be5e79
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3730-drm-amdgpu-disable-gfxoff-while-use-no-H-W-schedulin.patch
@@ -0,0 +1,45 @@
+From 7ac454802299ffd3671cd488e5868f8cd21d5652 Mon Sep 17 00:00:00 2001
+From: Huang Rui <ray.huang@amd.com>
+Date: Mon, 2 Sep 2019 23:34:32 +0800
+Subject: [PATCH 3730/4256] drm/amdgpu: disable gfxoff while use no H/W
+ scheduling policy
+
+While gfxoff is enabled, the mmVM_XXX registers will be 0xfffffff while the GFX
+is in "off" state. KFD queue creattion doesn't use ring based method, so it will
+trigger a VM fault.
+
+Signed-off-by: Huang Rui <ray.huang@amd.com>
+Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 +
+ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 +-
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+index b2999b81f923..55e3d3e2e69c 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+@@ -173,6 +173,7 @@ extern int amdgpu_discovery;
+ extern int amdgpu_mes;
+ extern int amdgpu_noretry;
+ extern int amdgpu_force_asic_type;
++extern int sched_policy;
+
+ #ifdef CONFIG_DRM_AMDGPU_SI
+ extern int amdgpu_si_support;
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+index 2d65e8eb687d..be0a06014037 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+@@ -1622,7 +1622,7 @@ static int amdgpu_device_ip_early_init(struct amdgpu_device *adev)
+ }
+
+ adev->pm.pp_feature = amdgpu_pp_feature_mask;
+- if (amdgpu_sriov_vf(adev))
++ if (amdgpu_sriov_vf(adev) || sched_policy == KFD_SCHED_POLICY_NO_HWS)
+ adev->pm.pp_feature &= ~PP_GFXOFF_MASK;
+
+ for (i = 0; i < adev->num_ip_blocks; i++) {
+--
+2.17.1
+