CR2R
CR2W(CTL, ((CR2R(CTL) & ~0x02000000) | 0x00001000));
vcount = (CR2R(VCOUNT) & 0x00000fff);
CR2W(CTL, (CR2R(CTL) | 0x02000000));
CR2W(CTL,(CR2R(CTL)&0xFF10077F)|(mode<<21));
CR2W(CTL, ((CR2R(CTL) & 0xFFF0177E) | 0x01));
CR2W(CTL, (CR2R(CTL) & 0xFFF0177E));
CR2W(CTL, ((CR2R(CTL) & 0xFFF0177E) | 0x01));
CR2W(CTL, (CR2R(CTL) & 0xFFF0177E));
CR2W(DATACTL, (CR2R(DATACTL) & ~0x00000010));
CR2W(CTL, (CR2R(CTL) & ~0x02001000));
CR2W(DATACTL, (CR2R(DATACTL) & ~0x00000010));
CR2W(DATACTL, (CR2R(DATACTL) | 0x00000010));
if (si->ps.secondary_head) CR2W(CTL,(CR2R(CTL)&0xffe00779)|0xD0000002);
if (si->ps.secondary_head) CR2W(CTL,(CR2R(CTL)&0x2fe00779)|0x4|(0x1<<20));
CR2W(CTL,(CR2R(CTL)&0x2de00779)|0x6|(0x0<<20));
CR2W(CTL,(CR2R(CTL)&0x2de00779)|0x6|(0x1<<20));
CR2W(CTL, (CR2R(CTL) | 0x08)); /* disable the VIDPLL */
CR2W(CTL, (CR2R(CTL) | 0x06)); /* select the VIDPLL */
CR2W(CTL, (CR2R(CTL) & ~0x08)); /* enable the VIDPLL */
CR2W(CTL, (CR2R(CTL) | 0x06)); /* select the VIDPLL */
CR2W(CTL, (CR2R(CTL) | 0x08)); /* disable the VIDPLL */
CR2W(CTL, (CR2R(CTL) & ~0x08)); /* enable the VIDPLL */
CR2W(CTL, (CR2R(CTL) & ~0x08)); /* enable the VIDPLL */