[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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



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
--- 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) {

Reply to: