diff options
| -rw-r--r-- | drivers/gpu/drm/radeon/atombios_crtc.c | 6 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_device.c | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_pm.c | 1 |
3 files changed, 6 insertions, 5 deletions
diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c index c31c12b4e666..e911898348f8 100644 --- a/drivers/gpu/drm/radeon/atombios_crtc.c +++ b/drivers/gpu/drm/radeon/atombios_crtc.c | |||
| @@ -270,8 +270,6 @@ void atombios_crtc_dpms(struct drm_crtc *crtc, int mode) | |||
| 270 | switch (mode) { | 270 | switch (mode) { |
| 271 | case DRM_MODE_DPMS_ON: | 271 | case DRM_MODE_DPMS_ON: |
| 272 | radeon_crtc->enabled = true; | 272 | radeon_crtc->enabled = true; |
| 273 | /* adjust pm to dpms changes BEFORE enabling crtcs */ | ||
| 274 | radeon_pm_compute_clocks(rdev); | ||
| 275 | atombios_enable_crtc(crtc, ATOM_ENABLE); | 273 | atombios_enable_crtc(crtc, ATOM_ENABLE); |
| 276 | if (ASIC_IS_DCE3(rdev) && !ASIC_IS_DCE6(rdev)) | 274 | if (ASIC_IS_DCE3(rdev) && !ASIC_IS_DCE6(rdev)) |
| 277 | atombios_enable_crtc_memreq(crtc, ATOM_ENABLE); | 275 | atombios_enable_crtc_memreq(crtc, ATOM_ENABLE); |
| @@ -289,10 +287,10 @@ void atombios_crtc_dpms(struct drm_crtc *crtc, int mode) | |||
| 289 | atombios_enable_crtc_memreq(crtc, ATOM_DISABLE); | 287 | atombios_enable_crtc_memreq(crtc, ATOM_DISABLE); |
| 290 | atombios_enable_crtc(crtc, ATOM_DISABLE); | 288 | atombios_enable_crtc(crtc, ATOM_DISABLE); |
| 291 | radeon_crtc->enabled = false; | 289 | radeon_crtc->enabled = false; |
| 292 | /* adjust pm to dpms changes AFTER disabling crtcs */ | ||
| 293 | radeon_pm_compute_clocks(rdev); | ||
| 294 | break; | 290 | break; |
| 295 | } | 291 | } |
| 292 | /* adjust pm to dpms */ | ||
| 293 | radeon_pm_compute_clocks(rdev); | ||
| 296 | } | 294 | } |
| 297 | 295 | ||
| 298 | static void | 296 | static void |
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c index 14671406212f..2cd144c378d6 100644 --- a/drivers/gpu/drm/radeon/radeon_device.c +++ b/drivers/gpu/drm/radeon/radeon_device.c | |||
| @@ -1558,6 +1558,10 @@ int radeon_resume_kms(struct drm_device *dev, bool resume, bool fbcon) | |||
| 1558 | 1558 | ||
| 1559 | drm_kms_helper_poll_enable(dev); | 1559 | drm_kms_helper_poll_enable(dev); |
| 1560 | 1560 | ||
| 1561 | /* set the power state here in case we are a PX system or headless */ | ||
| 1562 | if ((rdev->pm.pm_method == PM_METHOD_DPM) && rdev->pm.dpm_enabled) | ||
| 1563 | radeon_pm_compute_clocks(rdev); | ||
| 1564 | |||
| 1561 | if (fbcon) { | 1565 | if (fbcon) { |
| 1562 | radeon_fbdev_set_suspend(rdev, 0); | 1566 | radeon_fbdev_set_suspend(rdev, 0); |
| 1563 | console_unlock(); | 1567 | console_unlock(); |
diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c index 53d6e1bb48dc..2bdae61c0ac0 100644 --- a/drivers/gpu/drm/radeon/radeon_pm.c +++ b/drivers/gpu/drm/radeon/radeon_pm.c | |||
| @@ -1104,7 +1104,6 @@ static void radeon_pm_resume_dpm(struct radeon_device *rdev) | |||
| 1104 | if (ret) | 1104 | if (ret) |
| 1105 | goto dpm_resume_fail; | 1105 | goto dpm_resume_fail; |
| 1106 | rdev->pm.dpm_enabled = true; | 1106 | rdev->pm.dpm_enabled = true; |
| 1107 | radeon_pm_compute_clocks(rdev); | ||
| 1108 | return; | 1107 | return; |
| 1109 | 1108 | ||
| 1110 | dpm_resume_fail: | 1109 | dpm_resume_fail: |
