This is a note to let you know that I've just added the patch titled
drm/radeon/kms: reorder display resume to avoid problems
to the 2.6.36-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
drm-radeon-kms-reorder-display-resume-to-avoid-problems.patch
and it can be found in the queue-2.6.36 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.
>From a93f344d3c04e4b84490c65f2a574387c593be40 Mon Sep 17 00:00:00 2001
From: Alex Deucher <[email protected]>
Date: Mon, 20 Dec 2010 11:22:29 -0500
Subject: drm/radeon/kms: reorder display resume to avoid problems
From: Alex Deucher <[email protected]>
commit a93f344d3c04e4b84490c65f2a574387c593be40 upstream.
On resume, we were attemping to unblank the displays before the
timing and plls had be reprogrammed which led to atom timeouts
waiting for things that are not yet programmed. Re-program
the mode first, then reset the dpms state.
This fixes the infamous atombios timeouts on resume.
Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
drivers/gpu/drm/radeon/atombios_crtc.c | 3 ++-
drivers/gpu/drm/radeon/radeon_device.c | 9 ++++-----
2 files changed, 6 insertions(+), 6 deletions(-)
--- a/drivers/gpu/drm/radeon/atombios_crtc.c
+++ b/drivers/gpu/drm/radeon/atombios_crtc.c
@@ -253,7 +253,8 @@ void atombios_crtc_dpms(struct drm_crtc
case DRM_MODE_DPMS_SUSPEND:
case DRM_MODE_DPMS_OFF:
drm_vblank_pre_modeset(dev, radeon_crtc->crtc_id);
- atombios_blank_crtc(crtc, ATOM_ENABLE);
+ if (radeon_crtc->enabled)
+ atombios_blank_crtc(crtc, ATOM_ENABLE);
if (ASIC_IS_DCE3(rdev))
atombios_enable_crtc_memreq(crtc, ATOM_DISABLE);
atombios_enable_crtc(crtc, ATOM_DISABLE);
--- a/drivers/gpu/drm/radeon/radeon_device.c
+++ b/drivers/gpu/drm/radeon/radeon_device.c
@@ -829,11 +829,6 @@ int radeon_resume_kms(struct drm_device
radeon_pm_resume(rdev);
radeon_restore_bios_scratch_regs(rdev);
- /* turn on display hw */
- list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
- drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
- }
-
radeon_fbdev_set_suspend(rdev, 0);
release_console_sem();
@@ -841,6 +836,10 @@ int radeon_resume_kms(struct drm_device
radeon_hpd_init(rdev);
/* blat the mode back in */
drm_helper_resume_force_mode(dev);
+ /* turn on display hw */
+ list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
+ drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
+ }
return 0;
}
Patches currently in stable-queue which might be from [email protected] are
queue-2.6.36/drm-radeon-kms-don-t-apply-7xx-hdp-flush-workaround-on-agp.patch
queue-2.6.36/drm-radeon-kms-reorder-display-resume-to-avoid-problems.patch
queue-2.6.36/drm-radeon-kms-evergreen-reset-the-grbm-blocks-at-resume-and-init.patch
queue-2.6.36/drm-radeon-kms-fix-vram-base-calculation-on-rs780-rs880.patch
queue-2.6.36/drm-kms-remove-spaces-from-connector-names-v2.patch
queue-2.6.36/drm-radeon-kms-fix-evergreen-asic-reset.patch
_______________________________________________
stable mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/stable