[PATCH 0/8] amdgpu/pm: Powerplay API for smu
Darren Powell
darren.powell at amd.com
Wed Jan 13 03:27:18 UTC 2021
=== Description ===
Patches to add the Powerplay API to smu and simplify dpm/pm calling code
* Version 2 Updates
0001: updated the structure name to swsmu_pm_funcs
0002: No Changes
0003: changed error return value of smu_get_fan_control_mode to AMD_FAN_CTRL_NONE
fixed type in amdgpu_hwmon_get_pwm1_enable() print statement
fixed indent flagged by checkpatch.pl
0004: remove check for error during swsmu amdgpu_dpm_get_pp_num_states() call to match previous powerplay behaviour
0005: add comment to highlight assignment that changes uint32_t value to int
fix errors flagged by checkpatch.pl
0006: fix errors flagged by checkpatch
0007: fix errors and warnings flagged by checkpatch
0008: No Changes
=== Test System ===
* DESKTOP(AMD FX-8350 + NAVI10(731F/ca), BIOS: F2)
+ ISO(Ubuntu 20.04.1 LTS)
+ Kernel(5.9.0-rc5-custom-pmcallback-00865-gd3b9ec1a13c9)
=== Patch Summary ===
linux: (git://people.freedesktop.org/~agd5f/linux) origin/amd-staging-drm-next @ d3b9ec1a13c9
+ b401b8ff07ca amdgpu/pm: Powerplay API for smu , added get_performance_level
+ 924fb45c2fc9 amdgpu/pm: Powerplay API for smu , changed 6 dpm reset functions to use API
+ 22459821a119 amdgpu/pm: Powerplay API for smu , changed 6 pm hwmon fan functions to use API
+ 9a1dff6ed4a4 amdgpu/pm: Powerplay API for smu , changed 9 pm power functions to use API
+ eeaf9dad054a amdgpu/pm: Powerplay API for smu , changed 5 dpm powergating & sensor functions to use API
+ c10bf38a4250 amdgpu/pm: Powerplay API for smu , changes to clock and profile mode functions
+ 73c150926ef3 amdgpu/pm: Powerplay API for smu , changed 4 dpm functions to use API
+ f840fb27c965 amdgpu/pm: Powerplay API for smu , updates to some pm functions
=== Tests ===
** 0001
amdgpu_get_power_dpm_force_performance_level() <- /sys/class/drm/card0/device/power_dpm_force_performance_level
** 0002
amdgpu_dpm_set_mp1_state <- systemctl suspend
amdgpu_dpm_mode2_reset <- untested: needs Arctic Islands Hardware (VEGAx, RAVEN)
amdgpu_dpm_switch_power_profile <- untested
amdgpu_dpm_set_xgmi_pstate <- untested: amdgpu_xgmi_set_pstate():411 pstate switching disabled
amdgpu_dpm_set_df_cstate <- untested: needs ras enabled hardware
amdgpu_dpm_enable_mgpu_fan_boost <- untested: needs multi-gpu hardware
** 0003
amdgpu_hwmon_get_pwm1_enable <- /sys/class/drm/card0/device/hwmon/hwmon?/pwm1_enable
amdgpu_hwmon_set_pwm1_enable <- /sys/class/drm/card0/device/hwmon/hwmon?/pwm1_enable
amdgpu_hwmon_set_pwm1 <- /sys/class/drm/card0/device/hwmon/hwmon?/pwm1
amdgpu_hwmon_get_pwm1 <- /sys/class/drm/card0/device/hwmon/hwmon?/pwm1
amdgpu_hwmon_get_fan1_input <- /sys/class/drm/card0/device/hwmon/hwmon?/fan1_input
amdgpu_hwmon_get_fan1_target <- /sys/class/drm/card0/device/hwmon/hwmon?/fan1_target
amdgpu_hwmon_set_fan1_target <- /sys/class/drm/card0/device/hwmon/hwmon?/fan1_target
amdgpu_hwmon_get_fan1_enable <- /sys/class/drm/card0/device/hwmon/hwmon?/fan1_enable
amdgpu_hwmon_set_fan1_enable <- /sys/class/drm/card0/device/hwmon/hwmon?/fan1_enable
** 0004
amdgpu_get_power_dpm_state <- /sys/class/drm/card0/device/power_dpm_state
amdgpu_set_power_dpm_force_performance_level <- /sys/class/drm/card0/device/power_dpm_force_performance_level
amdgpu_get_pp_num_states <- /sys/class/drm/card0/device/pp_num_states
amdgpu_get_pp_cur_state <- /sys/class/drm/card0/device/pp_cur_state
amdgpu_get_pp_table <- /sys/class/drm/card0/device/pp_table
amdgpu_get_pp_features <- /sys/class/drm/card0/device/pp_features
amdgpu_hwmon_show_power_cap_max <- /sys/class/drm/card0/device/hwmon/hwmon?/power1_cap_max
amdgpu_hwmon_show_power_cap <- /sys/class/drm/card0/device/hwmon/hwmon?/power1_cap
amdgpu_hwmon_set_power_cap <- /sys/class/drm/card0/device/hwmon/hwmon?/power1_cap
** 0005
amdgpu_dpm_baco_enter <- untested: called from runtime.pm
amdgpu_dpm_baco_exit <- untested: called from runtime.pm
amdgpu_dpm_is_baco_supported <- untested: needs other Hardware(cik, vi, soc15)
amdgpu_dpm_baco_reset <- untested: needs other Hardware(cik, vi, soc15)
** 0006
amdgpu_get_pp_dpm_sclk <- /sys/class/drm/card0/device/pp_dpm_sclk
amdgpu_set_pp_dpm_sclk <- /sys/class/drm/card0/device/pp_dpm_sclk
amdgpu_get_pp_dpm_mclk <- /sys/class/drm/card0/device/pp_dpm_mclk
amdgpu_set_pp_dpm_mclk <- /sys/class/drm/card0/device/pp_dpm_mclk
amdgpu_get_pp_dpm_socclk <- /sys/class/drm/card0/device/pp_dpm_socclk
amdgpu_set_pp_dpm_socclk <- /sys/class/drm/card0/device/pp_dpm_socclk
amdgpu_get_pp_dpm_fclk <- /sys/class/drm/card0/device/pp_dpm_fclk
amdgpu_set_pp_dpm_fclk <- /sys/class/drm/card0/device/pp_dpm_fclk
amdgpu_get_pp_dpm_dcefclk <- /sys/class/drm/card0/device/pp_dpm_dcefclk
amdgpu_set_pp_dpm_dcefclk <- /sys/class/drm/card0/device/pp_dpm_dcefclk
amdgpu_get_pp_dpm_pcie <- /sys/class/drm/card0/device/pp_dpm_pcie
amdgpu_set_pp_dpm_pcie <- /sys/class/drm/card0/device/pp_dpm_pcie
amdgpu_get_pp_power_profile_mode <- /sys/class/drm/card0/device/pp_power_profile_mode
amdgpu_set_pp_power_profile_mode <- /sys/class/drm/card0/device/pp_power_profile_mode
amdgpu_get_gpu_metrics <- /sys/class/drm/card0/device/gpu_metrics
** 0007
amdgpu_pm_compute_clocks <- untested
amdgpu_dpm_set_powergating_by_smu <- untested
amdgpu_dpm_get_mclk <- untested
amdgpu_dpm_get_sclk <- untested
** 0008
amdgpu_get_pp_od_clk_voltage <- /sys/class/drm/card0/device/pp_od_clk_voltage
amdgpu_set_pp_od_clk_voltage <- /sys/class/drm/card0/device/pp_od_clk_voltage
amdgpu_set_pp_table <- /sys/class/drm/card0/device/pp_table
amdgpu_set_power_dpm_force_performance_level <- /sys/class/drm/card0/device/power_dpm_force_performance_level
=== Summary of Untested Functions ===
** 0002
amdgpu_dpm_mode2_reset <- untested: needs Arctic Islands Hardware (VEGAx, RAVEN)
amdgpu_dpm_switch_power_profile <- untested: called during initialization
amdgpu_dpm_set_xgmi_pstate <- untested: amdgpu_xgmi_set_pstate():411 pstate switching disabled
amdgpu_dpm_set_df_cstate <- untested: needs ras enabled hardware
amdgpu_dpm_enable_mgpu_fan_boost <- untested: needs multi-gpu hardware
** 0005
amdgpu_dpm_baco_enter <- untested: called from runtime.pm
amdgpu_dpm_baco_exit <- untested: called from runtime.pm
amdgpu_dpm_is_baco_supported <- untested: needs other Hardware(cik, vi, soc15)
amdgpu_dpm_baco_reset <- untested: needs other Hardware(cik, vi, soc15)
** 0007
amdgpu_pm_compute_clocks <- untested
amdgpu_dpm_set_powergating_by_smu <- untested
amdgpu_dpm_get_mclk <- untested
amdgpu_dpm_get_sclk <- untested
** 0008
amdgpu_get_pp_od_clk_voltage <- file not found
amdgpu_set_pp_od_clk_voltage <- file not found
amdgpu_set_pp_table <- no binary data to test with
=== Cover Letter ===
Darren Powell (8):
amdgpu/pm: Powerplay API for smu , added get_performance_level
amdgpu/pm: Powerplay API for smu , changed 6 dpm reset functions to
use API
amdgpu/pm: Powerplay API for smu , changed 6 pm hwmon fan functions to
use API
amdgpu/pm: Powerplay API for smu , changed 9 pm power functions to use
API
amdgpu/pm: Powerplay API for smu , changed 5 dpm powergating & sensor
functions to use API
amdgpu/pm: Powerplay API for smu , changes to clock and profile mode
functions
amdgpu/pm: Powerplay API for smu , changed 4 dpm functions to use API
amdgpu/pm: Powerplay API for smu , updates to some pm functions
drivers/gpu/drm/amd/pm/amdgpu_dpm.c | 228 +++------
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 597 +++++-----------------
drivers/gpu/drm/amd/pm/inc/amdgpu_smu.h | 79 ++-
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 358 ++++++++++---
4 files changed, 534 insertions(+), 728 deletions(-)
--
2.25.1
More information about the amd-gfx
mailing list