Returns the vce clock table for the user mode driver.
The user mode driver can fill this data into vce clock
data packet for optimal VCE DPM.

v2: update to the new API

Reviewed-by: Christian König <christian.koe...@amd.com>
Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
index 1ecfe9a..3570124 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
@@ -524,6 +524,24 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void 
*data, struct drm_file
                return copy_to_user(out, &dev_info,
                                    min((size_t)size, sizeof(dev_info))) ? 
-EFAULT : 0;
        }
+       case AMDGPU_INFO_VCE_CLOCK_TABLE: {
+               unsigned i;
+               struct drm_amdgpu_info_vce_clock_table vce_clk_table = {};
+               struct amd_vce_state *vce_state;
+
+               for (i = 0; i < AMDGPU_VCE_CLOCK_TABLE_ENTRIES; i++) {
+                       vce_state = amdgpu_dpm_get_vce_clock_state(adev, i);
+                       if (vce_state) {
+                               vce_clk_table.entries[i].sclk = vce_state->sclk;
+                               vce_clk_table.entries[i].mclk = vce_state->mclk;
+                               vce_clk_table.entries[i].eclk = 
vce_state->evclk;
+                               vce_clk_table.num_valid_entries++;
+                       }
+               }
+
+               return copy_to_user(out, &vce_clk_table,
+                                   min((size_t)size, sizeof(vce_clk_table))) ? 
-EFAULT : 0;
+       }
        default:
                DRM_DEBUG_KMS("Invalid request %d\n", info->query);
                return -EINVAL;
-- 
2.5.5

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to