aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
Commit message (Collapse)AuthorAgeFilesLines
* drm/amd/powerplay: add limit of pp_feature for smu (v3)Likun Gao2019-03-191-2/+4
| | | | | | | | | | | | | | | | Move pp_feature from the struct of amd_powerplay to amdgpu_device. Add pp_feature limit for overdrive interface. v2: put pp_feature into struct amdgpu_pm. v3: merge feature_mask with pp_feature. Signed-off-by: Likun Gao <[email protected]> Reviewed-by: Kevin Wang <[email protected]> Suggested-by: Alex Deucher <[email protected]> Suggested-by: Huang Rui <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Reviewed-by: Huang Rui <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: support sysfs to set socclk, fclk, dcefclkLikun Gao2019-03-191-3/+9
| | | | | | | | | | | | | Add sys interface to set socclk, fclk and dcefclk for smu. Add feature_mask parameter for smu_upload_dpm_level as socclk, fclk and dcefclk have dependency, without feature_mask to point out specific clk will make it fail to set some clk. Fix the function of smu_unforce_dpm_levels. Signed-off-by: Likun Gao <[email protected]> Reviewed-by: Gui Chengming <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: support sysfs to get socclk, fclk, dcefclkLikun Gao2019-03-191-3/+9
| | | | | | | | | Add sys interface to get socclk, fclk and dcefclk for smu. Signed-off-by: Likun Gao <[email protected]> Reviewed-by: Gui Chengming <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: set fan target interface for hwmonLikun Gao2019-03-191-2/+10
| | | | | | | | | | Add fan1_target set interface to set fan speed for hwmon. Signed-off-by: Likun Gao <[email protected]> Reviewed-by: Kevin Wang <[email protected]> Reviewed-by: Huang Rui <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: implement fan1_enable hwmon interface for SMU11 (v2)Chengming Gui2019-03-191-7/+14
| | | | | | | | | | | | set the fan1_enable hwmon interface to call smu_get_fan_control_mode and smu_set_fan_control_mode. v2: fix print value. Signed-off-by: Chengming Gui <[email protected]> Reviewed-by: Huang Rui <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: implement pwm1_enable hwmon interface for SMU11 (v2)Chengming Gui2019-03-191-10/+21
| | | | | | | | | | | | | 1, set get_pwm1_enable and set_pwm1_enable functions to call smu_get_fan_control_mode and smu_set_fan_control_mode for SMU11 2, implement set_fan_control_mode function v2: add return value in set_fan_control_mode function Signed-off-by: Chengming Gui <[email protected]> Reviewed-by: Huang Rui <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: implement pwm1 hwmon interface for SMU11 (v2)Chengming Gui2019-03-191-4/+14
| | | | | | | | | | | | | | | | | added main functions: get_fan_speed_percent set_fan_speed_percent. added dependent functions: smc_fan_control set_fan_static_mode get_fan_speed_percent v2: fix coding style issue Signed-off-by: Chengming Gui <[email protected]> Reviewed-by: Huang Rui <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: implement power1_cap and power1_cap_max interface for ↵Chengming Gui2019-03-191-3/+11
| | | | | | | | | | | | | | | SMU11 (v2) add get_power_limit and set_power_limit functions to support hwmon for SMU11. v2: fix the code style issue. Signed-off-by: Chengming Gui <[email protected]> Reviewed-by: Huang Rui <[email protected]> Reviewed-by: Kevin Wang <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: add fan input interface for hwmonLikun Gao2019-03-191-2/+10
| | | | | | | | | | Add fan1_input and fan1_target interface to get fan speed info for hwmon. Signed-off-by: Likun Gao <[email protected]> Reviewed-by: Kevin Wang <[email protected]> Reviewed-by: Huang Rui <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: debugfs don't check powerplay when SW SMU is enabled.Kevin Wang2019-03-191-1/+1
| | | | | | | | | when sw smu is enabled, the powerplay interface isn't implemented. Signed-off-by: Kevin Wang <[email protected]> Reviewed-by: Huang Rui <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: Unify smu handle task function (v2)Likun Gao2019-03-191-18/+28
| | | | | | | | | | | | | | | | Unify power stade adjust function into smu_handle_task by the judgment of task_id. Move functions which have no relationship with smu version into the file of amdgpu_smu. Modified the function of smu_display_config_changed into two part. Unify some similiar function. v2: Correct the operation of upload dpm level when force dpm limit value. Signed-off-by: Likun Gao <[email protected]> Reviewed-by: Huang Rui <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: implement dpm enable functions of uvd & vce for smuKevin Wang2019-03-191-2/+14
| | | | | | | | | add function of dpm enable uvd & vce for extern module use. Signed-off-by: Kevin Wang <[email protected]> Reviewed-by: Huang Rui <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: hwmon don't check powerplay when sw smu is enabledKevin Wang2019-03-191-24/+28
| | | | | | | | | | when sw-smu is enabled, the driver won't init powerplay structure. Signed-off-by: Kevin Wang <[email protected]> Reviewed-by: Huang Rui <[email protected]> Reviewed-by: Likun Gao <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: add sys interface to set pp_od_clk_voltage for smuLikun Gao2019-03-191-10/+20
| | | | | | | | | | Add sys interface to set pp_od_clk_voltage for smu. Signed-off-by: Likun Gao <[email protected]> Reviewed-by: Huang Rui <[email protected]> Reviewed-by: Kevin Wang <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: add sys interface for set sclk_od/mclk_od for smuLikun Gao2019-03-191-12/+22
| | | | | | | | | | Add sys interface for set pp_sclk_od and pp_mclk_od for smu. Signed-off-by: Likun Gao <[email protected]> Reviewed-by: Huang Rui <[email protected]> Reviewed-by: Kevin Wang <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: add sys interface for pcie for smuLikun Gao2019-03-191-2/+6
| | | | | | | | | | | Add sys interface for set/get PCIE info for SMU. The related operate will do nothing as vega20 do not support it now. Signed-off-by: Likun Gao <[email protected]> Reviewed-by: Huang Rui <[email protected]> Reviewed-by: Kevin Wang <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: implement power_dpm_force_performance_level for SMU11Chengming Gui2019-03-191-3/+20
| | | | | | | | | | add get_performance_level and force_performance_level to implement the sys interface for SMU11. Signed-off-by: Chengming Gui <[email protected]> Reviewed-by: Huang Rui <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: implement pp_power_profile_mode sys inerface for SMU11Chengming Gui2019-03-191-3/+6
| | | | | | | | | | | | | Add set/get power profile mode functions. Added dependency interfaces: 1) vega20_set_activity_monitor_coeff 2) vega20_get_activity_monitor_coeff 3) conv_power_profile_to_pplib_workload Signed-off-by: Chengming Gui <[email protected]> Reviewed-by: Huang Rui <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: implement power_dpm_state sys interface for SMU11Chengming Gui2019-03-191-1/+3
| | | | | | | | | | | Add functions to get/set dpm state for SMU11. Signed-off-by: Chengming Gui <[email protected]> Acked-by: Alex Deucher <[email protected]> Acked-by: Kevin Wang <[email protected]> Reviewd-by: Evan Quan <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: don't check hwmgr while using the sw smuHuang Rui2019-03-191-1/+1
| | | | | | | | | | While using the sw smu path, driver won't init hwmgr structure. Signed-off-by: Huang Rui <[email protected]> Reviewed-by: Kevin Wang <[email protected]> Reviewed-by: Likun Gao <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: get overdrive clock and voltage informationLikun Gao2019-03-191-1/+7
| | | | | | | | | | | Add sys interface to get overdrive clock and voltage information for smu11. Signed-off-by: Likun Gao <[email protected]> Reviewed-by: Kevin Wang <[email protected]> Reviewed-by: Evan Quan <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: print overdrive percentage information for smu11Likun Gao2019-03-191-2/+6
| | | | | | | | | | Add function to get sclk or mclk overdrive percentage information for smu11. Signed-off-by: Likun Gao <[email protected]> Reviewed-by: Kevin Wang <[email protected]> Reviewed-by: Evan Quan <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: implement sysfs of pp_force_state for sw-smuKevin Wang2019-03-191-0/+2
| | | | | | | | | | the SMU v11 doesn’t support pp_force_state so far, so we didn’t implement it. Signed-off-by: Kevin Wang <[email protected]> Reviewed-by: Huang Rui <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: implement sysfs of pp_cur_state functionKevin Wang2019-03-191-9/+15
| | | | | | | | | | | add function of smu_get_currente_state for sw-smu. v2: fix code typo error if (ret); Signed-off-by: Kevin Wang <[email protected]> Reviewed-by: Huang Rui <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: implement sysfs of get num states functionKevin Wang2019-03-191-2/+6
| | | | | | | | | | add function smu_get_power_num_state function for sw-smu. it's only for sysfs interface, the power state feature is not ready for sw-smu. Signed-off-by: Kevin Wang <[email protected]> Reviewed-by: Huang Rui <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: force clock levels for smu11Likun Gao2019-03-191-2/+6
| | | | | | | | | | Add function to set sclk or mclk level for smu11. Signed-off-by: Likun Gao <[email protected]> Reviewed-by: Evan Quan <[email protected]> Reviewed-by: Huang Rui <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: implement sysfs of pp_table for smu11 (v2)Kevin Wang2019-03-191-2/+12
| | | | | | | | | | | | | add pp_table sysfs interface for new sw-smu. get: return pptable raw data set: write pptable raw data to pptable, then reset smu (hw_fini -> hw_init) v2: fix mutex lock issue Signed-off-by: Kevin Wang <[email protected]> Reviewed-by: Huang Rui <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: implement sysfs of amdgpu_get_busy_percent for smu11Kevin Wang2019-03-191-39/+23
| | | | | | | | | | | add interface amdgpu_get_busy_percent for smu11 v2: convert data pointer type to uint32_t *. Signed-off-by: Kevin Wang <[email protected]> Reviewed-by: Huang Rui <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: implement is_support_sw_smu function for new smuKevin Wang2019-03-191-2/+2
| | | | | | | | | add this helper to check new sw-smu support. Signed-off-by: Kevin Wang <[email protected]> Reviewed-by: Huang Rui <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: print clock levels for smu11 (v2)Likun Gao2019-03-191-2/+7
| | | | | | | | | | | | Add function to print current levels for smu11. v2: expose get_current_clk_freq for smu v11. (Kevin) Signed-off-by: Likun Gao <[email protected]> Signed-off-by: Kevin Wang <[email protected]> Reviewed-by: Huang Rui <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amdgpu: Add missing power attribute to APU checkAlex Deucher2019-01-251-1/+2
| | | | | | | | Add missing power_average to visible check for power attributes for APUs. Was missed before. Reviewed-by: Evan Quan <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amdgpu: fix wrong APU judgementEvan Quan2019-01-251-2/+2
| | | | | | | | Fix the APU judgement to make it really work as expected. Signed-off-by: Evan Quan <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: support retrieving and adjusting dcefclock power levels V2Evan Quan2019-01-251-4/+55
| | | | | | | | | | | User can use "pp_dpm_dcefclk" to retrieve and adjust dcefclock power levels. V2: expose this interface for Vega10 and later ASICs only Signed-off-by: Evan Quan <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: support retrieving and adjusting fclock power levels V2Evan Quan2019-01-251-2/+51
| | | | | | | | | | | User can use "pp_dpm_fclk" to retrieve and adjust fclock power levels. V2: expose this interface for Vega20 and later ASICs only Signed-off-by: Evan Quan <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: support retrieving and adjusting SOC clock power levels V2Evan Quan2019-01-251-2/+52
| | | | | | | | | | | User can use "pp_dpm_socclk" to retrieve and adjust SOC clock power levels. V2: expose this interface for Vega10 and later ASICs only Signed-off-by: Evan Quan <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: support enabled ppfeatures retrieving and setting V3Evan Quan2019-01-251-0/+71
| | | | | | | | | | | | User can use "ppfeatures" sysfs interface to retrieve and set enabled powerplay features. V2: expose this feature for Vega10 and later dGPUs V3: squash in removal of unused variable (Alex) Signed-off-by: Evan Quan <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amdgpu: expose sclk and mclk via hwmonAlex Deucher2019-01-141-0/+93
| | | | | | | | | | | | | | Expose sclk (gfx clock) and mclk (memory clock) via hwmon compatible interface. hwmon does not actually formally specify a frequency type attribute, but these are compatible with the format of the other attributes exposed via hwmon. Units are hertz. freq1_input - GPU gfx/compute clock in hertz freq2_input - GPU memory clock in hertz (dGPU only) Reviewed-by: Evan Quan <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amdgpu: Add sysfs file for PCIe usage v5Kent Russell2019-01-141-0/+36
| | | | | | | | | | | | | | | | | Add a sysfs file that reports the number of bytes transmitted and received in the last second. This can be used to approximate the PCIe bandwidth usage over the last second. v2: Clarify use of mps as estimation of bandwidth v3: Don't make the file on APUs v4: Early exit for APUs in the read function, change output to display "packets-received packets-sent mps" v5: fix missing header for si (Alex) Signed-off-by: Kent Russell <[email protected]> Reviewed-by: Felix Kuehling <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: create pp_od_clk_voltage device file under OD supportEvan Quan2019-01-141-8/+14
| | | | | | | | Since pp_od_clk_voltage device file is for OD related sysfs operations. Signed-off-by: Evan Quan <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amdgpu: don't expose fan attributes on APUsAlex Deucher2018-11-301-0/+13
| | | | | | | They don't have a fan controller. Reviewed-by: Evan Quan <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd:Enable/Disable NBPSTATE on On/OFF of UVDGuttula, Suresh2018-11-261-0/+13
| | | | | | | | | | | | | We observe black lines (underflow) on display when playing a 4K video with UVD. On Disabling Low memory P state this issue is not seen. In this patch ,disabling low memory P state only when video size >= 4k. Multiple runs of power measurement shows no impact Signed-off-by: suresh guttula <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amdgpu: Retire amdgpu_ring.ready flag v4Andrey Grodzovsky2018-11-051-1/+1
| | | | | | | | | | | | | | | Start using drm_gpu_scheduler.ready isntead. v3: Add helper function to run ring test and set sched.ready flag status accordingly, clean explicit sched.ready sets from the IP specific files. v4: Add kerneldoc and rebase. Signed-off-by: Andrey Grodzovsky <[email protected]> Reviewed-by: Christian König <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: error out when force clock level under auto dpm mode V2Evan Quan2018-10-221-3/+12
| | | | | | | | | | | | Forcing clock level is supported under manual dpm mode only. Error out when trying to set under manual mode. Instead of doing nothing and reporting success. V2: update for mclk/pcie clock level settings also Signed-off-by: Evan Quan <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amdgpu: Always enable fan sensors for readRex Zhu2018-10-091-10/+0
| | | | | | | | don't need to set fan1_enable to read fan sensors. Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Rex Zhu <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amdgpu: Disable sysfs pwm1 if not in manual fan controlRex Zhu2018-10-091-0/+7
| | | | | | | | | | Following lm-sensors 3.0.0, Only enable pwm1 sysfs when fan control mode(pwm1_enable) in manual Reviewed-by: Evan Quan <[email protected]> Signed-off-by: Rex Zhu <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amdgpu: Add fan RPM setting via sysfsRex Zhu2018-10-091-3/+187
| | | | | | | | | | | | | | Add fan1_target for get/set fan speed in RPM unit Add fan1_min/fan1_max for get min, max fan speed in RPM unit Add fan1_enable to enable/disable the fan1 sensor v3: drop the hardcode value of min/max rpm in comments pointed out by Alex. v2: query the min/max rpm gpu support instand of hardcode value. Reviewed-by: Evan Quan <[email protected]> Signed-off-by: Rex Zhu <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amdgpu: print smc feature mask in debugfs amdgpu_pm_infoAlex Deucher2018-09-271-0/+5
| | | | | | | Print the enabled smc feature mask in amdgpu_pm_info for debugging. Reviewed-by: Rex Zhu <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: update OD to take voltage value instead of offsetEvan Quan2018-09-191-6/+6
| | | | | | | | | | With the latest SMC fw, we are able to get the voltage value for specific frequency point. So, we update the OD relates to take absolute voltage instead of offset. Signed-off-by: Evan Quan <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd/powerplay: added vega20 overdrive support V3Evan Quan2018-09-111-0/+45
| | | | | | | | | | | | | | | | | | Added vega20 overdrive support based on existing OD sysfs APIs. However, the OD logics are simplified on vega20. So, the behavior will be a little different and works only on some limited levels. V2: fix typo fix commit description revise error logs add support for clock OD V3: separate clock from voltage OD settings Signed-off-by: Evan Quan <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amdgpu: Remove dead code in amdgpu_pm.cRex Zhu2018-08-271-35/+0
| | | | | | | | | | As we have unify powergate_uvd/vce/mmhub to set_powergating_by_smu, and set_powergating_by_smu was supported by both dpm and powerplay. so remove the else case. Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Rex Zhu <[email protected]> Signed-off-by: Alex Deucher <[email protected]>