[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