drm/amdgpu: add new INFO IOCTL query for input power
authorAlex Deucher <alexander.deucher@amd.com>
Mon, 2 Oct 2023 18:33:15 +0000 (14:33 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 15 Jan 2024 23:35:36 +0000 (18:35 -0500)
Some chips provide both average and input power.  Previously
we just exposed average power, add a new query for input
power.

Example userspace:
https://github.com/Umio-Yasuno/libdrm-amdgpu-sys-rs/tree/input_power

Reviewed-by: Yang Wang <kevinyang.wang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
include/uapi/drm/amdgpu_drm.h

index bf4f48fe438d1b5936852145c8b4c1059446381c..48496bb585c74cbb44eea641318302340adb9ec4 100644 (file)
@@ -1114,6 +1114,15 @@ int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
                        }
                        ui32 >>= 8;
                        break;
+               case AMDGPU_INFO_SENSOR_GPU_INPUT_POWER:
+                       /* get input GPU power */
+                       if (amdgpu_dpm_read_sensor(adev,
+                                                  AMDGPU_PP_SENSOR_GPU_INPUT_POWER,
+                                                  (void *)&ui32, &ui32_size)) {
+                               return -EINVAL;
+                       }
+                       ui32 >>= 8;
+                       break;
                case AMDGPU_INFO_SENSOR_VDDNB:
                        /* get VDDNB in millivolts */
                        if (amdgpu_dpm_read_sensor(adev,
index ad21c613fec88072ad7345612f86bed2cc7c2eda..96e32dafd4f05cfb1981c56e036c0ba65246d865 100644 (file)
@@ -865,6 +865,8 @@ struct drm_amdgpu_cs_chunk_cp_gfx_shadow {
        #define AMDGPU_INFO_SENSOR_PEAK_PSTATE_GFX_SCLK                 0xa
        /* Subquery id: Query GPU peak pstate memory clock */
        #define AMDGPU_INFO_SENSOR_PEAK_PSTATE_GFX_MCLK                 0xb
+       /* Subquery id: Query input GPU power   */
+       #define AMDGPU_INFO_SENSOR_GPU_INPUT_POWER      0xc
 /* Number of VRAM page faults on CPU access. */
 #define AMDGPU_INFO_NUM_VRAM_CPU_PAGE_FAULTS   0x1E
 #define AMDGPU_INFO_VRAM_LOST_COUNTER          0x1F