This is a note to let you know that I've just added the patch titled drm/radeon/dpm: fix fallback for empty UVD clocks 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-dpm-fix-fallback-for-empty-uvd-clocks.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 84f3d9f7b4781dea6e11dcaf7f81367c1b39fef0 Mon Sep 17 00:00:00 2001 From: Alex Deucher <alexander.deucher@xxxxxxx> Date: Tue, 10 Sep 2013 09:40:37 -0400 Subject: drm/radeon/dpm: fix fallback for empty UVD clocks From: Alex Deucher <alexander.deucher@xxxxxxx> commit 84f3d9f7b4781dea6e11dcaf7f81367c1b39fef0 upstream. Some older 6xx-7xx boards didn't always fill in the UVD clocks properly in the UVD power states. This leads to the driver trying to set a 0 clock which results in slow or broken UVD playback. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=69120 Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/gpu/drm/radeon/rs780_dpm.c | 10 +++++++--- drivers/gpu/drm/radeon/rv770_dpm.c | 10 +++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) --- a/drivers/gpu/drm/radeon/rs780_dpm.c +++ b/drivers/gpu/drm/radeon/rs780_dpm.c @@ -717,14 +717,18 @@ static void rs780_parse_pplib_non_clock_ if (ATOM_PPLIB_NONCLOCKINFO_VER1 < table_rev) { rps->vclk = le32_to_cpu(non_clock_info->ulVCLK); rps->dclk = le32_to_cpu(non_clock_info->ulDCLK); - } else if (r600_is_uvd_state(rps->class, rps->class2)) { - rps->vclk = RS780_DEFAULT_VCLK_FREQ; - rps->dclk = RS780_DEFAULT_DCLK_FREQ; } else { rps->vclk = 0; rps->dclk = 0; } + if (r600_is_uvd_state(rps->class, rps->class2)) { + if ((rps->vclk == 0) || (rps->dclk == 0)) { + rps->vclk = RS780_DEFAULT_VCLK_FREQ; + rps->dclk = RS780_DEFAULT_DCLK_FREQ; + } + } + if (rps->class & ATOM_PPLIB_CLASSIFICATION_BOOT) rdev->pm.dpm.boot_ps = rps; if (rps->class & ATOM_PPLIB_CLASSIFICATION_UVDSTATE) --- a/drivers/gpu/drm/radeon/rv770_dpm.c +++ b/drivers/gpu/drm/radeon/rv770_dpm.c @@ -2147,14 +2147,18 @@ static void rv7xx_parse_pplib_non_clock_ if (ATOM_PPLIB_NONCLOCKINFO_VER1 < table_rev) { rps->vclk = le32_to_cpu(non_clock_info->ulVCLK); rps->dclk = le32_to_cpu(non_clock_info->ulDCLK); - } else if (r600_is_uvd_state(rps->class, rps->class2)) { - rps->vclk = RV770_DEFAULT_VCLK_FREQ; - rps->dclk = RV770_DEFAULT_DCLK_FREQ; } else { rps->vclk = 0; rps->dclk = 0; } + if (r600_is_uvd_state(rps->class, rps->class2)) { + if ((rps->vclk == 0) || (rps->dclk == 0)) { + rps->vclk = RV770_DEFAULT_VCLK_FREQ; + rps->dclk = RV770_DEFAULT_DCLK_FREQ; + } + } + if (rps->class & ATOM_PPLIB_CLASSIFICATION_BOOT) rdev->pm.dpm.boot_ps = rps; if (rps->class & ATOM_PPLIB_CLASSIFICATION_UVDSTATE) 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