diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h | 32 | 
1 files changed, 29 insertions, 3 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h index fa2b55681422..8c96a4caa715 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h @@ -270,8 +270,18 @@ struct amdgpu_dpm_funcs {  				struct amdgpu_ps *cps,  				struct amdgpu_ps *rps,  				bool *equal); +	int (*read_sensor)(struct amdgpu_device *adev, int idx, void *value, +			   int *size);  	struct amd_vce_state* (*get_vce_clock_state)(struct amdgpu_device *adev, unsigned idx); +	int (*reset_power_profile_state)(struct amdgpu_device *adev, +			struct amd_pp_profile *request); +	int (*get_power_profile_state)(struct amdgpu_device *adev, +			struct amd_pp_profile *query); +	int (*set_power_profile_state)(struct amdgpu_device *adev, +			struct amd_pp_profile *request); +	int (*switch_power_profile)(struct amdgpu_device *adev, +			enum amd_pp_profile_type type);  };  #define amdgpu_dpm_pre_set_power_state(adev) (adev)->pm.funcs->pre_set_power_state((adev)) @@ -282,10 +292,10 @@ struct amdgpu_dpm_funcs {  #define amdgpu_dpm_vblank_too_short(adev) (adev)->pm.funcs->vblank_too_short((adev))  #define amdgpu_dpm_enable_bapm(adev, e) (adev)->pm.funcs->enable_bapm((adev), (e)) -#define amdgpu_dpm_read_sensor(adev, idx, value) \ +#define amdgpu_dpm_read_sensor(adev, idx, value, size) \  	((adev)->pp_enabled ? \ -		(adev)->powerplay.pp_funcs->read_sensor(adev->powerplay.pp_handle, (idx), (value)) : \ -		-EINVAL) +		(adev)->powerplay.pp_funcs->read_sensor(adev->powerplay.pp_handle, (idx), (value), (size)) : \ +		(adev)->pm.funcs->read_sensor((adev), (idx), (value), (size)))  #define amdgpu_dpm_get_temperature(adev) \  	((adev)->pp_enabled ?						\ @@ -388,6 +398,22 @@ struct amdgpu_dpm_funcs {  	(adev)->powerplay.pp_funcs->get_performance_level((adev)->powerplay.pp_handle) : \  	(adev)->pm.dpm.forced_level) +#define amdgpu_dpm_reset_power_profile_state(adev, request) \ +	((adev)->powerplay.pp_funcs->reset_power_profile_state(\ +			(adev)->powerplay.pp_handle, request)) + +#define amdgpu_dpm_get_power_profile_state(adev, query) \ +	((adev)->powerplay.pp_funcs->get_power_profile_state(\ +			(adev)->powerplay.pp_handle, query)) + +#define amdgpu_dpm_set_power_profile_state(adev, request) \ +	((adev)->powerplay.pp_funcs->set_power_profile_state(\ +			(adev)->powerplay.pp_handle, request)) + +#define amdgpu_dpm_switch_power_profile(adev, type) \ +	((adev)->powerplay.pp_funcs->switch_power_profile(\ +			(adev)->powerplay.pp_handle, type)) +  struct amdgpu_dpm {  	struct amdgpu_ps        *ps;  	/* number of valid power states */ |