Bug#508999: more on 508999 (lenny with wrong frequencies on Radeon Xpress 200)

Bernhard R. Link brlink at debian.org
Sat Dec 20 10:48:23 PST 2008


Looking at the radeon_drv sources, it looks like those are only
accessing 8 bit at RADEON_CLOCK_CNTL_INDEX and not the whole int that
radeontool is writing, changing that in the driver via

--- xserver-xorg-video-ati-6.9.0/src/radeon_driver.c	2008-12-20 19:06:32.000000000 +0100
+++ xserver-xorg-video-ati-6.9.0/src/radeon_driver.c	2008-12-20 18:29:24.000000000 +0100
@@ -544,7 +544,7 @@
     unsigned char *RADEONMMIO = info->MMIO;
     uint32_t       data;
 
-    OUTREG8(RADEON_CLOCK_CNTL_INDEX, addr & 0x3f);
+    OUTREG(RADEON_CLOCK_CNTL_INDEX, addr & 0x3f);
     RADEONPllErrataAfterIndex(info);
     data = INREG(RADEON_CLOCK_CNTL_DATA);
     RADEONPllErrataAfterData(info);
@@ -558,7 +558,7 @@
     RADEONInfoPtr  info       = RADEONPTR(pScrn);
     unsigned char *RADEONMMIO = info->MMIO;
 
-    OUTREG8(RADEON_CLOCK_CNTL_INDEX, (((addr) & 0x3f) |
+    OUTREG(RADEON_CLOCK_CNTL_INDEX, (((addr) & 0x3f) |
 				      RADEON_PLL_WR_EN));
     RADEONPllErrataAfterIndex(info);
     OUTREG(RADEON_CLOCK_CNTL_DATA, data);

fixes my problem (i.e. I get a working display, and it still works after
switching to virtual console and back and changing resolutions and all those
things).

I fear that might be the case because it is overwriting some other data
in there that causes this, but I guess to know this someone with
knowledge about this registers is needed...

Hochachtungsvoll,
	Bernhard R. Link





More information about the xorg-driver-ati mailing list