Lines Matching refs:reg

160 static inline u8 vga_inb(struct tdfx_par *par, u32 reg)
162 return inb(par->iobase + reg - 0x300);
165 static inline void vga_outb(struct tdfx_par *par, u32 reg, u8 val)
167 outb(val, par->iobase + reg - 0x300);
242 static inline u32 tdfx_inl(struct tdfx_par *par, unsigned int reg)
244 return readl(par->regbase_virt + reg);
247 static inline void tdfx_outl(struct tdfx_par *par, unsigned int reg, u32 val)
249 writel(val, par->regbase_virt + reg);
337 static void do_write_regs(struct fb_info *info, struct banshee_reg *reg)
349 tdfx_outl(par, VGAINIT1, reg->vgainit1 & 0x001FFFFF);
350 tdfx_outl(par, VIDPROCCFG, reg->vidcfg & ~0x00000001);
352 tdfx_outl(par, PLLCTRL1, reg->mempll);
353 tdfx_outl(par, PLLCTRL2, reg->gfxpll);
355 tdfx_outl(par, PLLCTRL0, reg->vidpll);
357 vga_outb(par, MISC_W, reg->misc[0x00] | 0x01);
360 seq_outb(par, i, reg->seq[i]);
363 crt_outb(par, i, reg->crt[i]);
366 gra_outb(par, i, reg->gra[i]);
369 att_outb(par, i, reg->att[i]);
371 crt_outb(par, 0x1a, reg->ext[0]);
372 crt_outb(par, 0x1b, reg->ext[1]);
378 tdfx_outl(par, VGAINIT0, reg->vgainit0);
379 tdfx_outl(par, DACMODE, reg->dacmode);
380 tdfx_outl(par, VIDDESKSTRIDE, reg->stride);
381 tdfx_outl(par, HWCURPATADDR, reg->curspataddr);
383 tdfx_outl(par, VIDSCREENSIZE, reg->screensize);
384 tdfx_outl(par, VIDDESKSTART, reg->startaddr);
385 tdfx_outl(par, VIDPROCCFG, reg->vidcfg);
386 tdfx_outl(par, VGAINIT1, reg->vgainit1);
387 tdfx_outl(par, MISCINIT0, reg->miscinit0);
390 tdfx_outl(par, SRCBASE, reg->startaddr);
391 tdfx_outl(par, DSTBASE, reg->startaddr);
552 struct banshee_reg reg;
557 memset(&reg, 0, sizeof(reg));
559 reg.vidcfg = VIDCFG_VIDPROC_ENABLE | VIDCFG_DESK_ENABLE |
567 reg.vidcfg &= ~VIDCFG_2X;
571 reg.dacmode |= DACMODE_2X;
572 reg.vidcfg |= VIDCFG_2X;
592 reg.screensize = info->var.xres | (info->var.yres << 13);
593 reg.vidcfg |= VIDCFG_HALF_MODE;
594 reg.crt[0x09] = 0x80;
600 reg.screensize = info->var.xres | (info->var.yres << 12);
601 reg.vidcfg &= ~VIDCFG_HALF_MODE;
607 reg.misc[0x00] = 0x0f |
612 reg.gra[0x05] = 0x40;
613 reg.gra[0x06] = 0x05;
614 reg.gra[0x07] = 0x0f;
615 reg.gra[0x08] = 0xff;
617 reg.att[0x00] = 0x00;
618 reg.att[0x01] = 0x01;
619 reg.att[0x02] = 0x02;
620 reg.att[0x03] = 0x03;
621 reg.att[0x04] = 0x04;
622 reg.att[0x05] = 0x05;
623 reg.att[0x06] = 0x06;
624 reg.att[0x07] = 0x07;
625 reg.att[0x08] = 0x08;
626 reg.att[0x09] = 0x09;
627 reg.att[0x0a] = 0x0a;
628 reg.att[0x0b] = 0x0b;
629 reg.att[0x0c] = 0x0c;
630 reg.att[0x0d] = 0x0d;
631 reg.att[0x0e] = 0x0e;
632 reg.att[0x0f] = 0x0f;
633 reg.att[0x10] = 0x41;
634 reg.att[0x12] = 0x0f;
636 reg.seq[0x00] = 0x03;
637 reg.seq[0x01] = 0x01; /* fixme: clkdiv2? */
638 reg.seq[0x02] = 0x0f;
639 reg.seq[0x03] = 0x00;
640 reg.seq[0x04] = 0x0e;
642 reg.crt[0x00] = ht - 4;
643 reg.crt[0x01] = hd;
644 reg.crt[0x02] = hbs;
645 reg.crt[0x03] = 0x80 | (hbe & 0x1f);
646 reg.crt[0x04] = hs;
647 reg.crt[0x05] = ((hbe & 0x20) << 2) | (he & 0x1f);
648 reg.crt[0x06] = vt;
649 reg.crt[0x07] = ((vs & 0x200) >> 2) |
656 reg.crt[0x09] |= 0x40 | ((vbs & 0x200) >> 4);
657 reg.crt[0x10] = vs;
658 reg.crt[0x11] = (ve & 0x0f) | 0x20;
659 reg.crt[0x12] = vd;
660 reg.crt[0x13] = wd;
661 reg.crt[0x15] = vbs;
662 reg.crt[0x16] = vbe + 1;
663 reg.crt[0x17] = 0xc3;
664 reg.crt[0x18] = 0xff;
667 reg.ext[0x00] = (((ht & 0x100) >> 8) |
673 reg.ext[0x01] = (((vt & 0x400) >> 10) |
678 reg.vgainit0 = VGAINIT0_8BIT_DAC |
683 reg.vgainit1 = tdfx_inl(par, VGAINIT1) & 0x1fffff;
686 reg.curspataddr = info->fix.smem_len;
688 reg.cursloc = 0;
690 reg.cursc0 = 0;
691 reg.cursc1 = 0xffffff;
693 reg.stride = info->var.xres * cpp;
694 reg.startaddr = info->var.yoffset * reg.stride
697 reg.vidpll = do_calc_pll(freq, &fout);
699 reg.mempll = do_calc_pll(..., &fout);
700 reg.gfxpll = do_calc_pll(..., &fout);
704 reg.vidcfg |= VIDCFG_INTERLACE;
705 reg.miscinit0 = tdfx_inl(par, MISCINIT0);
711 reg.miscinit0 &= ~(1 << 30);
712 reg.miscinit0 &= ~(1 << 31);
715 reg.miscinit0 |= (1 << 30);
716 reg.miscinit0 |= (1 << 31);
719 reg.miscinit0 |= (1 << 30);
720 reg.miscinit0 &= ~(1 << 31);
724 do_write_regs(info, &reg);
727 info->fix.line_length = reg.stride;