Bug#508999: patch for #508999 (wrong frequencies on Radeon Xpress 200) for lenny

Bernhard R. Link brlink at debian.org
Mon Jan 5 01:40:44 PST 2009


As the experimental version needs so many changes, how about the
attached patch to fix the issue for lenny?

It modifies nothing but adds another RADEON_CLOCK_CNTL_INDEX to 0
setting, like it is already there for CHIP_FAMILY_RV410, just more
limited (not within RADEONRestoreLVDSRegisters but only after one
specific call of it and with more guards) and changes nothing else.

Thanks in advance,
	Bernhard R. Link
-------------- next part --------------
--- xserver-xorg-video-ati-6.9.0.orig/src/legacy_output.c
+++ xserver-xorg-video-ati-6.9.0/src/legacy_output.c
@@ -153,6 +153,15 @@
 
 }
 
+static void
+RADEONSelDiv0(ScrnInfoPtr pScrn)
+{
+	RADEONInfoPtr  info       = RADEONPTR(pScrn);
+	unsigned char *RADEONMMIO = info->MMIO;
+
+	OUTREG(RADEON_CLOCK_CNTL_INDEX, 0);
+}
+
 /* Write LVDS registers */
 void
 RADEONRestoreLVDSRegisters(ScrnInfoPtr pScrn, RADEONSavePtr restore)
@@ -165,7 +174,7 @@
 	/*OUTREG(RADEON_LVDS_PLL_CNTL,  restore->lvds_pll_cntl);*/
 
 	if (info->ChipFamily == CHIP_FAMILY_RV410) {
-	    OUTREG(RADEON_CLOCK_CNTL_INDEX, 0);
+	    RADEONSelDiv0(pScrn);
 	}
     }
 
@@ -1417,6 +1426,8 @@
     case MT_LCD:
 	ErrorF("restore LVDS\n");
 	RADEONRestoreLVDSRegisters(pScrn, info->ModeReg);
+	if (radeon_crtc->crtc_id == 0 && info->ChipFamily == CHIP_FAMILY_RS480)
+	    RADEONSelDiv0(pScrn);
 	break;
     case MT_DFP:
 	if (radeon_output->TMDSType == TMDS_INT) {


More information about the xorg-driver-ati mailing list