[kernel] r15549 - in dists/sid/linux-2.6/debian: . patches/bugfix/all patches/series
Maximilian Attems
maks at alioth.debian.org
Sat Apr 24 00:38:48 UTC 2010
Author: maks
Date: Sat Apr 24 00:38:45 2010
New Revision: 15549
Log:
drm/radeon/kms: further spread spectrum fixes
add fedora 2.6.33 backport.
Added:
dists/sid/linux-2.6/debian/patches/bugfix/all/drm-radeon-kms-further-spread-spectrum-fixes.patch
Modified:
dists/sid/linux-2.6/debian/changelog
dists/sid/linux-2.6/debian/patches/series/12
Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog Sat Apr 24 00:18:07 2010 (r15548)
+++ dists/sid/linux-2.6/debian/changelog Sat Apr 24 00:38:45 2010 (r15549)
@@ -44,6 +44,7 @@
- hrtimer: Tune hrtimer_interrupt hang logic
* Add libata TRIM support.
* Backport radeon r800 modesetting support.
+ * drm/radeon/kms: further spread spectrum fixes.
[ dann frazier ]
* Add DRBD backport
Added: dists/sid/linux-2.6/debian/patches/bugfix/all/drm-radeon-kms-further-spread-spectrum-fixes.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/drm-radeon-kms-further-spread-spectrum-fixes.patch Sat Apr 24 00:38:45 2010 (r15549)
@@ -0,0 +1,97 @@
+From 7aac5b711ff4c64bad5a6027cf6d38f1bbd53efe Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied at redhat.com>
+Date: Tue, 20 Apr 2010 18:30:37 +1000
+Subject: [PATCH] drm/radeon/kms: further spread spectrum fixes
+
+Adjust modeset ordering to fix spread spectrum.
+The spread spectrum command table relies on the
+crtc routing to already be set in order to work
+properly on some asics.
+
+Should fix fdo bug 25741.
+
+Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
+Signed-off-by: Dave Airlie <airlied at redhat.com>
+
+Conflicts:
+
+ drivers/gpu/drm/radeon/atombios_crtc.c
+---
+ drivers/gpu/drm/radeon/atombios_crtc.c | 5 +++++
+ drivers/gpu/drm/radeon/radeon_encoders.c | 25 +++++++++++++++----------
+ 2 files changed, 20 insertions(+), 10 deletions(-)
+
+diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
+index c076eac..e70b575 100644
+--- a/drivers/gpu/drm/radeon/atombios_crtc.c
++++ b/drivers/gpu/drm/radeon/atombios_crtc.c
+@@ -1115,6 +1115,11 @@ static bool atombios_crtc_mode_fixup(struct drm_crtc *crtc,
+
+ static void atombios_crtc_prepare(struct drm_crtc *crtc)
+ {
++ struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc);
++
++ /* pick pll */
++ radeon_crtc->pll_id = radeon_atom_pick_pll(crtc);
++
+ atombios_lock_crtc(crtc, ATOM_ENABLE);
+ atombios_crtc_dpms(crtc, DRM_MODE_DPMS_OFF);
+ }
+diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c
+index cac9e06..ff28ad8 100644
+--- a/drivers/gpu/drm/radeon/radeon_encoders.c
++++ b/drivers/gpu/drm/radeon/radeon_encoders.c
+@@ -1207,6 +1207,9 @@ atombios_set_encoder_crtc_source(struct drm_encoder *encoder)
+ }
+
+ atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args);
++
++ /* update scratch regs with new routing */
++ radeon_atombios_encoder_crtc_scratch_regs(encoder, radeon_crtc->crtc_id);
+ }
+
+ static void
+@@ -1317,19 +1320,9 @@ radeon_atom_encoder_mode_set(struct drm_encoder *encoder,
+ struct drm_device *dev = encoder->dev;
+ struct radeon_device *rdev = dev->dev_private;
+ struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder);
+- struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc);
+
+- if (radeon_encoder->active_device &
+- (ATOM_DEVICE_DFP_SUPPORT | ATOM_DEVICE_LCD_SUPPORT)) {
+- struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv;
+- if (dig)
+- dig->dig_encoder = radeon_atom_pick_dig_encoder(encoder);
+- }
+ radeon_encoder->pixel_clock = adjusted_mode->clock;
+
+- radeon_atombios_encoder_crtc_scratch_regs(encoder, radeon_crtc->crtc_id);
+- atombios_set_encoder_crtc_source(encoder);
+-
+ if (ASIC_IS_AVIVO(rdev)) {
+ if (radeon_encoder->active_device & (ATOM_DEVICE_CV_SUPPORT | ATOM_DEVICE_TV_SUPPORT))
+ atombios_yuv_setup(encoder, true);
+@@ -1483,8 +1476,20 @@ radeon_atom_dac_detect(struct drm_encoder *encoder, struct drm_connector *connec
+
+ static void radeon_atom_encoder_prepare(struct drm_encoder *encoder)
+ {
++ struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder);
++
++ if (radeon_encoder->active_device &
++ (ATOM_DEVICE_DFP_SUPPORT | ATOM_DEVICE_LCD_SUPPORT)) {
++ struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv;
++ if (dig)
++ dig->dig_encoder = radeon_atom_pick_dig_encoder(encoder);
++ }
++
+ radeon_atom_output_lock(encoder, true);
+ radeon_atom_encoder_dpms(encoder, DRM_MODE_DPMS_OFF);
++
++ /* this is needed for the pll/ss setup to work correctly in some cases */
++ atombios_set_encoder_crtc_source(encoder);
+ }
+
+ static void radeon_atom_encoder_commit(struct drm_encoder *encoder)
+--
+1.6.5.2
+
Modified: dists/sid/linux-2.6/debian/patches/series/12
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/12 Sat Apr 24 00:18:07 2010 (r15548)
+++ dists/sid/linux-2.6/debian/patches/series/12 Sat Apr 24 00:38:45 2010 (r15549)
@@ -37,3 +37,4 @@
+ features/all/libata-Report-zeroed-read-after-TRIM-and-max-discard.patch
+ features/all/libata-Clarify-ata_set_lba_range_entries-function.patch
+ features/all/drm-radeon-evergreen.patch
++ bugfix/all/drm-radeon-kms-further-spread-spectrum-fixes.patch
More information about the Kernel-svn-changes
mailing list