This is a note to let you know that I've just added the patch titled drm/radeon/atom: workaround vbios bug in transmitter table on rs880 (v2) to the 3.11-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-atom-workaround-vbios-bug-in-transmitter-table-on-rs880-v2.patch and it can be found in the queue-3.11 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 91f3a6aaf280294b07c05dfe606e6c27b7ba3c72 Mon Sep 17 00:00:00 2001 From: Alex Deucher <alexander.deucher@xxxxxxx> Date: Mon, 9 Sep 2013 10:54:22 -0400 Subject: drm/radeon/atom: workaround vbios bug in transmitter table on rs880 (v2) From: Alex Deucher <alexander.deucher@xxxxxxx> commit 91f3a6aaf280294b07c05dfe606e6c27b7ba3c72 upstream. The OUTPUT_ENABLE action jumps past the point in the coder where the data_offset is set on certain rs780 cards. This worked previously because the OUTPUT_ENABLE action is always called immediately after the ENABLE action so the data_offset remained set. In 6f8bbaf568c7f2c497558bfd04654c0b9841ad57 (drm/radeon/atom: initialize more atom interpretor elements to 0), we explictly reset data_offset to 0 between atom calls which then caused this to fail. The fix is to just skip calling the OUTPUT_ENABLE action on the problematic chipsets. The ENABLE action does the same thing and more. Ultimately, we could probably drop the OUTPUT_ENABLE action all together on DCE3 asics. fixes: https://bugzilla.kernel.org/show_bug.cgi?id=60791 v2: only rs880 seems to be affected Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/gpu/drm/radeon/atombios_encoders.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) --- a/drivers/gpu/drm/radeon/atombios_encoders.c +++ b/drivers/gpu/drm/radeon/atombios_encoders.c @@ -1652,8 +1652,12 @@ radeon_atom_encoder_dpms_dig(struct drm_ atombios_dig_encoder_setup(encoder, ATOM_ENABLE, 0); atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_SETUP, 0, 0); atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE, 0, 0); - /* some early dce3.2 boards have a bug in their transmitter control table */ - if ((rdev->family != CHIP_RV710) && (rdev->family != CHIP_RV730)) + /* some dce3.x boards have a bug in their transmitter control table. + * ACTION_ENABLE_OUTPUT can probably be dropped since ACTION_ENABLE + * does the same thing and more. + */ + if ((rdev->family != CHIP_RV710) && (rdev->family != CHIP_RV730) && + (rdev->family != CHIP_RS880)) atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE_OUTPUT, 0, 0); } if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) { Patches currently in stable-queue which might be from alexander.deucher@xxxxxxx are queue-3.11/radeon-kms-fix-uninitialised-hotplug-work-usage-in-r100_irq_process.patch queue-3.11/drm-radeon-avoid-uvd-corruptions-on-agp-cards.patch queue-3.11/drm-radeon-dpm-rs780-don-t-enable-sclk-scaling-if-not-required.patch queue-3.11/drm-radeon-fix-init-ordering-for-r600.patch queue-3.11/drm-radeon-add-berlin-pci-ids.patch queue-3.11/drm-radeon-enable-uvd-interrupts-on-cik.patch queue-3.11/drm-radeon-fix-lcd-record-parsing.patch queue-3.11/drm-radeon-fix-panel-scaling-with-edp-and-lvds-bridges.patch queue-3.11/drm-radeon-fix-resume-on-some-rs4xx-boards-v2.patch queue-3.11/drm-radeon-cik-update-gpu_init-for-an-additional-berlin-gpu.patch queue-3.11/drm-radeon-update-line-buffer-allocation-for-dce8.patch queue-3.11/drm-radeon-r6xx-add-a-stubbed-out-set_uvd_clocks-callback.patch queue-3.11/drm-radeon-si-add-support-for-cp-dma-to-cs-checker-for-compute-v2.patch queue-3.11/drm-radeon-atom-workaround-vbios-bug-in-transmitter-table-on-rs880-v2.patch queue-3.11/drm-radeon-fix-endian-bugs-in-hw-i2c-atom-routines.patch queue-3.11/drm-radeon-dpm-add-reclocking-quirk-for-asus-k70af.patch queue-3.11/drm-radeon-update-line-buffer-allocation-for-dce6.patch queue-3.11/drm-radeon-update-line-buffer-allocation-for-dce4.1-5.patch queue-3.11/drm-radeon-add-some-additional-berlin-pci-ids.patch queue-3.11/drm-radeon-dpm-handle-bapm-on-trinity.patch queue-3.11/drm-radeon-dpm-fix-fallback-for-empty-uvd-clocks.patch queue-3.11/drm-radeon-dpm-make-sure-dc-performance-level-limits-are-valid-btc-si-v2.patch queue-3.11/drm-radeon-fix-handling-of-variable-sized-arrays-for-router-objects.patch queue-3.11/drm-radeon-fill-in-gpu_init-for-berlin-gpu-cores.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