aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorShaoyun Liu <Shaoyun.Liu@amd.com>2018-03-14 14:44:58 -0400
committerAlex Deucher <alexander.deucher@amd.com>2018-05-31 15:08:54 -0400
commit7ba01f9e12bb3f088f617cf69b589ea37bd5d6ed (patch)
tree6f480d4907e6d7662ba1e4973d6962d7cd76b45d /drivers/gpu
parentac26b0f3fc41b942f03ec9fd0392e3aa1886800a (diff)
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. Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c18
1 files 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 bd36ee9f7e6d..60fc4413449b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
@@ -336,15 +336,12 @@ void get_local_mem_info(struct kgd_dev *kgd,
336 mem_info->local_mem_size_public, 336 mem_info->local_mem_size_public,
337 mem_info->local_mem_size_private); 337 mem_info->local_mem_size_private);
338 338
339 if (amdgpu_emu_mode == 1) {
340 mem_info->mem_clk_max = 100;
341 return;
342 }
343
344 if (amdgpu_sriov_vf(adev)) 339 if (amdgpu_sriov_vf(adev))
345 mem_info->mem_clk_max = adev->clock.default_mclk / 100; 340 mem_info->mem_clk_max = adev->clock.default_mclk / 100;
346 else 341 else if (adev->powerplay.pp_funcs)
347 mem_info->mem_clk_max = amdgpu_dpm_get_mclk(adev, false) / 100; 342 mem_info->mem_clk_max = amdgpu_dpm_get_mclk(adev, false) / 100;
343 else
344 mem_info->mem_clk_max = 100;
348} 345}
349 346
350uint64_t get_gpu_clock_counter(struct kgd_dev *kgd) 347uint64_t get_gpu_clock_counter(struct kgd_dev *kgd)
@@ -361,13 +358,12 @@ uint32_t get_max_engine_clock_in_mhz(struct kgd_dev *kgd)
361 struct amdgpu_device *adev = (struct amdgpu_device *)kgd; 358 struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
362 359
363 /* the sclk is in quantas of 10kHz */ 360 /* the sclk is in quantas of 10kHz */
364 if (amdgpu_emu_mode == 1)
365 return 100;
366
367 if (amdgpu_sriov_vf(adev)) 361 if (amdgpu_sriov_vf(adev))
368 return adev->clock.default_sclk / 100; 362 return adev->clock.default_sclk / 100;
369 363 else if (adev->powerplay.pp_funcs)
370 return amdgpu_dpm_get_sclk(adev, false) / 100; 364 return amdgpu_dpm_get_sclk(adev, false) / 100;
365 else
366 return 100;
371} 367}
372 368
373void get_cu_info(struct kgd_dev *kgd, struct kfd_cu_info *cu_info) 369void get_cu_info(struct kgd_dev *kgd, struct kfd_cu_info *cu_info)