diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c index b61ab3b4c922f9c7a4e036cf671d2015abc9b324..ea67dd902d4ea32654bd17efae35630a1ebdfcaa 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 09a7f4a7289f429afffd976dc06c50d4dd605042..a8332e528ec19ef6d7b50540e615ec108ce36a0f 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