summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/include
diff options
context:
space:
mode:
authorLi Ma <li.ma@amd.com>2023-10-11 22:51:50 +0800
committerAlex Deucher <alexander.deucher@amd.com>2023-10-13 11:36:17 -0400
commit49c775b783cb7de88461ca6c1385bd8c3e8b9b92 (patch)
treeb23a739acfa1ae3ef6466cc58219f6832f20f0fa /drivers/gpu/drm/amd/include
parent3bba4bc6a0ebf424648476290750a49dc8032730 (diff)
downloadlinux-49c775b783cb7de88461ca6c1385bd8c3e8b9b92.tar.gz
linux-49c775b783cb7de88461ca6c1385bd8c3e8b9b92.tar.bz2
linux-49c775b783cb7de88461ca6c1385bd8c3e8b9b92.zip
drm/amd/swsmu: update smu v14_0_0 header files and metrics table
Update driver if, pmfw and ppsmc header files. Add new gpu_metrics_v3_0 for metrics table updated in driver if and reserve legacy metrics table to maintain backward compatibility. --- v1: Update header files and add gpu_metrics_v3_0. v2: Update smu_types.h, smu headers and drop smu_cmn_get_smc_version in smu v14_0_0. Signed-off-by: Li Ma <li.ma@amd.com> Reviewed-by: Yifan Zhang <yifan1.zhang@amd.com> Reviewed-by: Kenneth Feng <kenneth.feng@amd.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/include')
-rw-r--r--drivers/gpu/drm/amd/include/kgd_pp_interface.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/include/kgd_pp_interface.h b/drivers/gpu/drm/amd/include/kgd_pp_interface.h
index 1d4620322a15..3201808c2dd8 100644
--- a/drivers/gpu/drm/amd/include/kgd_pp_interface.h
+++ b/drivers/gpu/drm/amd/include/kgd_pp_interface.h
@@ -1057,4 +1057,72 @@ struct gpu_metrics_v2_4 {
uint16_t average_soc_current;
uint16_t average_gfx_current;
};
+
+struct gpu_metrics_v3_0 {
+ struct metrics_table_header common_header;
+
+ /* Temperature */
+ /* gfx temperature on APUs */
+ uint16_t temperature_gfx;
+ /* soc temperature on APUs */
+ uint16_t temperature_soc;
+ /* CPU core temperature on APUs */
+ uint16_t temperature_core[16];
+ /* skin temperature on APUs */
+ uint16_t temperature_skin;
+
+ /* Utilization */
+ /* time filtered GFX busy % [0-100] */
+ uint16_t average_gfx_activity;
+ /* time filtered VCN busy % [0-100] */
+ uint16_t average_vcn_activity;
+ /* time filtered IPU per-column busy % [0-100] */
+ uint16_t average_ipu_activity[8];
+ /* time filtered per-core C0 residency % [0-100]*/
+ uint16_t average_core_c0_activity[16];
+ /* time filtered DRAM read bandwidth [GB/sec] */
+ uint16_t average_dram_reads;
+ /* time filtered DRAM write bandwidth [GB/sec] */
+ uint16_t average_dram_writes;
+
+ /* Driver attached timestamp (in ns) */
+ uint64_t system_clock_counter;
+
+ /* Power/Energy */
+ /* average dGPU + APU power on A + A platform */
+ uint32_t average_socket_power;
+ /* average IPU power [W] */
+ uint16_t average_ipu_power;
+ /* average APU power [W] */
+ uint32_t average_apu_power;
+ /* average dGPU power [W] */
+ uint32_t average_dgpu_power;
+ /* sum of core power across all cores in the socket [W] */
+ uint32_t average_core_power;
+ /* calculated core power [W] */
+ uint16_t core_power[16];
+ /* maximum IRM defined STAPM power limit [W] */
+ uint16_t stapm_power_limit;
+ /* time filtered STAPM power limit [W] */
+ uint16_t current_stapm_power_limit;
+
+ /* Average clocks */
+ uint16_t average_gfxclk_frequency;
+ uint16_t average_socclk_frequency;
+ uint16_t average_vpeclk_frequency;
+ uint16_t average_ipuclk_frequency;
+ uint16_t average_fclk_frequency;
+ uint16_t average_vclk_frequency;
+
+ /* Current clocks */
+ /* target core frequency */
+ uint16_t current_coreclk[16];
+ /* CCLK frequency limit enforced on classic cores [MHz] */
+ uint16_t current_core_maxfreq;
+ /* GFXCLK frequency limit enforced on GFX [MHz] */
+ uint16_t current_gfx_maxfreq;
+
+ /* Metrics table alpha filter time constant [us] */
+ uint32_t time_filter_alphavalue;
+};
#endif