diff options
-rw-r--r-- | drivers/gpu/drm/radeon/evergreen.c | 8 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_atombios.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_pm.c | 8 |
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, |