aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/4577-drm-amdgpu-Fix-NULL-pointer-when-load-kfd-driver-wit.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/4577-drm-amdgpu-Fix-NULL-pointer-when-load-kfd-driver-wit.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/4577-drm-amdgpu-Fix-NULL-pointer-when-load-kfd-driver-wit.patch62
1 files changed, 62 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/4577-drm-amdgpu-Fix-NULL-pointer-when-load-kfd-driver-wit.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/4577-drm-amdgpu-Fix-NULL-pointer-when-load-kfd-driver-wit.patch
new file mode 100644
index 00000000..0b6e833f
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/4577-drm-amdgpu-Fix-NULL-pointer-when-load-kfd-driver-wit.patch
@@ -0,0 +1,62 @@
+From 679118a682b3ef96eb0e90cc2aad3d120a59dae3 Mon Sep 17 00:00:00 2001
+From: Chaudhary Amit Kumar <chaudharyamit.kumar@amd.com>
+Date: Wed, 9 Jan 2019 19:39:05 +0530
+Subject: [PATCH 4577/5725] drm/amdgpu: Fix NULL pointer when load kfd driver
+ with PP block is disabled
+
+When PP block is disabled, return a fix value(100M) for mclk and sclk on
+bare-metal mode. This will cover the emulation mode as well.
+
+Change-Id: If34e3517b6cb6f31e898bbe7921485fbddb79fb9
+Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Chaudhary Amit Kumar <chaudharyamit.kumar@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 18 +++++++-----------
+ 1 file changed, 7 insertions(+), 11 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
+index 6a5d236..893c492 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
+@@ -383,15 +383,12 @@ void get_local_mem_info(struct kgd_dev *kgd,
+ mem_info->local_mem_size_public,
+ mem_info->local_mem_size_private);
+
+- if (amdgpu_emu_mode == 1) {
+- mem_info->mem_clk_max = 100;
+- return;
+- }
+-
+ if (amdgpu_sriov_vf(adev))
+ mem_info->mem_clk_max = adev->clock.default_mclk / 100;
+- else
++ else if (adev->powerplay.pp_funcs)
+ mem_info->mem_clk_max = amdgpu_dpm_get_mclk(adev, false) / 100;
++ else
++ mem_info->mem_clk_max = 100;
+ }
+
+ uint64_t get_gpu_clock_counter(struct kgd_dev *kgd)
+@@ -408,14 +405,13 @@ uint32_t get_max_engine_clock_in_mhz(struct kgd_dev *kgd)
+ struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
+
+ /* the sclk is in quantas of 10kHz */
+- if (amdgpu_emu_mode == 1)
+- return 100;
+-
+
+ if (amdgpu_sriov_vf(adev))
+ return adev->clock.default_sclk / 100;
+-
+- return amdgpu_dpm_get_sclk(adev, false) / 100;
++ else if (adev->powerplay.pp_funcs)
++ return amdgpu_dpm_get_sclk(adev, false) / 100;
++ else
++ return 100;
+ }
+
+ void get_cu_info(struct kgd_dev *kgd, struct kfd_cu_info *cu_info)
+--
+2.7.4
+