]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm/amdgpu/dpm: add new callback to fetch vce clock state (v2)
authorAlex Deucher <alexander.deucher@amd.com>
Fri, 7 Oct 2016 18:10:15 +0000 (14:10 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 25 Oct 2016 18:38:41 +0000 (14:38 -0400)
Will be used by the new info ioctl query.

v2: fetch a single state per request

Reviewed-by: Rex Zhu <Rex.Zhu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h

index 5097415d21727b94df7df3bf6a6182e010b90fde..fdcf9688e7aea6dd63ad84c74b6de9563b2c5672 100644 (file)
@@ -271,6 +271,7 @@ struct amdgpu_dpm_funcs {
        int (*set_sclk_od)(struct amdgpu_device *adev, uint32_t value);
        int (*get_mclk_od)(struct amdgpu_device *adev);
        int (*set_mclk_od)(struct amdgpu_device *adev, uint32_t value);
+       struct amd_vce_state* (*get_vce_clock_state)(struct amdgpu_device *adev, unsigned idx);
 };
 
 #define amdgpu_dpm_pre_set_power_state(adev) (adev)->pm.funcs->pre_set_power_state((adev))
@@ -373,6 +374,10 @@ struct amdgpu_dpm_funcs {
 #define amdgpu_dpm_dispatch_task(adev, event_id, input, output)                \
        (adev)->powerplay.pp_funcs->dispatch_tasks((adev)->powerplay.pp_handle, (event_id), (input), (output))
 
+#define amdgpu_dpm_get_vce_clock_state(adev, i)                                \
+       ((adev)->pp_enabled ?                                           \
+        (adev)->powerplay.pp_funcs->get_vce_clock_state((adev)->powerplay.pp_handle, (i)) : \
+        (adev)->pm.funcs->get_vce_clock_state((adev), (i)))
 
 struct amdgpu_dpm {
        struct amdgpu_ps        *ps;
index 3fb5e57a378bc7df6fea185e975e1f7f5413bebe..eb3e83d7af31ddbab734a9f199776396f937def7 100644 (file)
@@ -359,6 +359,7 @@ struct amd_powerplay_funcs {
        int (*get_mclk_od)(void *handle);
        int (*set_mclk_od)(void *handle, uint32_t value);
        int (*read_sensor)(void *handle, int idx, int32_t *value);
+       struct amd_vce_state* (*get_vce_clock_state)(void *handle, unsigned idx);
 };
 
 struct amd_powerplay {