CR2W
CR2W(HSYNC, ((((tv_mode.timing.h_sync_end - 8) & 0x0fff) << 16) |
CR2W(VPARAM, ((((tv_mode.timing.v_display - 1) & 0x0fff) << 16) |
CR2W(VSYNC, ((((tv_mode.timing.v_sync_end - 1) & 0x0fff) << 16) |
CR2W(PRELOAD, ((((tv_mode.timing.v_sync_start - 1) & 0x0fff) << 16) |
CR2W(CTL, ((CR2R(CTL) & ~0x02000000) | 0x00001000));
CR2W(CTL, (CR2R(CTL) | 0x02000000));
CR2W(MISC, temp);
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(OFFSET,offset);
CR2W(STARTADD0, (startadd + si->fbc.bytes_per_row));
CR2W(STARTADD1, startadd);
CR2W(STARTADD0, startadd);
CR2W(DATACTL, (CR2R(DATACTL) & ~0x00000010));
CR2W(CTL, (CR2R(CTL) & ~0x02001000));
CR2W(HPARAM, ((((target.timing.h_display - 8) & 0x0fff) << 16) |
CR2W(HSYNC, ((((target.timing.h_sync_end - 8) & 0x0fff) << 16) |
CR2W(VPARAM, ((((target.timing.v_display - 1) & 0x0fff) << 16) |
CR2W(VSYNC, ((((target.timing.v_sync_end - 1) & 0x0fff) << 16) |
CR2W(PRELOAD, ((((target.timing.v_sync_start - 1) & 0x0fff) << 16) |
CR2W(MISC, temp);
CR2W(DATACTL, (CR2R(DATACTL) & ~0x00000010));
CR2W(DATACTL, (CR2R(DATACTL) | 0x00000010));
CR2W(HPARAM, ((((tv_mode.timing.h_display - 8) & 0x0fff) << 16) |
CR2W(DATACTL,0x00000000);
CR2W(DATACTL,0x00000000);
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 */