diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 18 | 
1 files changed, 16 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c index 9fa4f25a3745..07eb29885372 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c @@ -87,7 +87,12 @@ void amdgpu_amdkfd_device_probe(struct amdgpu_device *adev)  	case CHIP_RAVEN:  		kfd2kgd = amdgpu_amdkfd_gfx_9_0_get_functions();  		break; +	case CHIP_ARCTURUS: +		kfd2kgd = amdgpu_amdkfd_arcturus_get_functions(); +		break;  	case CHIP_NAVI10: +	case CHIP_NAVI14: +	case CHIP_NAVI12:  		kfd2kgd = amdgpu_amdkfd_gfx_10_0_get_functions();  		break;  	default: @@ -651,8 +656,12 @@ void amdgpu_amdkfd_set_compute_idle(struct kgd_dev *kgd, bool idle)  {  	struct amdgpu_device *adev = (struct amdgpu_device *)kgd; -	if (adev->powerplay.pp_funcs && -	    adev->powerplay.pp_funcs->switch_power_profile) +	if (is_support_sw_smu(adev)) +		smu_switch_power_profile(&adev->smu, +					 PP_SMC_POWER_PROFILE_COMPUTE, +					 !idle); +	else if (adev->powerplay.pp_funcs && +		 adev->powerplay.pp_funcs->switch_power_profile)  		amdgpu_dpm_switch_power_profile(adev,  						PP_SMC_POWER_PROFILE_COMPUTE,  						!idle); @@ -715,6 +724,11 @@ struct kfd2kgd_calls *amdgpu_amdkfd_gfx_9_0_get_functions(void)  	return NULL;  } +struct kfd2kgd_calls *amdgpu_amdkfd_arcturus_get_functions(void) +{ +	return NULL; +} +  struct kfd2kgd_calls *amdgpu_amdkfd_gfx_10_0_get_functions(void)  {  	return NULL;  |