Home | History | Annotate | Download | only in radeon

Lines Matching refs:dpm

84 			rdev->pm.dpm.ac_power = true;
86 rdev->pm.dpm.ac_power = false;
88 if (rdev->asic->dpm.enable_bapm)
89 radeon_dpm_enable_bapm(rdev, rdev->pm.dpm.ac_power);
438 (pm == PM_METHOD_PROFILE) ? "profile" : "dpm");
456 /* we don't support the legacy modes with dpm */
491 enum radeon_pm_state_type pm = rdev->pm.dpm.user_state;
508 rdev->pm.dpm.user_state = POWER_STATE_TYPE_BATTERY;
510 rdev->pm.dpm.user_state = POWER_STATE_TYPE_BALANCED;
512 rdev->pm.dpm.user_state = POWER_STATE_TYPE_PERFORMANCE;
520 /* Can't set dpm state when the card is off */
535 enum radeon_dpm_forced_level level = rdev->pm.dpm.forced_level;
572 if (rdev->asic->dpm.force_performance_level) {
573 if (rdev->pm.dpm.thermal_active) {
594 if (rdev->asic->dpm.fan_ctrl_get_mode)
595 pwm_mode = rdev->asic->dpm.fan_ctrl_get_mode(rdev);
610 if(!rdev->asic->dpm.fan_ctrl_set_mode)
619 rdev->asic->dpm.fan_ctrl_set_mode(rdev, FDO_PWM_MODE_STATIC);
622 rdev->asic->dpm.fan_ctrl_set_mode(rdev, 0);
657 err = rdev->asic->dpm.set_fan_speed_percent(rdev, value);
672 err = rdev->asic->dpm.get_fan_speed_percent(rdev, &speed);
720 temp = rdev->pm.dpm.thermal.min_temp;
722 temp = rdev->pm.dpm.thermal.max_temp;
754 /* Skip attributes if DPM is not enabled */
773 if ((!rdev->asic->dpm.get_fan_speed_percent &&
775 (!rdev->asic->dpm.fan_ctrl_get_mode &&
779 if ((!rdev->asic->dpm.set_fan_speed_percent &&
781 (!rdev->asic->dpm.fan_ctrl_set_mode &&
786 if ((!rdev->asic->dpm.set_fan_speed_percent &&
787 !rdev->asic->dpm.get_fan_speed_percent) &&
851 pm.dpm.thermal.work);
861 if (temp < rdev->pm.dpm.thermal.min_temp)
863 dpm_state = rdev->pm.dpm.user_state;
865 if (rdev->pm.dpm.thermal.high_to_low)
867 dpm_state = rdev->pm.dpm.user_state;
871 rdev->pm.dpm.thermal_active = true;
873 rdev->pm.dpm.thermal_active = false;
874 rdev->pm.dpm.state = dpm_state;
882 bool single_display = (rdev->pm.dpm.new_active_crtc_count < 2) ?
886 if (single_display && rdev->asic->dpm.vblank_too_short) {
919 for (i = 0; i < rdev->pm.dpm.num_ps; i++) {
920 ps = &rdev->pm.dpm.ps[i];
953 if (rdev->pm.dpm.uvd_ps)
954 return rdev->pm.dpm.uvd_ps;
974 return rdev->pm.dpm.boot_ps;
1003 if (rdev->pm.dpm.uvd_ps) {
1004 return rdev->pm.dpm.uvd_ps;
1035 /* if dpm init failed */
1039 if (rdev->pm.dpm.user_state != rdev->pm.dpm.state) {
1041 if ((!rdev->pm.dpm.thermal_active) &&
1042 (!rdev->pm.dpm.uvd_active))
1043 rdev->pm.dpm.state = rdev->pm.dpm.user_state;
1045 dpm_state = rdev->pm.dpm.state;
1049 rdev->pm.dpm.requested_ps = ps;
1054 if (rdev->pm.dpm.current_ps == rdev->pm.dpm.requested_ps) {
1056 if (ps->vce_active != rdev->pm.dpm.vce_active)
1059 if (rdev->pm.dpm.single_display != single_display)
1065 if (rdev->pm.dpm.new_active_crtcs != rdev->pm.dpm.current_active_crtcs) {
1070 rdev->pm.dpm.current_active_crtcs = rdev->pm.dpm.new_active_crtcs;
1071 rdev->pm.dpm.current_active_crtc_count = rdev->pm.dpm.new_active_crtc_count;
1079 if (rdev->pm.dpm.new_active_crtcs ==
1080 rdev->pm.dpm.current_active_crtcs) {
1083 if ((rdev->pm.dpm.current_active_crtc_count > 1) &&
1084 (rdev->pm.dpm.new_active_crtc_count > 1)) {
1089 rdev->pm.dpm.current_active_crtcs = rdev->pm.dpm.new_active_crtcs;
1090 rdev->pm.dpm.current_active_crtc_count = rdev->pm.dpm.new_active_crtc_count;
1100 radeon_dpm_print_power_state(rdev, rdev->pm.dpm.current_ps);
1102 radeon_dpm_print_power_state(rdev, rdev->pm.dpm.requested_ps);
1109 ps->vce_active = rdev->pm.dpm.vce_active;
1131 rdev->pm.dpm.current_ps = rdev->pm.dpm.requested_ps;
1135 rdev->pm.dpm.current_active_crtcs = rdev->pm.dpm.new_active_crtcs;
1136 rdev->pm.dpm.current_active_crtc_count = rdev->pm.dpm.new_active_crtc_count;
1137 rdev->pm.dpm.single_display = single_display;
1139 if (rdev->asic->dpm.force_performance_level) {
1140 if (rdev->pm.dpm.thermal_active) {
1141 enum radeon_dpm_forced_level level = rdev->pm.dpm.forced_level;
1145 rdev->pm.dpm.forced_level = level;
1148 radeon_dpm_force_performance_level(rdev, rdev->pm.dpm.forced_level);
1161 if (rdev->asic->dpm.powergate_uvd) {
1165 enable |= rdev->pm.dpm.sd > 0;
1166 enable |= rdev->pm.dpm.hd > 0;
1173 rdev->pm.dpm.uvd_active = true;
1176 if ((rdev->pm.dpm.sd == 1) && (rdev->pm.dpm.hd == 0))
1178 else if ((rdev->pm.dpm.sd == 2) && (rdev->pm.dpm.hd == 0))
1180 else if ((rdev->pm.dpm.sd == 0) && (rdev->pm.dpm.hd == 1))
1182 else if ((rdev->pm.dpm.sd == 0) && (rdev->pm.dpm.hd == 2))
1187 rdev->pm.dpm.state = dpm_state;
1191 rdev->pm.dpm.uvd_active = false;
1203 rdev->pm.dpm.vce_active = true;
1205 rdev->pm.dpm.vce_level = RADEON_VCE_LEVEL_AC_ALL;
1209 rdev->pm.dpm.vce_active = false;
1231 /* disable dpm */
1234 rdev->pm.dpm.current_ps = rdev->pm.dpm.requested_ps = rdev->pm.dpm.boot_ps;
1290 rdev->pm.dpm.current_ps = rdev->pm.dpm.requested_ps = rdev->pm.dpm.boot_ps;
1300 DRM_ERROR("radeon: dpm resume failed\n");
1388 for (i = 0; i < rdev->pm.dpm.num_ps; i++) {
1390 radeon_dpm_print_power_state(rdev, &rdev->pm.dpm.ps[i]);
1399 rdev->pm.dpm.state = POWER_STATE_TYPE_BALANCED;
1400 rdev->pm.dpm.user_state = POWER_STATE_TYPE_BALANCED;
1401 rdev->pm.dpm.forced_level = RADEON_DPM_FORCED_LEVEL_AUTO;
1418 INIT_WORK(&rdev->pm.dpm.thermal.work, radeon_dpm_thermal_work_handler);
1421 rdev->pm.dpm.current_ps = rdev->pm.dpm.requested_ps = rdev->pm.dpm.boot_ps;
1432 DRM_ERROR("Failed to register debugfs file for dpm!\n");
1435 DRM_INFO("radeon: dpm initialized\n");
1455 DRM_ERROR("radeon: dpm initialization failed\n");
1466 /* cards with dpm stability problems */
1480 /* Apply dpm quirks */
1492 /* enable dpm on rv6xx+ */
1502 /* DPM requires the RLC, RV770+ dGPU requires SMC */
1540 /* DPM requires the RLC, RV770+ dGPU requires SMC */
1576 DRM_ERROR("failed to create device file for dpm state\n");
1579 DRM_ERROR("failed to create device file for dpm state\n");
1580 /* XXX: these are noops for dpm but are here for backwards compat */
1596 DRM_ERROR("radeon_pm_late_init failed, disabling dpm\n");
1598 /* set the dpm state for PX since there won't be
1765 rdev->pm.dpm.new_active_crtcs = 0;
1766 rdev->pm.dpm.new_active_crtc_count = 0;
1772 rdev->pm.dpm.new_active_crtcs |= (1 << radeon_crtc->crtc_id);
1773 rdev->pm.dpm.new_active_crtc_count++;
1780 rdev->pm.dpm.ac_power = true;
1782 rdev->pm.dpm.ac_power = false;
1911 if (rdev->asic->dpm.debugfs_print_current_performance_level)