DAC2W
DAC2W(TV_SETUP, ((DAC2R(TV_SETUP) & ~0x00000002) | 0x01000001));
DAC2W(FP_DEBUG1, 0);
DAC2W(FP_HVALID_S, 0);
DAC2W(FP_HVALID_E, (si->ps.p2_timing.h_display - 1));
DAC2W(FP_VVALID_S, 0);
DAC2W(FP_VVALID_E, (si->ps.p2_timing.v_display - 1));
DAC2W(FP_DEBUG2, 0x00000000);
DAC2W(FP_TG_CTRL, (DAC2R(FP_TG_CTRL) | 0x00000100));
DAC2W(FP_TG_CTRL, (DAC2R(FP_TG_CTRL) & 0xfffffeff));
DAC2W(FP_DEBUG2, ((1 << 28) | ((target.timing.v_display - 1) << 16)));
DAC2W(FP_DEBUG2, 0x00000000);
DAC2W(FP_TG_CTRL, (DAC2R(FP_TG_CTRL) & 0xfffffeff));
DAC2W(FP_DEBUG1, (((iscale_x >> 1) & 0x00000fff) | (1 << 12)));
DAC2W(FP_HVALID_S, diff);
DAC2W(FP_HVALID_E, ((si->ps.p2_timing.h_display - diff) - 1));
DAC2W(GENCTRL, genctrl);
DAC2W(FP_TG_CTRL, ((DAC2R(FP_TG_CTRL) & 0xcfffffcc) | panelsync));
DAC2W(FP_TG_CTRL, ((DAC2R(FP_TG_CTRL) & 0xcfffffcc) | 0x20000022));
DAC2W(NV10_CURSYNC, (DAC2R(NV10_CURSYNC) | 0x02000000));
if (si->ps.card_arch == NV40A) DAC2W(CURPOS, (DAC2R(CURPOS)));
if (si->ps.card_arch == NV40A) DAC2W(CURPOS, (DAC2R(CURPOS)));
DAC2W(CURPOS, ((x & 0x0fff) | ((y & 0x0fff) << 16)));
DAC2W(TV_SETUP, ((DAC2R(TV_SETUP) & ~0x00000003) | 0x01000000));
DAC2W(PIXPLLC, ((p << 16) | (n << 8) | m));
if (si->ps.ext_pll) DAC2W(PIXPLLC2, 0x80000401);
DAC2W(TSTCTRL, (DAC2R(TSTCTRL) & 0xfffeffff));
DAC2W(OUTPUT, (output & 0x0000feee));
DAC2W(OUTPUT, (DAC2R(OUTPUT) | 0x00000001));
DAC2W(OUTPUT, output);
DAC2W(TSTCTRL, dac);
DAC2W(OUTPUT, 0x00000001);
DAC2W(OUTPUT, 0x00000101);
if (si->ps.secondary_head) DAC2W(GENCTRL, 0x00100100);
DAC2W(TSTCTRL, (DAC2R(TSTCTRL) & 0xfffeefff));
DAC2W(TSTCTRL, (DAC2R(TSTCTRL) | 0x00100000));
DAC2W(FP_TMDS_CTRL, ((1 << 16) | 0x04));
DAC2W(FP_DEBUG1, 0);
DAC2W(FP_HVALID_S, 0);
DAC2W(FP_HVALID_E, (si->ps.p2_timing.h_display - 1));
DAC2W(FP_VVALID_S, 0);
DAC2W(FP_VVALID_E, (si->ps.p2_timing.v_display - 1));
DAC2W(FP_DEBUG2, 0x00000000);
DAC2W(FP_TG_CTRL, (DAC2R(FP_TG_CTRL) | 0x00000100));
DAC2W(FP_TG_CTRL, (DAC2R(FP_TG_CTRL) & 0xfffffeff));
DAC2W(FP_DEBUG2, ((1 << 28) | ((target.timing.v_display - 1) << 16)));
DAC2W(FP_DEBUG2, 0x00000000);
DAC2W(FP_TG_CTRL, (DAC2R(FP_TG_CTRL) & 0xfffffeff));
DAC2W(FP_DEBUG1, (((iscale_x >> 1) & 0x00000fff) | (1 << 12)));
DAC2W(FP_HVALID_S, diff);
DAC2W(FP_HVALID_E, ((si->ps.p2_timing.h_display - diff) - 1));
DAC2W(GENCTRL, genctrl);
DAC2W(FP_DEBUG0, (DAC2R(FP_DEBUG0) & 0xcfffffff));
DAC2W(FP_DEBUG0, (DAC2R(FP_DEBUG0) | 0x30000000));
DAC2W(CURPOS, ((x & 0x0fff) | ((y & 0x0fff) << 16)));
DAC2W(PIXPLLC, ((p << 16) | (n << 8) | m));
if (si->ps.ext_pll) DAC2W(PIXPLLC2, 0x80000401);
DAC2W(TSTCTRL, (DAC2R(TSTCTRL) & 0xfffeffff));
DAC2W(OUTPUT, (output & 0x0000feee));
DAC2W(OUTPUT, (DAC2R(OUTPUT) | 0x00000001));
DAC2W(OUTPUT, output);
DAC2W(TSTCTRL, dac);
DAC2W(OUTPUT, 0x00000001);
DAC2W(OUTPUT, 0x00000101);
DAC2W(FP_DEBUG1, 0);
DAC2W(FP_HVALID_S, 0);
DAC2W(FP_HVALID_E, (si->ps.p2_timing.h_display - 1));
DAC2W(FP_VVALID_S, 0);
DAC2W(FP_VVALID_E, (si->ps.p2_timing.v_display - 1));
DAC2W(FP_DEBUG2, 0x00000000);
DAC2W(FP_TG_CTRL, (DAC2R(FP_TG_CTRL) | 0x00000100));
DAC2W(FP_TG_CTRL, (DAC2R(FP_TG_CTRL) & 0xfffffeff));
DAC2W(FP_DEBUG2, ((1 << 28) | ((target.timing.v_display - 1) << 16)));
DAC2W(FP_DEBUG2, 0x00000000);
DAC2W(FP_TG_CTRL, (DAC2R(FP_TG_CTRL) & 0xfffffeff));
DAC2W(FP_DEBUG1, (((iscale_x >> 1) & 0x00000fff) | (1 << 12)));
DAC2W(FP_HVALID_S, diff);
DAC2W(FP_HVALID_E, ((si->ps.p2_timing.h_display - diff) - 1));
DAC2W(GENCTRL, genctrl);
DAC2W(FP_DEBUG0, (DAC2R(FP_DEBUG0) & 0xcfffffff));
DAC2W(FP_DEBUG0, (DAC2R(FP_DEBUG0) | 0x30000000));
DAC2W(CURPOS, ((x & 0x0fff) | ((y & 0x0fff) << 16)));
DAC2W(PIXPLLC, ((p << 16) | (n << 8) | m));
if (si->ps.ext_pll) DAC2W(PIXPLLC2, 0x80000401);
DAC2W(TSTCTRL, (DAC2R(TSTCTRL) & 0xfffeffff));
DAC2W(OUTPUT, (output & 0x0000feee));
DAC2W(OUTPUT, (DAC2R(OUTPUT) | 0x00000001));
DAC2W(OUTPUT, output);
DAC2W(TSTCTRL, dac);
DAC2W(OUTPUT, 0x00000001);
DAC2W(OUTPUT, 0x00000101);