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