aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVille Syrjala2007-05-08 00:39:47 -0700
committerLinus Torvalds2007-05-08 11:15:32 -0700
commit159dde93692ef549a0b2012c9f25feb4df638c9c (patch)
tree177bcb3ca3210664d3f594acaa560b8d9b8aa5bc
parentb4e124c138558a0cff51398ddff9a8e44ed0b529 (diff)
atyfb: halve XCLK with Mobility and 32bit memory
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>
-rw-r--r--drivers/video/aty/atyfb_base.c3
-rw-r--r--include/video/mach64.h1
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c
index b61ab3b4c922..ea67dd902d4e 100644
--- a/drivers/video/aty/atyfb_base.c
+++ b/drivers/video/aty/atyfb_base.c
@@ -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
diff --git a/include/video/mach64.h b/include/video/mach64.h
index 09a7f4a7289f..a8332e528ec1 100644
--- a/include/video/mach64.h
+++ b/include/video/mach64.h
@@ -885,6 +885,7 @@
#define SDRAM 4
#define SGRAM 5
#define WRAM 6
+#define SDRAM32 6
#define DAC_INTERNAL 0x00
#define DAC_IBMRGB514 0x01