This is a note to let you know that I've just added the patch titled drm/radeon: disable the crtcs in mc_stop (r5xx-r7xx) (v2) to the 3.8-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-disable-the-crtcs-in-mc_stop-r5xx-r7xx-v2.patch and it can be found in the queue-3.8 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From e884fc640ccbdb6f94b9bdb57cfb8464b6688f4c Mon Sep 17 00:00:00 2001 From: Alex Deucher <alexander.deucher@xxxxxxx> Date: Wed, 17 Apr 2013 09:35:39 -0400 Subject: drm/radeon: disable the crtcs in mc_stop (r5xx-r7xx) (v2) From: Alex Deucher <alexander.deucher@xxxxxxx> commit e884fc640ccbdb6f94b9bdb57cfb8464b6688f4c upstream. Just disabling the mem requests should be enough, but that doesn't seem to work correctly on efi systems. v2: blank displays first, then disable. Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/gpu/drm/radeon/r500_reg.h | 1 + drivers/gpu/drm/radeon/rv515.c | 11 +++++++++++ 2 files changed, 12 insertions(+) --- a/drivers/gpu/drm/radeon/r500_reg.h +++ b/drivers/gpu/drm/radeon/r500_reg.h @@ -359,6 +359,7 @@ #define AVIVO_D1MODE_MASTER_UPDATE_LOCK 0x60e0 #define AVIVO_D1MODE_MASTER_UPDATE_MODE 0x60e4 +#define AVIVO_D1CRTC_UPDATE_LOCK 0x60e8 /* master controls */ #define AVIVO_DC_CRTC_MASTER_EN 0x60f8 --- a/drivers/gpu/drm/radeon/rv515.c +++ b/drivers/gpu/drm/radeon/rv515.c @@ -303,8 +303,10 @@ void rv515_mc_stop(struct radeon_device tmp = RREG32(AVIVO_D1CRTC_CONTROL + crtc_offsets[i]); if (!(tmp & AVIVO_CRTC_DISP_READ_REQUEST_DISABLE)) { radeon_wait_for_vblank(rdev, i); + WREG32(AVIVO_D1CRTC_UPDATE_LOCK + crtc_offsets[i], 1); tmp |= AVIVO_CRTC_DISP_READ_REQUEST_DISABLE; WREG32(AVIVO_D1CRTC_CONTROL + crtc_offsets[i], tmp); + WREG32(AVIVO_D1CRTC_UPDATE_LOCK + crtc_offsets[i], 0); } /* wait for the next frame */ frame_count = radeon_get_vblank_counter(rdev, i); @@ -313,6 +315,15 @@ void rv515_mc_stop(struct radeon_device break; udelay(1); } + + /* XXX this is a hack to avoid strange behavior with EFI on certain systems */ + WREG32(AVIVO_D1CRTC_UPDATE_LOCK + crtc_offsets[i], 1); + tmp = RREG32(AVIVO_D1CRTC_CONTROL + crtc_offsets[i]); + tmp &= ~AVIVO_CRTC_EN; + WREG32(AVIVO_D1CRTC_CONTROL + crtc_offsets[i], tmp); + WREG32(AVIVO_D1CRTC_UPDATE_LOCK + crtc_offsets[i], 0); + save->crtc_enabled[i] = false; + /* ***** */ } else { save->crtc_enabled[i] = false; } Patches currently in stable-queue which might be from alexander.deucher@xxxxxxx are queue-3.8/drm-radeon-fix-typo-in-rv515_mc_resume.patch queue-3.8/drm-radeon-fix-possible-segfault-when-parsing-pm-tables.patch queue-3.8/drm-radeon-disable-the-crtcs-in-mc_stop-r5xx-r7xx-v2.patch queue-3.8/drm-radeon-fix-handling-of-v6-power-tables.patch queue-3.8/drm-radeon-update-wait_for_vblank-for-evergreen.patch queue-3.8/drm-radeon-fix-endian-bugs-in-atom_allocate_fb_scratch.patch queue-3.8/drm-radeon-add-some-new-si-pci-ids.patch queue-3.8/drm-radeon-dce6-add-missing-display-reg-for-tiling-setup.patch queue-3.8/drm-radeon-fix-hdmi-mode-enable-on-rs600-rs690-rs740.patch queue-3.8/drm-radeon-always-flush-the-vm.patch queue-3.8/drm-radeon-don-t-use-get_engine_clock-on-apus.patch queue-3.8/drm-radeon-add-new-richland-pci-ids.patch queue-3.8/drm-radeon-update-wait_for_vblank-for-r5xx-r7xx.patch queue-3.8/drm-radeon-properly-lock-disp-in-mc_stop-resume-for-r5xx-r7xx.patch queue-3.8/drm-radeon-update-wait_for_vblank-for-r1xx-r4xx.patch queue-3.8/drm-radeon-disable-the-crtcs-in-mc_stop-evergreen-v2.patch queue-3.8/drm-radeon-use-frac-fb-div-on-rs780-rs880.patch queue-3.8/drm-radeon-cleanup-properly-if-mmio-mapping-fails.patch queue-3.8/drm-radeon-evergreen-don-t-enable-hpd-interrupts-on-edp-lvds.patch queue-3.8/drm-radeon-fix-typo-in-si_select_se_sh.patch queue-3.8/drm-radeon-properly-lock-disp-in-mc_stop-resume-for-evergreen.patch -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html