diff options
author | Shaoyun Liu <Shaoyun.Liu@amd.com> | 2018-03-14 14:44:58 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-05-31 15:08:54 -0400 |
commit | 7ba01f9e12bb3f088f617cf69b589ea37bd5d6ed (patch) | |
tree | 6f480d4907e6d7662ba1e4973d6962d7cd76b45d /drivers/gpu | |
parent | ac26b0f3fc41b942f03ec9fd0392e3aa1886800a (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.c | 18 |
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 | ||
350 | uint64_t get_gpu_clock_counter(struct kgd_dev *kgd) | 347 | uint64_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 | ||
373 | void get_cu_info(struct kgd_dev *kgd, struct kfd_cu_info *cu_info) | 369 | void get_cu_info(struct kgd_dev *kgd, struct kfd_cu_info *cu_info) |