Lines Matching refs:hwmgr
31 static int vega10_get_current_rpm(struct pp_hwmgr *hwmgr, uint32_t *current_rpm) in vega10_get_current_rpm() argument
33 smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetCurrentRpm); in vega10_get_current_rpm()
34 *current_rpm = smum_get_argument(hwmgr); in vega10_get_current_rpm()
38 int vega10_fan_ctrl_get_fan_speed_info(struct pp_hwmgr *hwmgr, in vega10_fan_ctrl_get_fan_speed_info() argument
42 if (hwmgr->thermal_controller.fanInfo.bNoFan) in vega10_fan_ctrl_get_fan_speed_info()
51 hwmgr->thermal_controller.fanInfo. in vega10_fan_ctrl_get_fan_speed_info()
56 hwmgr->thermal_controller.fanInfo.ulMinRPM; in vega10_fan_ctrl_get_fan_speed_info()
58 hwmgr->thermal_controller.fanInfo.ulMaxRPM; in vega10_fan_ctrl_get_fan_speed_info()
67 int vega10_fan_ctrl_get_fan_speed_percent(struct pp_hwmgr *hwmgr, in vega10_fan_ctrl_get_fan_speed_percent() argument
73 if (hwmgr->thermal_controller.fanInfo.bNoFan) in vega10_fan_ctrl_get_fan_speed_percent()
76 if (vega10_get_current_rpm(hwmgr, ¤t_rpm)) in vega10_fan_ctrl_get_fan_speed_percent()
79 if (hwmgr->thermal_controller. in vega10_fan_ctrl_get_fan_speed_percent()
82 hwmgr->thermal_controller. in vega10_fan_ctrl_get_fan_speed_percent()
90 int vega10_fan_ctrl_get_fan_speed_rpm(struct pp_hwmgr *hwmgr, uint32_t *speed) in vega10_fan_ctrl_get_fan_speed_rpm() argument
92 struct amdgpu_device *adev = hwmgr->adev; in vega10_fan_ctrl_get_fan_speed_rpm()
93 struct vega10_hwmgr *data = hwmgr->backend; in vega10_fan_ctrl_get_fan_speed_rpm()
98 if (hwmgr->thermal_controller.fanInfo.bNoFan) in vega10_fan_ctrl_get_fan_speed_rpm()
102 result = vega10_get_current_rpm(hwmgr, speed); in vega10_fan_ctrl_get_fan_speed_rpm()
112 crystal_clock_freq = amdgpu_asic_get_xclk((struct amdgpu_device *)hwmgr->adev); in vega10_fan_ctrl_get_fan_speed_rpm()
127 int vega10_fan_ctrl_set_static_mode(struct pp_hwmgr *hwmgr, uint32_t mode) in vega10_fan_ctrl_set_static_mode() argument
129 struct amdgpu_device *adev = hwmgr->adev; in vega10_fan_ctrl_set_static_mode()
131 if (hwmgr->fan_ctrl_is_in_default_mode) { in vega10_fan_ctrl_set_static_mode()
132 hwmgr->fan_ctrl_default_mode = in vega10_fan_ctrl_set_static_mode()
135 hwmgr->tmin = in vega10_fan_ctrl_set_static_mode()
138 hwmgr->fan_ctrl_is_in_default_mode = false; in vega10_fan_ctrl_set_static_mode()
156 int vega10_fan_ctrl_set_default_mode(struct pp_hwmgr *hwmgr) in vega10_fan_ctrl_set_default_mode() argument
158 struct amdgpu_device *adev = hwmgr->adev; in vega10_fan_ctrl_set_default_mode()
160 if (!hwmgr->fan_ctrl_is_in_default_mode) { in vega10_fan_ctrl_set_default_mode()
164 hwmgr->fan_ctrl_default_mode)); in vega10_fan_ctrl_set_default_mode()
168 hwmgr->tmin << CG_FDO_CTRL2__TMIN__SHIFT)); in vega10_fan_ctrl_set_default_mode()
169 hwmgr->fan_ctrl_is_in_default_mode = true; in vega10_fan_ctrl_set_default_mode()
182 static int vega10_enable_fan_control_feature(struct pp_hwmgr *hwmgr) in vega10_enable_fan_control_feature() argument
184 struct vega10_hwmgr *data = hwmgr->backend; in vega10_enable_fan_control_feature()
188 hwmgr, true, in vega10_enable_fan_control_feature()
199 static int vega10_disable_fan_control_feature(struct pp_hwmgr *hwmgr) in vega10_disable_fan_control_feature() argument
201 struct vega10_hwmgr *data = hwmgr->backend; in vega10_disable_fan_control_feature()
205 hwmgr, false, in vega10_disable_fan_control_feature()
216 int vega10_fan_ctrl_start_smc_fan_control(struct pp_hwmgr *hwmgr) in vega10_fan_ctrl_start_smc_fan_control() argument
218 if (hwmgr->thermal_controller.fanInfo.bNoFan) in vega10_fan_ctrl_start_smc_fan_control()
221 PP_ASSERT_WITH_CODE(!vega10_enable_fan_control_feature(hwmgr), in vega10_fan_ctrl_start_smc_fan_control()
229 int vega10_fan_ctrl_stop_smc_fan_control(struct pp_hwmgr *hwmgr) in vega10_fan_ctrl_stop_smc_fan_control() argument
231 struct vega10_hwmgr *data = hwmgr->backend; in vega10_fan_ctrl_stop_smc_fan_control()
233 if (hwmgr->thermal_controller.fanInfo.bNoFan) in vega10_fan_ctrl_stop_smc_fan_control()
237 PP_ASSERT_WITH_CODE(!vega10_disable_fan_control_feature(hwmgr), in vega10_fan_ctrl_stop_smc_fan_control()
250 int vega10_fan_ctrl_set_fan_speed_percent(struct pp_hwmgr *hwmgr, in vega10_fan_ctrl_set_fan_speed_percent() argument
253 struct amdgpu_device *adev = hwmgr->adev; in vega10_fan_ctrl_set_fan_speed_percent()
258 if (hwmgr->thermal_controller.fanInfo.bNoFan) in vega10_fan_ctrl_set_fan_speed_percent()
265 vega10_fan_ctrl_stop_smc_fan_control(hwmgr); in vega10_fan_ctrl_set_fan_speed_percent()
281 return vega10_fan_ctrl_set_static_mode(hwmgr, FDO_PWM_MODE_STATIC); in vega10_fan_ctrl_set_fan_speed_percent()
289 int vega10_fan_ctrl_reset_fan_speed_to_default(struct pp_hwmgr *hwmgr) in vega10_fan_ctrl_reset_fan_speed_to_default() argument
291 if (hwmgr->thermal_controller.fanInfo.bNoFan) in vega10_fan_ctrl_reset_fan_speed_to_default()
295 return vega10_fan_ctrl_start_smc_fan_control(hwmgr); in vega10_fan_ctrl_reset_fan_speed_to_default()
297 return vega10_fan_ctrl_set_default_mode(hwmgr); in vega10_fan_ctrl_reset_fan_speed_to_default()
306 int vega10_fan_ctrl_set_fan_speed_rpm(struct pp_hwmgr *hwmgr, uint32_t speed) in vega10_fan_ctrl_set_fan_speed_rpm() argument
308 struct amdgpu_device *adev = hwmgr->adev; in vega10_fan_ctrl_set_fan_speed_rpm()
313 if (hwmgr->thermal_controller.fanInfo.bNoFan || in vega10_fan_ctrl_set_fan_speed_rpm()
314 (speed < hwmgr->thermal_controller.fanInfo.ulMinRPM) || in vega10_fan_ctrl_set_fan_speed_rpm()
315 (speed > hwmgr->thermal_controller.fanInfo.ulMaxRPM)) in vega10_fan_ctrl_set_fan_speed_rpm()
319 result = vega10_fan_ctrl_stop_smc_fan_control(hwmgr); in vega10_fan_ctrl_set_fan_speed_rpm()
322 crystal_clock_freq = amdgpu_asic_get_xclk((struct amdgpu_device *)hwmgr->adev); in vega10_fan_ctrl_set_fan_speed_rpm()
329 return vega10_fan_ctrl_set_static_mode(hwmgr, FDO_PWM_MODE_STATIC_RPM); in vega10_fan_ctrl_set_fan_speed_rpm()
337 int vega10_thermal_get_temperature(struct pp_hwmgr *hwmgr) in vega10_thermal_get_temperature() argument
339 struct amdgpu_device *adev = hwmgr->adev; in vega10_thermal_get_temperature()
362 static int vega10_thermal_set_temperature_range(struct pp_hwmgr *hwmgr, in vega10_thermal_set_temperature_range() argument
365 struct amdgpu_device *adev = hwmgr->adev; in vega10_thermal_set_temperature_range()
400 static int vega10_thermal_initialize(struct pp_hwmgr *hwmgr) in vega10_thermal_initialize() argument
402 struct amdgpu_device *adev = hwmgr->adev; in vega10_thermal_initialize()
404 if (hwmgr->thermal_controller.fanInfo.ucTachometerPulsesPerRevolution) { in vega10_thermal_initialize()
408 hwmgr->thermal_controller.fanInfo.ucTachometerPulsesPerRevolution - 1)); in vega10_thermal_initialize()
423 static int vega10_thermal_enable_alert(struct pp_hwmgr *hwmgr) in vega10_thermal_enable_alert() argument
425 struct amdgpu_device *adev = hwmgr->adev; in vega10_thermal_enable_alert()
426 struct vega10_hwmgr *data = hwmgr->backend; in vega10_thermal_enable_alert()
433 PP_ASSERT_WITH_CODE(!vega10_enable_smc_features(hwmgr, in vega10_thermal_enable_alert()
454 int vega10_thermal_disable_alert(struct pp_hwmgr *hwmgr) in vega10_thermal_disable_alert() argument
456 struct amdgpu_device *adev = hwmgr->adev; in vega10_thermal_disable_alert()
457 struct vega10_hwmgr *data = hwmgr->backend; in vega10_thermal_disable_alert()
464 PP_ASSERT_WITH_CODE(!vega10_enable_smc_features(hwmgr, in vega10_thermal_disable_alert()
482 int vega10_thermal_stop_thermal_controller(struct pp_hwmgr *hwmgr) in vega10_thermal_stop_thermal_controller() argument
484 int result = vega10_thermal_disable_alert(hwmgr); in vega10_thermal_stop_thermal_controller()
486 if (!hwmgr->thermal_controller.fanInfo.bNoFan) in vega10_thermal_stop_thermal_controller()
487 vega10_fan_ctrl_set_default_mode(hwmgr); in vega10_thermal_stop_thermal_controller()
501 int vega10_thermal_setup_fan_table(struct pp_hwmgr *hwmgr) in vega10_thermal_setup_fan_table() argument
504 struct vega10_hwmgr *data = hwmgr->backend; in vega10_thermal_setup_fan_table()
510 table->FanMaximumRpm = (uint16_t)hwmgr->thermal_controller. in vega10_thermal_setup_fan_table()
512 table->FanThrottlingRpm = hwmgr->thermal_controller. in vega10_thermal_setup_fan_table()
514 table->FanAcousticLimitRpm = (uint16_t)(hwmgr->thermal_controller. in vega10_thermal_setup_fan_table()
516 table->FanTargetTemperature = hwmgr->thermal_controller. in vega10_thermal_setup_fan_table()
519 smum_send_msg_to_smc_with_parameter(hwmgr, in vega10_thermal_setup_fan_table()
523 table->FanPwmMin = hwmgr->thermal_controller. in vega10_thermal_setup_fan_table()
525 table->FanTargetGfxclk = (uint16_t)(hwmgr->thermal_controller. in vega10_thermal_setup_fan_table()
527 table->FanGainEdge = hwmgr->thermal_controller. in vega10_thermal_setup_fan_table()
529 table->FanGainHotspot = hwmgr->thermal_controller. in vega10_thermal_setup_fan_table()
531 table->FanGainLiquid = hwmgr->thermal_controller. in vega10_thermal_setup_fan_table()
533 table->FanGainVrVddc = hwmgr->thermal_controller. in vega10_thermal_setup_fan_table()
535 table->FanGainVrMvdd = hwmgr->thermal_controller. in vega10_thermal_setup_fan_table()
537 table->FanGainPlx = hwmgr->thermal_controller. in vega10_thermal_setup_fan_table()
539 table->FanGainHbm = hwmgr->thermal_controller. in vega10_thermal_setup_fan_table()
541 table->FanZeroRpmEnable = hwmgr->thermal_controller. in vega10_thermal_setup_fan_table()
543 table->FanStopTemp = hwmgr->thermal_controller. in vega10_thermal_setup_fan_table()
545 table->FanStartTemp = hwmgr->thermal_controller. in vega10_thermal_setup_fan_table()
548 ret = smum_smc_table_manager(hwmgr, in vega10_thermal_setup_fan_table()
566 int vega10_thermal_start_smc_fan_control(struct pp_hwmgr *hwmgr) in vega10_thermal_start_smc_fan_control() argument
574 vega10_fan_ctrl_start_smc_fan_control(hwmgr); in vega10_thermal_start_smc_fan_control()
580 int vega10_start_thermal_controller(struct pp_hwmgr *hwmgr, in vega10_start_thermal_controller() argument
588 vega10_thermal_initialize(hwmgr); in vega10_start_thermal_controller()
589 ret = vega10_thermal_set_temperature_range(hwmgr, range); in vega10_start_thermal_controller()
593 vega10_thermal_enable_alert(hwmgr); in vega10_start_thermal_controller()
599 ret = vega10_thermal_setup_fan_table(hwmgr); in vega10_start_thermal_controller()
603 vega10_thermal_start_smc_fan_control(hwmgr); in vega10_start_thermal_controller()
611 int vega10_thermal_ctrl_uninitialize_thermal_controller(struct pp_hwmgr *hwmgr) in vega10_thermal_ctrl_uninitialize_thermal_controller() argument
613 if (!hwmgr->thermal_controller.fanInfo.bNoFan) { in vega10_thermal_ctrl_uninitialize_thermal_controller()
614 vega10_fan_ctrl_set_default_mode(hwmgr); in vega10_thermal_ctrl_uninitialize_thermal_controller()
615 vega10_fan_ctrl_stop_smc_fan_control(hwmgr); in vega10_thermal_ctrl_uninitialize_thermal_controller()