atyfb: halve XCLK with Mobility and 32bit memory
authorVille Syrjala <syrjala@sci.fi>
Tue, 8 May 2007 07:39:47 +0000 (00:39 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 8 May 2007 18:15:32 +0000 (11:15 -0700)
Laptops with Rage Mobility and 32bit memory interface seem to require halved
XCLK to operate correctly.

Signed-off-by: Antonino Daplas <adaplas@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/video/aty/atyfb_base.c
include/video/mach64.h

index b61ab3b4c922f9c7a4e036cf671d2015abc9b324..ea67dd902d4ea32654bd17efae35630a1ebdfcaa 100644 (file)
@@ -2377,6 +2377,9 @@ static int __devinit aty_init(struct fb_info *info)
                /* for many chips, the mclk is 67 MHz for SDRAM, 63 MHz otherwise */
                if (par->pll_limits.mclk == 67 && par->ram_type < SDRAM)
                        par->pll_limits.mclk = 63;
+               /* Mobility + 32bit memory interface need halved XCLK. */
+               if (M64_HAS(MOBIL_BUS) && par->ram_type == SDRAM32)
+                       par->pll_limits.xclk = (par->pll_limits.xclk + 1) >> 1;
        }
 #endif
 
index 09a7f4a7289f429afffd976dc06c50d4dd605042..a8332e528ec19ef6d7b50540e615ec108ce36a0f 100644 (file)
 #define SDRAM                  4
 #define SGRAM                  5
 #define WRAM                   6
+#define SDRAM32                        6
 
 #define DAC_INTERNAL           0x00
 #define DAC_IBMRGB514          0x01