On Thu, 2004-05-13 at 15:53, [EMAIL PROTECTED] wrote: > Just thought i'd add my two cents in. I've been > having the exact same problem (same new 2004 ibook), > when I start X I get blinking horizontal lines and > then when I try and kill the xserver the whole ibook > locks up. > > I'm using vanilla 2.6.6 kernel confiuged according to > instructions in: > http://seb.france.free.fr/linux/ibookG4/iBookG4-howto.html
Apply this patch to 2.6.6 to get radeonfb to not flicker on this newer model. ===== drivers/video/aty/radeon_base.c 1.12 vs edited ===== --- 1.12/drivers/video/aty/radeon_base.c Fri Mar 5 21:40:50 2004 +++ edited/drivers/video/aty/radeon_base.c Thu May 13 11:22:21 2004 @@ -1144,6 +1144,7 @@ /* Set PPLL ref. div */ if (rinfo->family == CHIP_FAMILY_R300 || + rinfo->family == CHIP_FAMILY_RS300 || rinfo->family == CHIP_FAMILY_R350 || rinfo->family == CHIP_FAMILY_RV350) { if (mode->ppll_ref_div & R300_PPLL_REF_DIV_ACC_MASK) { @@ -1855,7 +1856,8 @@ rinfo->family == CHIP_FAMILY_RV280 || rinfo->family == CHIP_FAMILY_RV350) && !machine_is_compatible("PowerBook4,3") && - !machine_is_compatible("PowerBook6,3")) + !machine_is_compatible("PowerBook6,3") && + !machine_is_compatible("PowerBook6,5")) conv_table = backlight_conv_m7; else conv_table = backlight_conv_m6; @@ -2129,7 +2131,31 @@ #endif /* CONFIG_PPC_OF */ /* framebuffer size */ - tmp = INREG(CONFIG_MEMSIZE); + if ((rinfo->family == CHIP_FAMILY_RS100) || + (rinfo->family == CHIP_FAMILY_RS200) || + (rinfo->family == CHIP_FAMILY_RS300)) { + u32 tom = INREG(NB_TOM); + tmp = ((((tom >> 16) - (tom & 0xffff) + 1) << 6) * 1024); + + OUTREG(MC_FB_LOCATION, tom); + OUTREG(DISPLAY_BASE_ADDR, (tom & 0xffff) << 16); + OUTREG(CRTC2_DISPLAY_BASE_ADDR, (tom & 0xffff) << 16); + OUTREG(OV0_BASE_ADDR, (tom & 0xffff) << 16); + + /* This is supposed to fix the crtc2 noise problem. */ + OUTREG(GRPH2_BUFFER_CNTL, INREG(GRPH2_BUFFER_CNTL) & ~0x7f0000); + + if ((rinfo->family == CHIP_FAMILY_RS100) || + (rinfo->family == CHIP_FAMILY_RS200)) { + /* This is to workaround the asic bug for RMX, some versions + of BIOS dosen't have this register initialized correctly. + */ + OUTREGP(CRTC_MORE_CNTL, CRTC_H_CUTOFF_ACTIVE_EN, + ~CRTC_H_CUTOFF_ACTIVE_EN); + } + } else { + tmp = INREG(CONFIG_MEMSIZE); + } /* mem size is bits [28:0], mask off the rest */ rinfo->video_ram = tmp & CONFIG_MEMSIZE_MASK; ===== drivers/video/aty/radeon_monitor.c 1.6 vs edited ===== --- 1.6/drivers/video/aty/radeon_monitor.c Wed Mar 31 23:41:00 2004 +++ edited/drivers/video/aty/radeon_monitor.c Thu May 13 11:22:36 2004 @@ -653,7 +653,8 @@ rinfo->panel_info.use_bios_dividers = 1; } /* iBook G4 */ - if (machine_is_compatible("PowerBook6,3")) { + if (machine_is_compatible("PowerBook6,3") | + machine_is_compatible("PowerBook6,5")) { rinfo->panel_info.ref_divider = rinfo->pll.ref_div; rinfo->panel_info.post_divider = 0x6; rinfo->panel_info.fbk_divider = 0xad;