aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/radeon/evergreen.c8
-rw-r--r--drivers/gpu/drm/radeon/radeon_atombios.c4
-rw-r--r--drivers/gpu/drm/radeon/radeon_pm.c8
3 files changed, 12 insertions, 8 deletions
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
index 2e1de4fd2975..e49059dc9b8f 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -1504,8 +1504,8 @@ void evergreen_pm_misc(struct radeon_device *rdev)
1504 struct radeon_voltage *voltage = &ps->clock_info[req_cm_idx].voltage; 1504 struct radeon_voltage *voltage = &ps->clock_info[req_cm_idx].voltage;
1505 1505
1506 if (voltage->type == VOLTAGE_SW) { 1506 if (voltage->type == VOLTAGE_SW) {
1507 /* 0xff01 is a flag rather then an actual voltage */ 1507 /* 0xff0x are flags rather then an actual voltage */
1508 if (voltage->voltage == 0xff01) 1508 if ((voltage->voltage & 0xff00) == 0xff00)
1509 return; 1509 return;
1510 if (voltage->voltage && (voltage->voltage != rdev->pm.current_vddc)) { 1510 if (voltage->voltage && (voltage->voltage != rdev->pm.current_vddc)) {
1511 radeon_atom_set_voltage(rdev, voltage->voltage, SET_VOLTAGE_TYPE_ASIC_VDDC); 1511 radeon_atom_set_voltage(rdev, voltage->voltage, SET_VOLTAGE_TYPE_ASIC_VDDC);
@@ -1525,8 +1525,8 @@ void evergreen_pm_misc(struct radeon_device *rdev)
1525 voltage = &rdev->pm.power_state[req_ps_idx]. 1525 voltage = &rdev->pm.power_state[req_ps_idx].
1526 clock_info[rdev->pm.profiles[PM_PROFILE_HIGH_MH_IDX].dpms_on_cm_idx].voltage; 1526 clock_info[rdev->pm.profiles[PM_PROFILE_HIGH_MH_IDX].dpms_on_cm_idx].voltage;
1527 1527
1528 /* 0xff01 is a flag rather then an actual voltage */ 1528 /* 0xff0x are flags rather then an actual voltage */
1529 if (voltage->vddci == 0xff01) 1529 if ((voltage->vddci & 0xff00) == 0xff00)
1530 return; 1530 return;
1531 if (voltage->vddci && (voltage->vddci != rdev->pm.current_vddci)) { 1531 if (voltage->vddci && (voltage->vddci != rdev->pm.current_vddci)) {
1532 radeon_atom_set_voltage(rdev, voltage->vddci, SET_VOLTAGE_TYPE_ASIC_VDDCI); 1532 radeon_atom_set_voltage(rdev, voltage->vddci, SET_VOLTAGE_TYPE_ASIC_VDDCI);
diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c
index b1777d10d0b5..fbdaff55556b 100644
--- a/drivers/gpu/drm/radeon/radeon_atombios.c
+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
@@ -2441,6 +2441,10 @@ static bool radeon_atombios_parse_pplib_clock_info(struct radeon_device *rdev,
2441 case ATOM_VIRTUAL_VOLTAGE_ID1: 2441 case ATOM_VIRTUAL_VOLTAGE_ID1:
2442 case ATOM_VIRTUAL_VOLTAGE_ID2: 2442 case ATOM_VIRTUAL_VOLTAGE_ID2:
2443 case ATOM_VIRTUAL_VOLTAGE_ID3: 2443 case ATOM_VIRTUAL_VOLTAGE_ID3:
2444 case ATOM_VIRTUAL_VOLTAGE_ID4:
2445 case ATOM_VIRTUAL_VOLTAGE_ID5:
2446 case ATOM_VIRTUAL_VOLTAGE_ID6:
2447 case ATOM_VIRTUAL_VOLTAGE_ID7:
2444 if (radeon_atom_get_max_vddc(rdev, VOLTAGE_TYPE_VDDC, 2448 if (radeon_atom_get_max_vddc(rdev, VOLTAGE_TYPE_VDDC,
2445 rdev->pm.power_state[state_index].clock_info[mode_index].voltage.voltage, 2449 rdev->pm.power_state[state_index].clock_info[mode_index].voltage.voltage,
2446 &vddc) == 0) 2450 &vddc) == 0)
diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c
index ebbdb477745a..c3e5e119702d 100644
--- a/drivers/gpu/drm/radeon/radeon_pm.c
+++ b/drivers/gpu/drm/radeon/radeon_pm.c
@@ -852,7 +852,7 @@ static void radeon_pm_resume_old(struct radeon_device *rdev)
852{ 852{
853 /* set up the default clocks if the MC ucode is loaded */ 853 /* set up the default clocks if the MC ucode is loaded */
854 if ((rdev->family >= CHIP_BARTS) && 854 if ((rdev->family >= CHIP_BARTS) &&
855 (rdev->family <= CHIP_CAYMAN) && 855 (rdev->family <= CHIP_HAINAN) &&
856 rdev->mc_fw) { 856 rdev->mc_fw) {
857 if (rdev->pm.default_vddc) 857 if (rdev->pm.default_vddc)
858 radeon_atom_set_voltage(rdev, rdev->pm.default_vddc, 858 radeon_atom_set_voltage(rdev, rdev->pm.default_vddc,
@@ -896,7 +896,7 @@ static void radeon_pm_resume_dpm(struct radeon_device *rdev)
896 if (ret) { 896 if (ret) {
897 DRM_ERROR("radeon: dpm resume failed\n"); 897 DRM_ERROR("radeon: dpm resume failed\n");
898 if ((rdev->family >= CHIP_BARTS) && 898 if ((rdev->family >= CHIP_BARTS) &&
899 (rdev->family <= CHIP_CAYMAN) && 899 (rdev->family <= CHIP_HAINAN) &&
900 rdev->mc_fw) { 900 rdev->mc_fw) {
901 if (rdev->pm.default_vddc) 901 if (rdev->pm.default_vddc)
902 radeon_atom_set_voltage(rdev, rdev->pm.default_vddc, 902 radeon_atom_set_voltage(rdev, rdev->pm.default_vddc,
@@ -947,7 +947,7 @@ static int radeon_pm_init_old(struct radeon_device *rdev)
947 radeon_pm_init_profile(rdev); 947 radeon_pm_init_profile(rdev);
948 /* set up the default clocks if the MC ucode is loaded */ 948 /* set up the default clocks if the MC ucode is loaded */
949 if ((rdev->family >= CHIP_BARTS) && 949 if ((rdev->family >= CHIP_BARTS) &&
950 (rdev->family <= CHIP_CAYMAN) && 950 (rdev->family <= CHIP_HAINAN) &&
951 rdev->mc_fw) { 951 rdev->mc_fw) {
952 if (rdev->pm.default_vddc) 952 if (rdev->pm.default_vddc)
953 radeon_atom_set_voltage(rdev, rdev->pm.default_vddc, 953 radeon_atom_set_voltage(rdev, rdev->pm.default_vddc,
@@ -1032,7 +1032,7 @@ static int radeon_pm_init_dpm(struct radeon_device *rdev)
1032 if (ret) { 1032 if (ret) {
1033 rdev->pm.dpm_enabled = false; 1033 rdev->pm.dpm_enabled = false;
1034 if ((rdev->family >= CHIP_BARTS) && 1034 if ((rdev->family >= CHIP_BARTS) &&
1035 (rdev->family <= CHIP_CAYMAN) && 1035 (rdev->family <= CHIP_HAINAN) &&
1036 rdev->mc_fw) { 1036 rdev->mc_fw) {
1037 if (rdev->pm.default_vddc) 1037 if (rdev->pm.default_vddc)
1038 radeon_atom_set_voltage(rdev, rdev->pm.default_vddc, 1038 radeon_atom_set_voltage(rdev, rdev->pm.default_vddc,