diff -rNu linux/drivers/video/aty/atyfb_base.c linux-custom/drivers/video/aty/atyfb_base.c --- linux/drivers/video/aty/atyfb_base.c 2002-08-03 02:39:45.000000000 +0200 +++ linux-custom/drivers/video/aty/atyfb_base.c 2002-09-05 15:13:11.000000000 +0200 @@ -359,7 +359,7 @@ { 0x4c50, 0x4c50, 0x00, 0x00, m64n_ltp_p, 230, 100, M64F_GT | M64F_INTEGRATED | M64F_RESET_3D | M64F_GTB_DSP }, /* 3D RAGE Mobility */ - { 0x4c4d, 0x4c4d, 0x00, 0x00, m64n_mob_p, 230, 50, M64F_GT | M64F_INTEGRATED | M64F_RESET_3D | M64F_GTB_DSP | M64F_MOBIL_BUS }, + { 0x4c4d, 0x4c4d, 0x00, 0x00, m64n_mob_p, 235, 63, M64F_GT | M64F_INTEGRATED | M64F_RESET_3D | M64F_GTB_DSP | M64F_MOBIL_BUS | M64F_XL_DLL }, { 0x4c4e, 0x4c4e, 0x00, 0x00, m64n_mob_a, 230, 50, M64F_GT | M64F_INTEGRATED | M64F_RESET_3D | M64F_GTB_DSP | M64F_MOBIL_BUS }, #endif /* CONFIG_FB_ATY_CT */ }; @@ -754,7 +754,10 @@ aty_set_crtc(info, &par->crtc); aty_st_8(CLOCK_CNTL + info->clk_wr_offset, 0, info); /* better call aty_StrobeClock ?? */ - aty_st_8(CLOCK_CNTL + info->clk_wr_offset, CLOCK_STROBE, info); + if (M64_HAS(MOBIL_BUS)&&M64_HAS(XL_DLL)) + aty_st_8(CLOCK_CNTL + info->clk_wr_offset, CLOCK_STROBE|CLOCK_SEL|CLOCK_DIV, info); + else + aty_st_8(CLOCK_CNTL + info->clk_wr_offset, CLOCK_STROBE, info); info->dac_ops->set_dac(info, &par->pll, par->crtc.bpp, accelmode); info->pll_ops->set_pll(info, &par->pll); diff -rNu linux/drivers/video/aty/mach64_ct.c linux-custom/drivers/video/aty/mach64_ct.c --- linux/drivers/video/aty/mach64_ct.c 2001-07-31 23:43:29.000000000 +0200 +++ linux-custom/drivers/video/aty/mach64_ct.c 2002-09-05 15:13:11.000000000 +0200 @@ -204,6 +204,11 @@ break; } + if (M64_HAS(MOBIL_BUS)&&M64_HAS(XL_DLL)) { + pll->pll_ext_cntl |= 0xc8; + pll->mclk_fb_div -= 1; + } + pll->pll_vclk_cntl = 0x03; /* VCLK = PLL_VCLK/VCLKx_POST */ pll->vclk_post_div = vpostdiv; } @@ -250,8 +255,10 @@ else aty_st_pll(DLL_CNTL, 0xa0, info); aty_st_pll(VFC_CNTL, 0x1b, info); - aty_st_le32(DSP_CONFIG, pll->ct.dsp_config, info); - aty_st_le32(DSP_ON_OFF, pll->ct.dsp_on_off, info); + if (!(M64_HAS(MOBIL_BUS)&&M64_HAS(XL_DLL))) { + aty_st_le32(DSP_CONFIG, pll->ct.dsp_config, info); + aty_st_le32(DSP_ON_OFF, pll->ct.dsp_on_off, info); + } } }