• Home
  • Raw
  • Download

Lines Matching refs:adev

124 	struct amdgpu_device *adev = drm_to_adev(ddev);  in amdgpu_get_power_dpm_state()  local
125 const struct amd_pm_funcs *pp_funcs = adev->powerplay.pp_funcs; in amdgpu_get_power_dpm_state()
129 if (amdgpu_in_reset(adev)) in amdgpu_get_power_dpm_state()
131 if (adev->in_suspend && !adev->in_runpm) in amdgpu_get_power_dpm_state()
141 pm = amdgpu_dpm_get_current_power_state(adev); in amdgpu_get_power_dpm_state()
143 pm = adev->pm.dpm.user_state; in amdgpu_get_power_dpm_state()
160 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_set_power_dpm_state() local
164 if (amdgpu_in_reset(adev)) in amdgpu_set_power_dpm_state()
166 if (adev->in_suspend && !adev->in_runpm) in amdgpu_set_power_dpm_state()
184 if (is_support_sw_smu(adev)) { in amdgpu_set_power_dpm_state()
185 mutex_lock(&adev->pm.mutex); in amdgpu_set_power_dpm_state()
186 adev->pm.dpm.user_state = state; in amdgpu_set_power_dpm_state()
187 mutex_unlock(&adev->pm.mutex); in amdgpu_set_power_dpm_state()
188 } else if (adev->powerplay.pp_funcs->dispatch_tasks) { in amdgpu_set_power_dpm_state()
189 amdgpu_dpm_dispatch_task(adev, AMD_PP_TASK_ENABLE_USER_STATE, &state); in amdgpu_set_power_dpm_state()
191 mutex_lock(&adev->pm.mutex); in amdgpu_set_power_dpm_state()
192 adev->pm.dpm.user_state = state; in amdgpu_set_power_dpm_state()
193 mutex_unlock(&adev->pm.mutex); in amdgpu_set_power_dpm_state()
195 amdgpu_pm_compute_clocks(adev); in amdgpu_set_power_dpm_state()
268 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_get_power_dpm_force_performance_level() local
272 if (amdgpu_in_reset(adev)) in amdgpu_get_power_dpm_force_performance_level()
274 if (adev->in_suspend && !adev->in_runpm) in amdgpu_get_power_dpm_force_performance_level()
283 if (adev->powerplay.pp_funcs->get_performance_level) in amdgpu_get_power_dpm_force_performance_level()
284 level = amdgpu_dpm_get_performance_level(adev); in amdgpu_get_power_dpm_force_performance_level()
286 level = adev->pm.dpm.forced_level; in amdgpu_get_power_dpm_force_performance_level()
310 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_set_power_dpm_force_performance_level() local
311 const struct amd_pm_funcs *pp_funcs = adev->powerplay.pp_funcs; in amdgpu_set_power_dpm_force_performance_level()
316 if (amdgpu_in_reset(adev)) in amdgpu_set_power_dpm_force_performance_level()
318 if (adev->in_suspend && !adev->in_runpm) in amdgpu_set_power_dpm_force_performance_level()
352 current_level = amdgpu_dpm_get_performance_level(adev); in amdgpu_set_power_dpm_force_performance_level()
360 if (adev->asic_type == CHIP_RAVEN) { in amdgpu_set_power_dpm_force_performance_level()
361 if (!(adev->apu_flags & AMD_APU_IS_RAVEN2)) { in amdgpu_set_power_dpm_force_performance_level()
363 amdgpu_gfx_off_ctrl(adev, false); in amdgpu_set_power_dpm_force_performance_level()
365 amdgpu_gfx_off_ctrl(adev, true); in amdgpu_set_power_dpm_force_performance_level()
382 mutex_lock(&adev->pm.mutex); in amdgpu_set_power_dpm_force_performance_level()
383 if (adev->pm.dpm.thermal_active) { in amdgpu_set_power_dpm_force_performance_level()
384 mutex_unlock(&adev->pm.mutex); in amdgpu_set_power_dpm_force_performance_level()
389 ret = amdgpu_dpm_force_performance_level(adev, level); in amdgpu_set_power_dpm_force_performance_level()
391 mutex_unlock(&adev->pm.mutex); in amdgpu_set_power_dpm_force_performance_level()
396 adev->pm.dpm.forced_level = level; in amdgpu_set_power_dpm_force_performance_level()
398 mutex_unlock(&adev->pm.mutex); in amdgpu_set_power_dpm_force_performance_level()
411 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_get_pp_num_states() local
412 const struct amd_pm_funcs *pp_funcs = adev->powerplay.pp_funcs; in amdgpu_get_pp_num_states()
417 if (amdgpu_in_reset(adev)) in amdgpu_get_pp_num_states()
419 if (adev->in_suspend && !adev->in_runpm) in amdgpu_get_pp_num_states()
429 amdgpu_dpm_get_pp_num_states(adev, &data); in amdgpu_get_pp_num_states()
453 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_get_pp_cur_state() local
454 const struct amd_pm_funcs *pp_funcs = adev->powerplay.pp_funcs; in amdgpu_get_pp_cur_state()
459 if (amdgpu_in_reset(adev)) in amdgpu_get_pp_cur_state()
461 if (adev->in_suspend && !adev->in_runpm) in amdgpu_get_pp_cur_state()
472 pm = amdgpu_dpm_get_current_power_state(adev); in amdgpu_get_pp_cur_state()
473 amdgpu_dpm_get_pp_num_states(adev, &data); in amdgpu_get_pp_cur_state()
495 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_get_pp_force_state() local
497 if (amdgpu_in_reset(adev)) in amdgpu_get_pp_force_state()
499 if (adev->in_suspend && !adev->in_runpm) in amdgpu_get_pp_force_state()
502 if (adev->pp_force_state_enabled) in amdgpu_get_pp_force_state()
514 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_set_pp_force_state() local
519 if (amdgpu_in_reset(adev)) in amdgpu_set_pp_force_state()
521 if (adev->in_suspend && !adev->in_runpm) in amdgpu_set_pp_force_state()
525 adev->pp_force_state_enabled = false; in amdgpu_set_pp_force_state()
526 else if (is_support_sw_smu(adev)) in amdgpu_set_pp_force_state()
527 adev->pp_force_state_enabled = false; in amdgpu_set_pp_force_state()
528 else if (adev->powerplay.pp_funcs->dispatch_tasks && in amdgpu_set_pp_force_state()
529 adev->powerplay.pp_funcs->get_pp_num_states) { in amdgpu_set_pp_force_state()
538 amdgpu_dpm_get_pp_num_states(adev, &data); in amdgpu_set_pp_force_state()
550 amdgpu_dpm_dispatch_task(adev, in amdgpu_set_pp_force_state()
552 adev->pp_force_state_enabled = true; in amdgpu_set_pp_force_state()
577 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_get_pp_table() local
581 if (amdgpu_in_reset(adev)) in amdgpu_get_pp_table()
583 if (adev->in_suspend && !adev->in_runpm) in amdgpu_get_pp_table()
592 if (adev->powerplay.pp_funcs->get_pp_table) { in amdgpu_get_pp_table()
593 size = amdgpu_dpm_get_pp_table(adev, &table); in amdgpu_get_pp_table()
618 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_set_pp_table() local
621 if (amdgpu_in_reset(adev)) in amdgpu_set_pp_table()
623 if (adev->in_suspend && !adev->in_runpm) in amdgpu_set_pp_table()
632 ret = amdgpu_dpm_set_pp_table(adev, buf, count); in amdgpu_set_pp_table()
795 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_set_pp_od_clk_voltage() local
805 if (amdgpu_in_reset(adev)) in amdgpu_set_pp_od_clk_voltage()
807 if (adev->in_suspend && !adev->in_runpm) in amdgpu_set_pp_od_clk_voltage()
861 if (adev->powerplay.pp_funcs->set_fine_grain_clk_vol) { in amdgpu_set_pp_od_clk_voltage()
862 ret = amdgpu_dpm_set_fine_grain_clk_vol(adev, type, in amdgpu_set_pp_od_clk_voltage()
872 if (adev->powerplay.pp_funcs->odn_edit_dpm_table) { in amdgpu_set_pp_od_clk_voltage()
873 ret = amdgpu_dpm_odn_edit_dpm_table(adev, type, in amdgpu_set_pp_od_clk_voltage()
883 if (adev->powerplay.pp_funcs->dispatch_tasks) { in amdgpu_set_pp_od_clk_voltage()
884 amdgpu_dpm_dispatch_task(adev, in amdgpu_set_pp_od_clk_voltage()
908 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_get_pp_od_clk_voltage() local
912 if (amdgpu_in_reset(adev)) in amdgpu_get_pp_od_clk_voltage()
914 if (adev->in_suspend && !adev->in_runpm) in amdgpu_get_pp_od_clk_voltage()
923 if (adev->powerplay.pp_funcs->print_clock_levels) { in amdgpu_get_pp_od_clk_voltage()
924 size = amdgpu_dpm_print_clock_levels(adev, OD_SCLK, buf); in amdgpu_get_pp_od_clk_voltage()
925 size += amdgpu_dpm_print_clock_levels(adev, OD_MCLK, buf+size); in amdgpu_get_pp_od_clk_voltage()
926 size += amdgpu_dpm_print_clock_levels(adev, OD_VDDC_CURVE, buf+size); in amdgpu_get_pp_od_clk_voltage()
927 size += amdgpu_dpm_print_clock_levels(adev, OD_VDDGFX_OFFSET, buf+size); in amdgpu_get_pp_od_clk_voltage()
928 size += amdgpu_dpm_print_clock_levels(adev, OD_RANGE, buf+size); in amdgpu_get_pp_od_clk_voltage()
929 size += amdgpu_dpm_print_clock_levels(adev, OD_CCLK, buf+size); in amdgpu_get_pp_od_clk_voltage()
961 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_set_pp_features() local
965 if (amdgpu_in_reset(adev)) in amdgpu_set_pp_features()
967 if (adev->in_suspend && !adev->in_runpm) in amdgpu_set_pp_features()
980 if (adev->powerplay.pp_funcs->set_ppfeature_status) { in amdgpu_set_pp_features()
981 ret = amdgpu_dpm_set_ppfeature_status(adev, featuremask); in amdgpu_set_pp_features()
999 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_get_pp_features() local
1003 if (amdgpu_in_reset(adev)) in amdgpu_get_pp_features()
1005 if (adev->in_suspend && !adev->in_runpm) in amdgpu_get_pp_features()
1014 if (adev->powerplay.pp_funcs->get_ppfeature_status) in amdgpu_get_pp_features()
1015 size = amdgpu_dpm_get_ppfeature_status(adev, buf); in amdgpu_get_pp_features()
1060 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_get_pp_dpm_clock() local
1064 if (amdgpu_in_reset(adev)) in amdgpu_get_pp_dpm_clock()
1066 if (adev->in_suspend && !adev->in_runpm) in amdgpu_get_pp_dpm_clock()
1075 if (adev->powerplay.pp_funcs->print_clock_levels) in amdgpu_get_pp_dpm_clock()
1076 size = amdgpu_dpm_print_clock_levels(adev, type, buf); in amdgpu_get_pp_dpm_clock()
1127 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_set_pp_dpm_clock() local
1131 if (amdgpu_in_reset(adev)) in amdgpu_set_pp_dpm_clock()
1133 if (adev->in_suspend && !adev->in_runpm) in amdgpu_set_pp_dpm_clock()
1146 if (adev->powerplay.pp_funcs->force_clock_level) in amdgpu_set_pp_dpm_clock()
1147 ret = amdgpu_dpm_force_clock_level(adev, type, mask); in amdgpu_set_pp_dpm_clock()
1285 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_get_pp_sclk_od() local
1289 if (amdgpu_in_reset(adev)) in amdgpu_get_pp_sclk_od()
1291 if (adev->in_suspend && !adev->in_runpm) in amdgpu_get_pp_sclk_od()
1300 if (is_support_sw_smu(adev)) in amdgpu_get_pp_sclk_od()
1302 else if (adev->powerplay.pp_funcs->get_sclk_od) in amdgpu_get_pp_sclk_od()
1303 value = amdgpu_dpm_get_sclk_od(adev); in amdgpu_get_pp_sclk_od()
1317 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_set_pp_sclk_od() local
1321 if (amdgpu_in_reset(adev)) in amdgpu_set_pp_sclk_od()
1323 if (adev->in_suspend && !adev->in_runpm) in amdgpu_set_pp_sclk_od()
1337 if (is_support_sw_smu(adev)) { in amdgpu_set_pp_sclk_od()
1340 if (adev->powerplay.pp_funcs->set_sclk_od) in amdgpu_set_pp_sclk_od()
1341 amdgpu_dpm_set_sclk_od(adev, (uint32_t)value); in amdgpu_set_pp_sclk_od()
1343 if (adev->powerplay.pp_funcs->dispatch_tasks) { in amdgpu_set_pp_sclk_od()
1344 amdgpu_dpm_dispatch_task(adev, AMD_PP_TASK_READJUST_POWER_STATE, NULL); in amdgpu_set_pp_sclk_od()
1346 adev->pm.dpm.current_ps = adev->pm.dpm.boot_ps; in amdgpu_set_pp_sclk_od()
1347 amdgpu_pm_compute_clocks(adev); in amdgpu_set_pp_sclk_od()
1362 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_get_pp_mclk_od() local
1366 if (amdgpu_in_reset(adev)) in amdgpu_get_pp_mclk_od()
1368 if (adev->in_suspend && !adev->in_runpm) in amdgpu_get_pp_mclk_od()
1377 if (is_support_sw_smu(adev)) in amdgpu_get_pp_mclk_od()
1379 else if (adev->powerplay.pp_funcs->get_mclk_od) in amdgpu_get_pp_mclk_od()
1380 value = amdgpu_dpm_get_mclk_od(adev); in amdgpu_get_pp_mclk_od()
1394 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_set_pp_mclk_od() local
1398 if (amdgpu_in_reset(adev)) in amdgpu_set_pp_mclk_od()
1400 if (adev->in_suspend && !adev->in_runpm) in amdgpu_set_pp_mclk_od()
1414 if (is_support_sw_smu(adev)) { in amdgpu_set_pp_mclk_od()
1417 if (adev->powerplay.pp_funcs->set_mclk_od) in amdgpu_set_pp_mclk_od()
1418 amdgpu_dpm_set_mclk_od(adev, (uint32_t)value); in amdgpu_set_pp_mclk_od()
1420 if (adev->powerplay.pp_funcs->dispatch_tasks) { in amdgpu_set_pp_mclk_od()
1421 amdgpu_dpm_dispatch_task(adev, AMD_PP_TASK_READJUST_POWER_STATE, NULL); in amdgpu_set_pp_mclk_od()
1423 adev->pm.dpm.current_ps = adev->pm.dpm.boot_ps; in amdgpu_set_pp_mclk_od()
1424 amdgpu_pm_compute_clocks(adev); in amdgpu_set_pp_mclk_od()
1459 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_get_pp_power_profile_mode() local
1463 if (amdgpu_in_reset(adev)) in amdgpu_get_pp_power_profile_mode()
1465 if (adev->in_suspend && !adev->in_runpm) in amdgpu_get_pp_power_profile_mode()
1474 if (adev->powerplay.pp_funcs->get_power_profile_mode) in amdgpu_get_pp_power_profile_mode()
1475 size = amdgpu_dpm_get_power_profile_mode(adev, buf); in amdgpu_get_pp_power_profile_mode()
1493 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_set_pp_power_profile_mode() local
1503 if (amdgpu_in_reset(adev)) in amdgpu_set_pp_power_profile_mode()
1505 if (adev->in_suspend && !adev->in_runpm) in amdgpu_set_pp_power_profile_mode()
1540 if (adev->powerplay.pp_funcs->set_power_profile_mode) in amdgpu_set_pp_power_profile_mode()
1541 ret = amdgpu_dpm_set_power_profile_mode(adev, parameter, parameter_size); in amdgpu_set_pp_power_profile_mode()
1565 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_get_gpu_busy_percent() local
1568 if (amdgpu_in_reset(adev)) in amdgpu_get_gpu_busy_percent()
1570 if (adev->in_suspend && !adev->in_runpm) in amdgpu_get_gpu_busy_percent()
1580 r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GPU_LOAD, in amdgpu_get_gpu_busy_percent()
1605 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_get_mem_busy_percent() local
1608 if (amdgpu_in_reset(adev)) in amdgpu_get_mem_busy_percent()
1610 if (adev->in_suspend && !adev->in_runpm) in amdgpu_get_mem_busy_percent()
1620 r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_MEM_LOAD, in amdgpu_get_mem_busy_percent()
1649 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_get_pcie_bw() local
1653 if (amdgpu_in_reset(adev)) in amdgpu_get_pcie_bw()
1655 if (adev->in_suspend && !adev->in_runpm) in amdgpu_get_pcie_bw()
1658 if (adev->flags & AMD_IS_APU) in amdgpu_get_pcie_bw()
1661 if (!adev->asic_funcs->get_pcie_usage) in amdgpu_get_pcie_bw()
1670 amdgpu_asic_get_pcie_usage(adev, &count0, &count1); in amdgpu_get_pcie_bw()
1676 count0, count1, pcie_get_mps(adev->pdev)); in amdgpu_get_pcie_bw()
1694 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_get_unique_id() local
1696 if (amdgpu_in_reset(adev)) in amdgpu_get_unique_id()
1698 if (adev->in_suspend && !adev->in_runpm) in amdgpu_get_unique_id()
1701 if (adev->unique_id) in amdgpu_get_unique_id()
1702 return sysfs_emit(buf, "%016llx\n", adev->unique_id); in amdgpu_get_unique_id()
1727 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_get_thermal_throttling_logging() local
1730 adev_to_drm(adev)->unique, in amdgpu_get_thermal_throttling_logging()
1731 atomic_read(&adev->throttling_logging_enabled) ? "enabled" : "disabled", in amdgpu_get_thermal_throttling_logging()
1732 adev->throttling_logging_rs.interval / HZ + 1); in amdgpu_get_thermal_throttling_logging()
1741 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_set_thermal_throttling_logging() local
1754 raw_spin_lock_irqsave(&adev->throttling_logging_rs.lock, flags); in amdgpu_set_thermal_throttling_logging()
1759 adev->throttling_logging_rs.interval = in amdgpu_set_thermal_throttling_logging()
1761 adev->throttling_logging_rs.begin = 0; in amdgpu_set_thermal_throttling_logging()
1762 adev->throttling_logging_rs.printed = 0; in amdgpu_set_thermal_throttling_logging()
1763 adev->throttling_logging_rs.missed = 0; in amdgpu_set_thermal_throttling_logging()
1764 raw_spin_unlock_irqrestore(&adev->throttling_logging_rs.lock, flags); in amdgpu_set_thermal_throttling_logging()
1766 atomic_set(&adev->throttling_logging_enabled, 1); in amdgpu_set_thermal_throttling_logging()
1768 atomic_set(&adev->throttling_logging_enabled, 0); in amdgpu_set_thermal_throttling_logging()
1791 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_get_gpu_metrics() local
1796 if (amdgpu_in_reset(adev)) in amdgpu_get_gpu_metrics()
1798 if (adev->in_suspend && !adev->in_runpm) in amdgpu_get_gpu_metrics()
1807 if (adev->powerplay.pp_funcs->get_gpu_metrics) in amdgpu_get_gpu_metrics()
1808 size = amdgpu_dpm_get_gpu_metrics(adev, &gpu_metrics); in amdgpu_get_gpu_metrics()
1839 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_get_smartshift_apu_power() local
1843 if (amdgpu_in_reset(adev)) in amdgpu_get_smartshift_apu_power()
1845 if (adev->in_suspend && !adev->in_runpm) in amdgpu_get_smartshift_apu_power()
1854 r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_SS_APU_SHARE, in amdgpu_get_smartshift_apu_power()
1882 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_get_smartshift_dgpu_power() local
1886 if (amdgpu_in_reset(adev)) in amdgpu_get_smartshift_dgpu_power()
1888 if (adev->in_suspend && !adev->in_runpm) in amdgpu_get_smartshift_dgpu_power()
1897 r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_SS_DGPU_SHARE, in amdgpu_get_smartshift_dgpu_power()
1936 struct amdgpu_device *adev = drm_to_adev(ddev); in amdgpu_set_smartshift_bias() local
1940 if (amdgpu_in_reset(adev)) in amdgpu_set_smartshift_bias()
1942 if (adev->in_suspend && !adev->in_runpm) in amdgpu_set_smartshift_bias()
1972 static int ss_power_attr_update(struct amdgpu_device *adev, struct amdgpu_device_attr *attr, in ss_power_attr_update() argument
1979 else if ((adev->flags & AMD_IS_PX) && in ss_power_attr_update()
1980 !amdgpu_device_supports_smart_shift(adev_to_drm(adev))) in ss_power_attr_update()
1982 else if (amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_SS_APU_SHARE, in ss_power_attr_update()
1985 else if (amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_SS_DGPU_SHARE, in ss_power_attr_update()
1992 static int ss_bias_attr_update(struct amdgpu_device *adev, struct amdgpu_device_attr *attr, in ss_bias_attr_update() argument
1997 if (!amdgpu_device_supports_smart_shift(adev_to_drm(adev))) in ss_bias_attr_update()
1999 else if (amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_SS_APU_SHARE, in ss_bias_attr_update()
2002 else if (amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_SS_DGPU_SHARE, in ss_bias_attr_update()
2043 static int default_attr_update(struct amdgpu_device *adev, struct amdgpu_device_attr *attr, in default_attr_update() argument
2048 struct pp_hwmgr *hwmgr = adev->powerplay.pp_handle; in default_attr_update()
2049 enum amd_asic_type asic_type = adev->asic_type; in default_attr_update()
2071 if ((is_support_sw_smu(adev) && adev->smu.od_enabled) || in default_attr_update()
2072 (is_support_sw_smu(adev) && adev->smu.is_apu) || in default_attr_update()
2073 (!is_support_sw_smu(adev) && hwmgr->od_enabled)) in default_attr_update()
2076 if (adev->flags & AMD_IS_APU || asic_type == CHIP_VEGA10) in default_attr_update()
2080 if (adev->flags & AMD_IS_APU) in default_attr_update()
2088 if (adev->flags & AMD_IS_APU || asic_type < CHIP_VEGA10) in default_attr_update()
2125 if (amdgpu_sriov_vf(adev) && !amdgpu_sriov_is_pp_one_vf(adev)) { in default_attr_update()
2136 static int amdgpu_device_attr_create(struct amdgpu_device *adev, in amdgpu_device_attr_create() argument
2146 int (*attr_update)(struct amdgpu_device *adev, struct amdgpu_device_attr *attr, in amdgpu_device_attr_create()
2157 ret = attr_update(adev, attr, mask, &attr_states); in amdgpu_device_attr_create()
2159 dev_err(adev->dev, "failed to update device file %s, ret = %d\n", in amdgpu_device_attr_create()
2167 ret = device_create_file(adev->dev, dev_attr); in amdgpu_device_attr_create()
2169 dev_err(adev->dev, "failed to create device file %s, ret = %d\n", in amdgpu_device_attr_create()
2185 static void amdgpu_device_attr_remove(struct amdgpu_device *adev, struct amdgpu_device_attr *attr) in amdgpu_device_attr_remove() argument
2189 device_remove_file(adev->dev, dev_attr); in amdgpu_device_attr_remove()
2192 static void amdgpu_device_attr_remove_groups(struct amdgpu_device *adev,
2195 static int amdgpu_device_attr_create_groups(struct amdgpu_device *adev, in amdgpu_device_attr_create_groups() argument
2205 ret = amdgpu_device_attr_create(adev, &attrs[i], mask, attr_list); in amdgpu_device_attr_create_groups()
2213 amdgpu_device_attr_remove_groups(adev, attr_list); in amdgpu_device_attr_create_groups()
2218 static void amdgpu_device_attr_remove_groups(struct amdgpu_device *adev, in amdgpu_device_attr_remove_groups() argument
2227 amdgpu_device_attr_remove(adev, entry->attr); in amdgpu_device_attr_remove_groups()
2237 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_show_temp() local
2241 if (amdgpu_in_reset(adev)) in amdgpu_hwmon_show_temp()
2243 if (adev->in_suspend && !adev->in_runpm) in amdgpu_hwmon_show_temp()
2249 r = pm_runtime_get_sync(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_temp()
2251 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_temp()
2258 r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_HOTSPOT_TEMP, in amdgpu_hwmon_show_temp()
2263 r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_EDGE_TEMP, in amdgpu_hwmon_show_temp()
2268 r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_MEM_TEMP, in amdgpu_hwmon_show_temp()
2276 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_temp()
2277 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_temp()
2289 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_show_temp_thresh() local
2294 temp = adev->pm.dpm.thermal.min_temp; in amdgpu_hwmon_show_temp_thresh()
2296 temp = adev->pm.dpm.thermal.max_temp; in amdgpu_hwmon_show_temp_thresh()
2305 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_show_hotspot_temp_thresh() local
2310 temp = adev->pm.dpm.thermal.min_hotspot_temp; in amdgpu_hwmon_show_hotspot_temp_thresh()
2312 temp = adev->pm.dpm.thermal.max_hotspot_crit_temp; in amdgpu_hwmon_show_hotspot_temp_thresh()
2321 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_show_mem_temp_thresh() local
2326 temp = adev->pm.dpm.thermal.min_mem_temp; in amdgpu_hwmon_show_mem_temp_thresh()
2328 temp = adev->pm.dpm.thermal.max_mem_crit_temp; in amdgpu_hwmon_show_mem_temp_thresh()
2349 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_show_temp_emergency() local
2358 temp = adev->pm.dpm.thermal.max_hotspot_emergency_temp; in amdgpu_hwmon_show_temp_emergency()
2361 temp = adev->pm.dpm.thermal.max_edge_emergency_temp; in amdgpu_hwmon_show_temp_emergency()
2364 temp = adev->pm.dpm.thermal.max_mem_emergency_temp; in amdgpu_hwmon_show_temp_emergency()
2375 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_get_pwm1_enable() local
2379 if (amdgpu_in_reset(adev)) in amdgpu_hwmon_get_pwm1_enable()
2381 if (adev->in_suspend && !adev->in_runpm) in amdgpu_hwmon_get_pwm1_enable()
2384 ret = pm_runtime_get_sync(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_pwm1_enable()
2386 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_pwm1_enable()
2390 if (!adev->powerplay.pp_funcs->get_fan_control_mode) { in amdgpu_hwmon_get_pwm1_enable()
2391 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_pwm1_enable()
2392 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_pwm1_enable()
2396 pwm_mode = amdgpu_dpm_get_fan_control_mode(adev); in amdgpu_hwmon_get_pwm1_enable()
2398 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_pwm1_enable()
2399 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_pwm1_enable()
2409 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_set_pwm1_enable() local
2413 if (amdgpu_in_reset(adev)) in amdgpu_hwmon_set_pwm1_enable()
2415 if (adev->in_suspend && !adev->in_runpm) in amdgpu_hwmon_set_pwm1_enable()
2422 ret = pm_runtime_get_sync(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_pwm1_enable()
2424 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_pwm1_enable()
2428 if (!adev->powerplay.pp_funcs->set_fan_control_mode) { in amdgpu_hwmon_set_pwm1_enable()
2429 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_pwm1_enable()
2430 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_pwm1_enable()
2434 amdgpu_dpm_set_fan_control_mode(adev, value); in amdgpu_hwmon_set_pwm1_enable()
2436 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_pwm1_enable()
2437 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_pwm1_enable()
2460 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_set_pwm1() local
2465 if (amdgpu_in_reset(adev)) in amdgpu_hwmon_set_pwm1()
2467 if (adev->in_suspend && !adev->in_runpm) in amdgpu_hwmon_set_pwm1()
2470 err = pm_runtime_get_sync(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_pwm1()
2472 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_pwm1()
2476 pwm_mode = amdgpu_dpm_get_fan_control_mode(adev); in amdgpu_hwmon_set_pwm1()
2479 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_pwm1()
2480 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_pwm1()
2486 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_pwm1()
2487 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_pwm1()
2491 if (adev->powerplay.pp_funcs->set_fan_speed_pwm) in amdgpu_hwmon_set_pwm1()
2492 err = amdgpu_dpm_set_fan_speed_pwm(adev, value); in amdgpu_hwmon_set_pwm1()
2496 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_pwm1()
2497 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_pwm1()
2509 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_get_pwm1() local
2513 if (amdgpu_in_reset(adev)) in amdgpu_hwmon_get_pwm1()
2515 if (adev->in_suspend && !adev->in_runpm) in amdgpu_hwmon_get_pwm1()
2518 err = pm_runtime_get_sync(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_pwm1()
2520 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_pwm1()
2524 if (adev->powerplay.pp_funcs->get_fan_speed_pwm) in amdgpu_hwmon_get_pwm1()
2525 err = amdgpu_dpm_get_fan_speed_pwm(adev, &speed); in amdgpu_hwmon_get_pwm1()
2529 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_pwm1()
2530 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_pwm1()
2542 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_get_fan1_input() local
2546 if (amdgpu_in_reset(adev)) in amdgpu_hwmon_get_fan1_input()
2548 if (adev->in_suspend && !adev->in_runpm) in amdgpu_hwmon_get_fan1_input()
2551 err = pm_runtime_get_sync(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_input()
2553 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_input()
2557 if (adev->powerplay.pp_funcs->get_fan_speed_rpm) in amdgpu_hwmon_get_fan1_input()
2558 err = amdgpu_dpm_get_fan_speed_rpm(adev, &speed); in amdgpu_hwmon_get_fan1_input()
2562 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_input()
2563 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_input()
2575 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_get_fan1_min() local
2580 if (amdgpu_in_reset(adev)) in amdgpu_hwmon_get_fan1_min()
2582 if (adev->in_suspend && !adev->in_runpm) in amdgpu_hwmon_get_fan1_min()
2585 r = pm_runtime_get_sync(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_min()
2587 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_min()
2591 r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_MIN_FAN_RPM, in amdgpu_hwmon_get_fan1_min()
2594 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_min()
2595 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_min()
2607 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_get_fan1_max() local
2612 if (amdgpu_in_reset(adev)) in amdgpu_hwmon_get_fan1_max()
2614 if (adev->in_suspend && !adev->in_runpm) in amdgpu_hwmon_get_fan1_max()
2617 r = pm_runtime_get_sync(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_max()
2619 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_max()
2623 r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_MAX_FAN_RPM, in amdgpu_hwmon_get_fan1_max()
2626 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_max()
2627 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_max()
2639 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_get_fan1_target() local
2643 if (amdgpu_in_reset(adev)) in amdgpu_hwmon_get_fan1_target()
2645 if (adev->in_suspend && !adev->in_runpm) in amdgpu_hwmon_get_fan1_target()
2648 err = pm_runtime_get_sync(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_target()
2650 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_target()
2654 if (adev->powerplay.pp_funcs->get_fan_speed_rpm) in amdgpu_hwmon_get_fan1_target()
2655 err = amdgpu_dpm_get_fan_speed_rpm(adev, &rpm); in amdgpu_hwmon_get_fan1_target()
2659 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_target()
2660 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_target()
2672 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_set_fan1_target() local
2677 if (amdgpu_in_reset(adev)) in amdgpu_hwmon_set_fan1_target()
2679 if (adev->in_suspend && !adev->in_runpm) in amdgpu_hwmon_set_fan1_target()
2682 err = pm_runtime_get_sync(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_fan1_target()
2684 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_fan1_target()
2688 pwm_mode = amdgpu_dpm_get_fan_control_mode(adev); in amdgpu_hwmon_set_fan1_target()
2691 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_fan1_target()
2692 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_fan1_target()
2698 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_fan1_target()
2699 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_fan1_target()
2703 if (adev->powerplay.pp_funcs->set_fan_speed_rpm) in amdgpu_hwmon_set_fan1_target()
2704 err = amdgpu_dpm_set_fan_speed_rpm(adev, value); in amdgpu_hwmon_set_fan1_target()
2708 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_fan1_target()
2709 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_fan1_target()
2721 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_get_fan1_enable() local
2725 if (amdgpu_in_reset(adev)) in amdgpu_hwmon_get_fan1_enable()
2727 if (adev->in_suspend && !adev->in_runpm) in amdgpu_hwmon_get_fan1_enable()
2730 ret = pm_runtime_get_sync(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_enable()
2732 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_enable()
2736 if (!adev->powerplay.pp_funcs->get_fan_control_mode) { in amdgpu_hwmon_get_fan1_enable()
2737 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_enable()
2738 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_enable()
2742 pwm_mode = amdgpu_dpm_get_fan_control_mode(adev); in amdgpu_hwmon_get_fan1_enable()
2744 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_enable()
2745 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_get_fan1_enable()
2755 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_set_fan1_enable() local
2760 if (amdgpu_in_reset(adev)) in amdgpu_hwmon_set_fan1_enable()
2762 if (adev->in_suspend && !adev->in_runpm) in amdgpu_hwmon_set_fan1_enable()
2776 err = pm_runtime_get_sync(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_fan1_enable()
2778 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_fan1_enable()
2782 if (!adev->powerplay.pp_funcs->set_fan_control_mode) { in amdgpu_hwmon_set_fan1_enable()
2783 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_fan1_enable()
2784 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_fan1_enable()
2787 amdgpu_dpm_set_fan_control_mode(adev, pwm_mode); in amdgpu_hwmon_set_fan1_enable()
2789 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_fan1_enable()
2790 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_fan1_enable()
2799 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_show_vddgfx() local
2803 if (amdgpu_in_reset(adev)) in amdgpu_hwmon_show_vddgfx()
2805 if (adev->in_suspend && !adev->in_runpm) in amdgpu_hwmon_show_vddgfx()
2808 r = pm_runtime_get_sync(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_vddgfx()
2810 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_vddgfx()
2815 r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_VDDGFX, in amdgpu_hwmon_show_vddgfx()
2818 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_vddgfx()
2819 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_vddgfx()
2838 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_show_vddnb() local
2842 if (amdgpu_in_reset(adev)) in amdgpu_hwmon_show_vddnb()
2844 if (adev->in_suspend && !adev->in_runpm) in amdgpu_hwmon_show_vddnb()
2848 if (!(adev->flags & AMD_IS_APU)) in amdgpu_hwmon_show_vddnb()
2851 r = pm_runtime_get_sync(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_vddnb()
2853 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_vddnb()
2858 r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_VDDNB, in amdgpu_hwmon_show_vddnb()
2861 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_vddnb()
2862 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_vddnb()
2881 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_show_power_avg() local
2886 if (amdgpu_in_reset(adev)) in amdgpu_hwmon_show_power_avg()
2888 if (adev->in_suspend && !adev->in_runpm) in amdgpu_hwmon_show_power_avg()
2891 r = pm_runtime_get_sync(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_power_avg()
2893 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_power_avg()
2898 r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GPU_POWER, in amdgpu_hwmon_show_power_avg()
2901 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_power_avg()
2902 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_power_avg()
2926 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_show_power_cap_generic() local
2927 const struct amd_pm_funcs *pp_funcs = adev->powerplay.pp_funcs; in amdgpu_hwmon_show_power_cap_generic()
2933 if (amdgpu_in_reset(adev)) in amdgpu_hwmon_show_power_cap_generic()
2935 if (adev->in_suspend && !adev->in_runpm) in amdgpu_hwmon_show_power_cap_generic()
2941 r = pm_runtime_get_sync(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_power_cap_generic()
2943 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_power_cap_generic()
2947 r = pp_funcs->get_power_limit(adev->powerplay.pp_handle, &limit, in amdgpu_hwmon_show_power_cap_generic()
2955 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_power_cap_generic()
2956 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_power_cap_generic()
3001 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_set_power_cap() local
3002 const struct amd_pm_funcs *pp_funcs = adev->powerplay.pp_funcs; in amdgpu_hwmon_set_power_cap()
3007 if (amdgpu_in_reset(adev)) in amdgpu_hwmon_set_power_cap()
3009 if (adev->in_suspend && !adev->in_runpm) in amdgpu_hwmon_set_power_cap()
3012 if (amdgpu_sriov_vf(adev)) in amdgpu_hwmon_set_power_cap()
3022 err = pm_runtime_get_sync(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_power_cap()
3024 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_power_cap()
3029 err = pp_funcs->set_power_limit(adev->powerplay.pp_handle, value); in amdgpu_hwmon_set_power_cap()
3033 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_power_cap()
3034 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_set_power_cap()
3046 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_show_sclk() local
3050 if (amdgpu_in_reset(adev)) in amdgpu_hwmon_show_sclk()
3052 if (adev->in_suspend && !adev->in_runpm) in amdgpu_hwmon_show_sclk()
3055 r = pm_runtime_get_sync(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_sclk()
3057 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_sclk()
3062 r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GFX_SCLK, in amdgpu_hwmon_show_sclk()
3065 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_sclk()
3066 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_sclk()
3085 struct amdgpu_device *adev = dev_get_drvdata(dev); in amdgpu_hwmon_show_mclk() local
3089 if (amdgpu_in_reset(adev)) in amdgpu_hwmon_show_mclk()
3091 if (adev->in_suspend && !adev->in_runpm) in amdgpu_hwmon_show_mclk()
3094 r = pm_runtime_get_sync(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_mclk()
3096 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_mclk()
3101 r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GFX_MCLK, in amdgpu_hwmon_show_mclk()
3104 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_mclk()
3105 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); in amdgpu_hwmon_show_mclk()
3302 struct amdgpu_device *adev = dev_get_drvdata(dev); in hwmon_attributes_visible() local
3306 if (amdgpu_sriov_vf(adev) && !amdgpu_sriov_is_pp_one_vf(adev)) in hwmon_attributes_visible()
3310 if (amdgpu_sriov_is_pp_one_vf(adev) && in hwmon_attributes_visible()
3323 if (adev->pm.no_fan && (attr == &sensor_dev_attr_pwm1.dev_attr.attr || in hwmon_attributes_visible()
3335 if ((adev->flags & AMD_IS_APU) && in hwmon_attributes_visible()
3348 if ((adev->flags & AMD_IS_APU) && (adev->family >= AMDGPU_FAMILY_CZ) && in hwmon_attributes_visible()
3354 if (!adev->pm.dpm_enabled && in hwmon_attributes_visible()
3368 if (!is_support_sw_smu(adev)) { in hwmon_attributes_visible()
3370 if ((!adev->powerplay.pp_funcs->get_fan_speed_pwm && in hwmon_attributes_visible()
3372 (!adev->powerplay.pp_funcs->get_fan_control_mode && in hwmon_attributes_visible()
3376 if ((!adev->powerplay.pp_funcs->set_fan_speed_pwm && in hwmon_attributes_visible()
3378 (!adev->powerplay.pp_funcs->set_fan_control_mode && in hwmon_attributes_visible()
3383 if (((adev->family == AMDGPU_FAMILY_SI) || in hwmon_attributes_visible()
3384 ((adev->flags & AMD_IS_APU) && in hwmon_attributes_visible()
3385 (adev->asic_type != CHIP_VANGOGH))) && /* not implemented yet */ in hwmon_attributes_visible()
3392 if (((adev->family == AMDGPU_FAMILY_SI) || in hwmon_attributes_visible()
3393 ((adev->flags & AMD_IS_APU) && in hwmon_attributes_visible()
3394 (adev->asic_type < CHIP_RENOIR))) && /* not implemented yet */ in hwmon_attributes_visible()
3398 if (!is_support_sw_smu(adev)) { in hwmon_attributes_visible()
3400 if ((!adev->powerplay.pp_funcs->set_fan_speed_pwm && in hwmon_attributes_visible()
3401 !adev->powerplay.pp_funcs->get_fan_speed_pwm) && in hwmon_attributes_visible()
3402 (!adev->powerplay.pp_funcs->set_fan_speed_rpm && in hwmon_attributes_visible()
3403 !adev->powerplay.pp_funcs->get_fan_speed_rpm) && in hwmon_attributes_visible()
3408 if ((!adev->powerplay.pp_funcs->set_fan_speed_rpm && in hwmon_attributes_visible()
3409 !adev->powerplay.pp_funcs->get_fan_speed_rpm) && in hwmon_attributes_visible()
3415 if ((adev->family == AMDGPU_FAMILY_SI || /* not implemented yet */ in hwmon_attributes_visible()
3416 adev->family == AMDGPU_FAMILY_KV) && /* not implemented yet */ in hwmon_attributes_visible()
3422 if (!(adev->flags & AMD_IS_APU) && in hwmon_attributes_visible()
3428 if ((adev->flags & AMD_IS_APU) && in hwmon_attributes_visible()
3434 if (((adev->flags & AMD_IS_APU) || in hwmon_attributes_visible()
3435 adev->asic_type < CHIP_VEGA10) && in hwmon_attributes_visible()
3450 if (!(adev->asic_type == CHIP_VANGOGH) && in hwmon_attributes_visible()
3472 int amdgpu_pm_sysfs_init(struct amdgpu_device *adev) in amdgpu_pm_sysfs_init() argument
3477 if (adev->pm.sysfs_initialized) in amdgpu_pm_sysfs_init()
3480 if (adev->pm.dpm_enabled == 0) in amdgpu_pm_sysfs_init()
3483 INIT_LIST_HEAD(&adev->pm.pm_attr_list); in amdgpu_pm_sysfs_init()
3485 adev->pm.int_hwmon_dev = hwmon_device_register_with_groups(adev->dev, in amdgpu_pm_sysfs_init()
3486 DRIVER_NAME, adev, in amdgpu_pm_sysfs_init()
3488 if (IS_ERR(adev->pm.int_hwmon_dev)) { in amdgpu_pm_sysfs_init()
3489 ret = PTR_ERR(adev->pm.int_hwmon_dev); in amdgpu_pm_sysfs_init()
3490 dev_err(adev->dev, in amdgpu_pm_sysfs_init()
3495 switch (amdgpu_virt_get_sriov_vf_mode(adev)) { in amdgpu_pm_sysfs_init()
3508 ret = amdgpu_device_attr_create_groups(adev, in amdgpu_pm_sysfs_init()
3512 &adev->pm.pm_attr_list); in amdgpu_pm_sysfs_init()
3516 adev->pm.sysfs_initialized = true; in amdgpu_pm_sysfs_init()
3521 void amdgpu_pm_sysfs_fini(struct amdgpu_device *adev) in amdgpu_pm_sysfs_fini() argument
3523 if (adev->pm.dpm_enabled == 0) in amdgpu_pm_sysfs_fini()
3526 if (adev->pm.int_hwmon_dev) in amdgpu_pm_sysfs_fini()
3527 hwmon_device_unregister(adev->pm.int_hwmon_dev); in amdgpu_pm_sysfs_fini()
3529 amdgpu_device_attr_remove_groups(adev, &adev->pm.pm_attr_list); in amdgpu_pm_sysfs_fini()
3538 struct amdgpu_device *adev) { in amdgpu_debugfs_prints_cpu_info() argument
3543 if (is_support_cclk_dpm(adev)) { in amdgpu_debugfs_prints_cpu_info()
3544 p_val = kcalloc(adev->smu.cpu_core_num, sizeof(uint16_t), in amdgpu_debugfs_prints_cpu_info()
3547 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_CPU_CLK, in amdgpu_debugfs_prints_cpu_info()
3549 for (i = 0; i < adev->smu.cpu_core_num; i++) in amdgpu_debugfs_prints_cpu_info()
3558 static int amdgpu_debugfs_pm_info_pp(struct seq_file *m, struct amdgpu_device *adev) in amdgpu_debugfs_pm_info_pp() argument
3569 amdgpu_debugfs_prints_cpu_info(m, adev); in amdgpu_debugfs_pm_info_pp()
3571 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GFX_MCLK, (void *)&value, &size)) in amdgpu_debugfs_pm_info_pp()
3573 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GFX_SCLK, (void *)&value, &size)) in amdgpu_debugfs_pm_info_pp()
3575 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_STABLE_PSTATE_SCLK, (void *)&value, &size)) in amdgpu_debugfs_pm_info_pp()
3577 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_STABLE_PSTATE_MCLK, (void *)&value, &size)) in amdgpu_debugfs_pm_info_pp()
3579 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_VDDGFX, (void *)&value, &size)) in amdgpu_debugfs_pm_info_pp()
3581 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_VDDNB, (void *)&value, &size)) in amdgpu_debugfs_pm_info_pp()
3584 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GPU_POWER, (void *)&query, &size)) in amdgpu_debugfs_pm_info_pp()
3590 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GPU_TEMP, (void *)&value, &size)) in amdgpu_debugfs_pm_info_pp()
3594 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GPU_LOAD, (void *)&value, &size)) in amdgpu_debugfs_pm_info_pp()
3597 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_MEM_LOAD, (void *)&value, &size)) in amdgpu_debugfs_pm_info_pp()
3603 …if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_ENABLED_SMC_FEATURES_MASK, (void *)&value64, &s… in amdgpu_debugfs_pm_info_pp()
3606 if (adev->asic_type > CHIP_VEGA20) { in amdgpu_debugfs_pm_info_pp()
3608 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_VCN_POWER_STATE, (void *)&value, &size)) { in amdgpu_debugfs_pm_info_pp()
3613 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_UVD_DCLK, (void *)&value, &size)) in amdgpu_debugfs_pm_info_pp()
3615 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_UVD_VCLK, (void *)&value, &size)) in amdgpu_debugfs_pm_info_pp()
3622 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_UVD_POWER, (void *)&value, &size)) { in amdgpu_debugfs_pm_info_pp()
3627 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_UVD_DCLK, (void *)&value, &size)) in amdgpu_debugfs_pm_info_pp()
3629 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_UVD_VCLK, (void *)&value, &size)) in amdgpu_debugfs_pm_info_pp()
3636 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_VCE_POWER, (void *)&value, &size)) { in amdgpu_debugfs_pm_info_pp()
3641 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_VCE_ECCLK, (void *)&value, &size)) in amdgpu_debugfs_pm_info_pp()
3661 struct amdgpu_device *adev = (struct amdgpu_device *)m->private; in amdgpu_debugfs_pm_info_show() local
3662 struct drm_device *dev = adev_to_drm(adev); in amdgpu_debugfs_pm_info_show()
3666 if (amdgpu_in_reset(adev)) in amdgpu_debugfs_pm_info_show()
3668 if (adev->in_suspend && !adev->in_runpm) in amdgpu_debugfs_pm_info_show()
3677 if (!adev->pm.dpm_enabled) { in amdgpu_debugfs_pm_info_show()
3684 if (!is_support_sw_smu(adev) && in amdgpu_debugfs_pm_info_show()
3685 adev->powerplay.pp_funcs->debugfs_print_current_performance_level) { in amdgpu_debugfs_pm_info_show()
3686 mutex_lock(&adev->pm.mutex); in amdgpu_debugfs_pm_info_show()
3687 if (adev->powerplay.pp_funcs->debugfs_print_current_performance_level) in amdgpu_debugfs_pm_info_show()
3688 adev->powerplay.pp_funcs->debugfs_print_current_performance_level(adev, m); in amdgpu_debugfs_pm_info_show()
3691 mutex_unlock(&adev->pm.mutex); in amdgpu_debugfs_pm_info_show()
3694 r = amdgpu_debugfs_pm_info_pp(m, adev); in amdgpu_debugfs_pm_info_show()
3699 amdgpu_device_ip_get_clockgating_state(adev, &flags); in amdgpu_debugfs_pm_info_show()
3722 struct amdgpu_device *adev = file_inode(f)->i_private; in amdgpu_pm_prv_buffer_read() local
3723 const struct amd_pm_funcs *pp_funcs = adev->powerplay.pp_funcs; in amdgpu_pm_prv_buffer_read()
3724 void *pp_handle = adev->powerplay.pp_handle; in amdgpu_pm_prv_buffer_read()
3728 if (amdgpu_in_reset(adev)) in amdgpu_pm_prv_buffer_read()
3730 if (adev->in_suspend && !adev->in_runpm) in amdgpu_pm_prv_buffer_read()
3755 void amdgpu_debugfs_pm_init(struct amdgpu_device *adev) in amdgpu_debugfs_pm_init() argument
3758 struct drm_minor *minor = adev_to_drm(adev)->primary; in amdgpu_debugfs_pm_init()
3761 debugfs_create_file("amdgpu_pm_info", 0444, root, adev, in amdgpu_debugfs_pm_init()
3764 if (adev->pm.smu_prv_buffer_size > 0) in amdgpu_debugfs_pm_init()
3766 adev, in amdgpu_debugfs_pm_init()
3768 adev->pm.smu_prv_buffer_size); in amdgpu_debugfs_pm_init()