[PATCH 0/8] amdgpu/pm: Powerplay API for smu
Darren Powell
darren.powell at amd.com
Tue Feb 23 04:20:24 UTC 2021
=== Description ===
Patches to add the Powerplay API to smu and simplify dpm/pm calling code
=== Patch Summary ===
linux: (git at gitlab.freedesktop.org:agd5f/linux.git) origin/amd-staging-drm-next @ 317990c7e076
+ linux-d0f58ed28940 0001 amdgpu/pm: Powerplay API for smu , added get_performance_level
+ linux-967cbf5a4913 0002 amdgpu/pm: Powerplay API for smu , changed 6 dpm reset functions to use API
+ linux-33609db56fc2 0003 amdgpu/pm: Powerplay API for smu , changed 6 pm hwmon fan functions to use API
+ linux-b0fc029cae9a 0004 amdgpu/pm: Powerplay API for smu , changed 9 pm power functions to use API
+ linux-652a3e289f65 0005 amdgpu/pm: Powerplay API for smu , changed 5 dpm powergating & sensor functions to use API
+ linux-543e989b1fff 0006 amdgpu/pm: Powerplay API for smu , changes to clock and profile mode functions
+ linux-d41572ad4199 0007 amdgpu/pm: Powerplay API for smu , changed 4 dpm functions to use API
+ linux-6576162aaf40 0008 amdgpu/pm: Powerplay API for smu , updates to some pm functions
=== Versions ===
* Version 3 Updates
0003 Add a wrapper function to set_fan_control_mode for Powerplay API
Resolved context clashes caused by commits cc8f099288eac, 9485ed36411b7, 66727e187083f
0004 Removed smu implementation of powerplay get_power_limit, which clashed with commit dfb3bb7fccb37
Resolved context clashes caused by commits 9485ed36411b7, 766e03739bce7
0006 Updated to include new clocks vclk, dclk, od_vddgfx_offset, od_cclk added in commits 771fc82ffc710 & f40074fde207e
Added forward declaration for function smu_force_smuclk_levels to resolve clash with commit 9485ed36411b7
Resolved context clashes with commit dfb3bb7fccb37 and v3 updates to patches 0003, 0004
0007 Resolved context clashes with v3 updates to patches 0003
0008 Resolved context clashes with v3 updates to patches 0003
* Version 2 Updates
0001: updated the structure name to swsmu_pm_funcs
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
=== Test System ===
* DESKTOP(AMD FX-8350 + NAVI10(731F/ca), BIOS: F2)
+ ISO(Ubuntu 20.04.2 LTS)
+ Kernel(5.9.0-rc5-custom-01408-g317990c7e076)
=== 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_dpm_vclk <- /sys/class/drm/card0/device/pp_dpm_vclk
amdgpu_set_pp_dpm_vclk <- /sys/class/drm/card0/device/pp_dpm_vclk
amdgpu_get_pp_dpm_dclk <- /sys/class/drm/card0/device/pp_dpm_dclk
amdgpu_set_pp_dpm_dclk <- /sys/class/drm/card0/device/pp_dpm_dclk
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)
amdgpu_get_pp_dpm_vclk <- untested: needs other Hardware
amdgpu_set_pp_dpm_vclk <- untested: needs other Hardware
amdgpu_get_pp_dpm_dclk <- untested: needs other Hardware
amdgpu_set_pp_dpm_dclk <- untested: needs other Hardware
** 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
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
.../gpu/drm/amd/include/kgd_pp_interface.h | 4 +
drivers/gpu/drm/amd/pm/amdgpu_dpm.c | 228 ++----
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 707 ++++--------------
drivers/gpu/drm/amd/pm/inc/amdgpu_smu.h | 73 +-
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 366 +++++++--
5 files changed, 557 insertions(+), 821 deletions(-)
base-commit: 317990c7e076a0f4e4f0c3878e7e74f267ee029a
--
2.25.1
More information about the amd-gfx
mailing list