Lines Matching refs:par
145 static inline void write_le32(int regindex, u32 val, const struct neofb_par *par) in write_le32() argument
147 writel(val, par->neo2200 + par->cursorOff + regindex); in write_le32()
203 struct neofb_par *par, long freq) in neoCalcVCLK() argument
233 par->VCLK3NumeratorLow = n_best; in neoCalcVCLK()
234 par->VCLK3NumeratorHigh = (f_best << 7); in neoCalcVCLK()
236 par->VCLK3NumeratorLow = n_best | (f_best << 7); in neoCalcVCLK()
238 par->VCLK3Denominator = d_best; in neoCalcVCLK()
243 par->VCLK3NumeratorLow, in neoCalcVCLK()
244 par->VCLK3NumeratorHigh, in neoCalcVCLK()
245 par->VCLK3Denominator, f_best_diff); in neoCalcVCLK()
256 struct neofb_par *par) in vgaHWInit() argument
264 par->MiscOutReg = 0x23; in vgaHWInit()
267 par->MiscOutReg |= 0x40; in vgaHWInit()
270 par->MiscOutReg |= 0x80; in vgaHWInit()
275 par->Sequencer[0] = 0x00; in vgaHWInit()
276 par->Sequencer[1] = 0x01; in vgaHWInit()
277 par->Sequencer[2] = 0x0F; in vgaHWInit()
278 par->Sequencer[3] = 0x00; /* Font select */ in vgaHWInit()
279 par->Sequencer[4] = 0x0E; /* Misc */ in vgaHWInit()
284 par->CRTC[0] = htotal - 5; in vgaHWInit()
285 par->CRTC[1] = (var->xres >> 3) - 1; in vgaHWInit()
286 par->CRTC[2] = (var->xres >> 3) - 1; in vgaHWInit()
287 par->CRTC[3] = ((htotal - 1) & 0x1F) | 0x80; in vgaHWInit()
288 par->CRTC[4] = ((var->xres + var->right_margin) >> 3); in vgaHWInit()
289 par->CRTC[5] = (((htotal - 1) & 0x20) << 2) in vgaHWInit()
291 par->CRTC[6] = (vtotal - 2) & 0xFF; in vgaHWInit()
292 par->CRTC[7] = (((vtotal - 2) & 0x100) >> 8) in vgaHWInit()
299 par->CRTC[8] = 0x00; in vgaHWInit()
300 par->CRTC[9] = (((var->yres - 1) & 0x200) >> 4) | 0x40; in vgaHWInit()
303 par->CRTC[9] |= 0x80; in vgaHWInit()
305 par->CRTC[10] = 0x00; in vgaHWInit()
306 par->CRTC[11] = 0x00; in vgaHWInit()
307 par->CRTC[12] = 0x00; in vgaHWInit()
308 par->CRTC[13] = 0x00; in vgaHWInit()
309 par->CRTC[14] = 0x00; in vgaHWInit()
310 par->CRTC[15] = 0x00; in vgaHWInit()
311 par->CRTC[16] = vsync_start & 0xFF; in vgaHWInit()
312 par->CRTC[17] = (vsync_end & 0x0F) | 0x20; in vgaHWInit()
313 par->CRTC[18] = (var->yres - 1) & 0xFF; in vgaHWInit()
314 par->CRTC[19] = var->xres_virtual >> 4; in vgaHWInit()
315 par->CRTC[20] = 0x00; in vgaHWInit()
316 par->CRTC[21] = (var->yres - 1) & 0xFF; in vgaHWInit()
317 par->CRTC[22] = (vtotal - 1) & 0xFF; in vgaHWInit()
318 par->CRTC[23] = 0xC3; in vgaHWInit()
319 par->CRTC[24] = 0xFF; in vgaHWInit()
330 par->Graphics[0] = 0x00; in vgaHWInit()
331 par->Graphics[1] = 0x00; in vgaHWInit()
332 par->Graphics[2] = 0x00; in vgaHWInit()
333 par->Graphics[3] = 0x00; in vgaHWInit()
334 par->Graphics[4] = 0x00; in vgaHWInit()
335 par->Graphics[5] = 0x40; in vgaHWInit()
336 par->Graphics[6] = 0x05; /* only map 64k VGA memory !!!! */ in vgaHWInit()
337 par->Graphics[7] = 0x0F; in vgaHWInit()
338 par->Graphics[8] = 0xFF; in vgaHWInit()
341 par->Attribute[0] = 0x00; /* standard colormap translation */ in vgaHWInit()
342 par->Attribute[1] = 0x01; in vgaHWInit()
343 par->Attribute[2] = 0x02; in vgaHWInit()
344 par->Attribute[3] = 0x03; in vgaHWInit()
345 par->Attribute[4] = 0x04; in vgaHWInit()
346 par->Attribute[5] = 0x05; in vgaHWInit()
347 par->Attribute[6] = 0x06; in vgaHWInit()
348 par->Attribute[7] = 0x07; in vgaHWInit()
349 par->Attribute[8] = 0x08; in vgaHWInit()
350 par->Attribute[9] = 0x09; in vgaHWInit()
351 par->Attribute[10] = 0x0A; in vgaHWInit()
352 par->Attribute[11] = 0x0B; in vgaHWInit()
353 par->Attribute[12] = 0x0C; in vgaHWInit()
354 par->Attribute[13] = 0x0D; in vgaHWInit()
355 par->Attribute[14] = 0x0E; in vgaHWInit()
356 par->Attribute[15] = 0x0F; in vgaHWInit()
357 par->Attribute[16] = 0x41; in vgaHWInit()
358 par->Attribute[17] = 0xFF; in vgaHWInit()
359 par->Attribute[18] = 0x0F; in vgaHWInit()
360 par->Attribute[19] = 0x00; in vgaHWInit()
361 par->Attribute[20] = 0x00; in vgaHWInit()
444 const struct neofb_par *par) in vgaHWRestore() argument
448 vga_w(NULL, VGA_MIS_W, par->MiscOutReg); in vgaHWRestore()
451 vga_wseq(NULL, i, par->Sequencer[i]); in vgaHWRestore()
454 vga_wcrt(NULL, 17, par->CRTC[17] & ~0x80); in vgaHWRestore()
457 vga_wcrt(NULL, i, par->CRTC[i]); in vgaHWRestore()
460 vga_wgfx(NULL, i, par->Graphics[i]); in vgaHWRestore()
465 VGAwATTR(i, par->Attribute[i]); in vgaHWRestore()
478 struct neofb_par *par = info->par; in neo2200_sync() local
480 while (readl(&par->neo2200->bltStat) & 1) in neo2200_sync()
517 struct neofb_par *par = info->par; in neo2200_accel_init() local
518 Neo2200 __iomem *neo2200 = par->neo2200; in neo2200_accel_init()
552 struct neofb_par *par = info->par; in neofb_open() local
554 if (!par->ref_count) { in neofb_open()
555 memset(&par->state, 0, sizeof(struct vgastate)); in neofb_open()
556 par->state.flags = VGA_SAVE_MODE | VGA_SAVE_FONTS; in neofb_open()
557 save_vga(&par->state); in neofb_open()
559 par->ref_count++; in neofb_open()
567 struct neofb_par *par = info->par; in neofb_release() local
569 if (!par->ref_count) in neofb_release()
572 if (par->ref_count == 1) { in neofb_release()
573 restore_vga(&par->state); in neofb_release()
575 par->ref_count--; in neofb_release()
583 struct neofb_par *par = info->par; in neofb_check_var() local
589 if (PICOS2KHZ(var->pixclock) > par->maxClock) in neofb_check_var()
593 if (par->internal_display && in neofb_check_var()
594 ((var->xres > par->NeoPanelWidth) || in neofb_check_var()
595 (var->yres > par->NeoPanelHeight))) { in neofb_check_var()
598 var->xres, var->yres, par->NeoPanelWidth, in neofb_check_var()
599 par->NeoPanelHeight); in neofb_check_var()
604 if (!par->internal_display) in neofb_check_var()
617 if (var->yres == (par->libretto ? 480 : 600)) in neofb_check_var()
716 if (var->bits_per_pixel >= 24 || !par->neo2200) in neofb_check_var()
723 struct neofb_par *par = info->par; in neofb_set_par() local
744 if (vgaHWInit(&info->var, par)) in neofb_set_par()
751 par->Attribute[16] = 0x01; in neofb_set_par()
755 par->CRTC[0x13] = info->var.xres_virtual >> 3; in neofb_set_par()
756 par->ExtCRTOffset = info->var.xres_virtual >> 11; in neofb_set_par()
757 par->ExtColorModeSelect = 0x11; in neofb_set_par()
760 par->CRTC[0x13] = info->var.xres_virtual >> 2; in neofb_set_par()
761 par->ExtCRTOffset = info->var.xres_virtual >> 10; in neofb_set_par()
762 par->ExtColorModeSelect = 0x13; in neofb_set_par()
765 par->CRTC[0x13] = (info->var.xres_virtual * 3) >> 3; in neofb_set_par()
766 par->ExtCRTOffset = (info->var.xres_virtual * 3) >> 11; in neofb_set_par()
767 par->ExtColorModeSelect = 0x14; in neofb_set_par()
771 par->CRTC[0x13] = info->var.xres_virtual >> 1; in neofb_set_par()
772 par->ExtCRTOffset = info->var.xres_virtual >> 9; in neofb_set_par()
773 par->ExtColorModeSelect = 0x15; in neofb_set_par()
780 par->ExtCRTDispAddr = 0x10; in neofb_set_par()
783 par->VerticalExt = (((vtotal - 2) & 0x400) >> 10) in neofb_set_par()
789 if (par->pci_burst) in neofb_set_par()
790 par->SysIfaceCntl1 = 0x30; in neofb_set_par()
792 par->SysIfaceCntl1 = 0x00; in neofb_set_par()
794 par->SysIfaceCntl2 = 0xc0; /* VESA Bios sets this to 0x80! */ in neofb_set_par()
797 par->PanelDispCntlRegRead = 1; in neofb_set_par()
800 par->PanelDispCntlReg1 = 0x00; in neofb_set_par()
801 if (par->internal_display) in neofb_set_par()
802 par->PanelDispCntlReg1 |= 0x02; in neofb_set_par()
803 if (par->external_display) in neofb_set_par()
804 par->PanelDispCntlReg1 |= 0x01; in neofb_set_par()
807 if (par->PanelDispCntlReg1 == 0x00) { in neofb_set_par()
809 par->PanelDispCntlReg1 = vga_rgfx(NULL, 0x20) & 0x03; in neofb_set_par()
815 par->PanelDispCntlReg1 |= 0x60; in neofb_set_par()
818 par->PanelDispCntlReg1 |= 0x40; in neofb_set_par()
821 par->PanelDispCntlReg1 |= 0x20; in neofb_set_par()
829 switch (par->PanelDispCntlReg1 & 0x03) { in neofb_set_par()
831 par->GeneralLockReg = 0x00; in neofb_set_par()
833 par->ProgramVCLK = 1; in neofb_set_par()
837 par->GeneralLockReg = 0x01; in neofb_set_par()
839 par->ProgramVCLK = 0; in neofb_set_par()
849 par->PanelDispCntlReg2 = 0x00; in neofb_set_par()
850 par->PanelDispCntlReg3 = 0x00; in neofb_set_par()
852 if (par->lcd_stretch && (par->PanelDispCntlReg1 == 0x02) && /* LCD only */ in neofb_set_par()
853 (info->var.xres != par->NeoPanelWidth)) { in neofb_set_par()
861 par->PanelDispCntlReg2 |= 0xC6; in neofb_set_par()
874 par->PanelVertCenterReg1 = 0x00; in neofb_set_par()
875 par->PanelVertCenterReg2 = 0x00; in neofb_set_par()
876 par->PanelVertCenterReg3 = 0x00; in neofb_set_par()
877 par->PanelVertCenterReg4 = 0x00; in neofb_set_par()
878 par->PanelVertCenterReg5 = 0x00; in neofb_set_par()
879 par->PanelHorizCenterReg1 = 0x00; in neofb_set_par()
880 par->PanelHorizCenterReg2 = 0x00; in neofb_set_par()
881 par->PanelHorizCenterReg3 = 0x00; in neofb_set_par()
882 par->PanelHorizCenterReg4 = 0x00; in neofb_set_par()
883 par->PanelHorizCenterReg5 = 0x00; in neofb_set_par()
886 if (par->PanelDispCntlReg1 & 0x02) { in neofb_set_par()
887 if (info->var.xres == par->NeoPanelWidth) { in neofb_set_par()
893 par->PanelDispCntlReg2 |= 0x01; in neofb_set_par()
894 par->PanelDispCntlReg3 |= 0x10; in neofb_set_par()
899 ((par->NeoPanelWidth - in neofb_set_par()
902 ((par->NeoPanelHeight - in neofb_set_par()
912 par->PanelHorizCenterReg3 = hoffset; in neofb_set_par()
913 par->PanelVertCenterReg2 = voffset; in neofb_set_par()
916 par->PanelHorizCenterReg4 = hoffset; in neofb_set_par()
917 par->PanelVertCenterReg1 = voffset; in neofb_set_par()
920 par->PanelHorizCenterReg1 = hoffset; in neofb_set_par()
921 par->PanelVertCenterReg3 = voffset; in neofb_set_par()
924 par->PanelHorizCenterReg2 = hoffset; in neofb_set_par()
925 par->PanelVertCenterReg4 = voffset; in neofb_set_par()
928 par->PanelHorizCenterReg5 = hoffset; in neofb_set_par()
929 par->PanelVertCenterReg5 = voffset; in neofb_set_par()
939 par->biosMode = in neofb_set_par()
947 neoCalcVCLK(info, par, PICOS2KHZ(info->var.pixclock)); in neofb_set_par()
950 par->MiscOutReg |= 0x0C; in neofb_set_par()
959 vga_wgfx(NULL, 0x0A, par->GeneralLockReg); in neofb_set_par()
972 temp |= (par->ExtColorModeSelect & ~0xF0); in neofb_set_par()
983 temp |= (par->ExtColorModeSelect & ~0x70); in neofb_set_par()
1011 vgaHWRestore(info, par); in neofb_set_par()
1048 vga_wgfx(NULL, 0x0E, par->ExtCRTDispAddr); in neofb_set_par()
1049 vga_wgfx(NULL, 0x0F, par->ExtCRTOffset); in neofb_set_par()
1052 temp |= (par->SysIfaceCntl1 & ~0x0F); /* VESA Bios sets bit 1! */ in neofb_set_par()
1055 vga_wgfx(NULL, 0x11, par->SysIfaceCntl2); in neofb_set_par()
1063 temp |= (par->PanelDispCntlReg1 & ~0xFC); in neofb_set_par()
1070 temp |= (par->PanelDispCntlReg1 & ~0xDC); in neofb_set_par()
1077 temp |= (par->PanelDispCntlReg1 & ~0x98); in neofb_set_par()
1084 temp |= (par->PanelDispCntlReg2 & ~0x38); in neofb_set_par()
1090 temp |= (par->PanelDispCntlReg3 & ~0xEF); in neofb_set_par()
1094 vga_wgfx(NULL, 0x28, par->PanelVertCenterReg1); in neofb_set_par()
1095 vga_wgfx(NULL, 0x29, par->PanelVertCenterReg2); in neofb_set_par()
1096 vga_wgfx(NULL, 0x2a, par->PanelVertCenterReg3); in neofb_set_par()
1099 vga_wgfx(NULL, 0x32, par->PanelVertCenterReg4); in neofb_set_par()
1100 vga_wgfx(NULL, 0x33, par->PanelHorizCenterReg1); in neofb_set_par()
1101 vga_wgfx(NULL, 0x34, par->PanelHorizCenterReg2); in neofb_set_par()
1102 vga_wgfx(NULL, 0x35, par->PanelHorizCenterReg3); in neofb_set_par()
1106 vga_wgfx(NULL, 0x36, par->PanelHorizCenterReg4); in neofb_set_par()
1112 vga_wgfx(NULL, 0x36, par->PanelHorizCenterReg4); in neofb_set_par()
1113 vga_wgfx(NULL, 0x37, par->PanelVertCenterReg5); in neofb_set_par()
1114 vga_wgfx(NULL, 0x38, par->PanelHorizCenterReg5); in neofb_set_par()
1120 if (par->ProgramVCLK && ((vga_rgfx(NULL, 0x9B) != par->VCLK3NumeratorLow) in neofb_set_par()
1121 || (vga_rgfx(NULL, 0x9F) != par->VCLK3Denominator) in neofb_set_par()
1123 != (par->VCLK3NumeratorHigh & in neofb_set_par()
1125 vga_wgfx(NULL, 0x9B, par->VCLK3NumeratorLow); in neofb_set_par()
1129 temp |= (par->VCLK3NumeratorHigh & ~0x0F); in neofb_set_par()
1132 vga_wgfx(NULL, 0x9F, par->VCLK3Denominator); in neofb_set_par()
1135 if (par->biosMode) in neofb_set_par()
1136 vga_wcrt(NULL, 0x23, par->biosMode); in neofb_set_par()
1145 vga_wcrt(NULL, 0x70, par->VerticalExt); in neofb_set_par()
1151 neoLock(&par->state); in neofb_set_par()
1175 struct neofb_par *par = info->par; in neofb_pan_display() local
1176 struct vgastate *state = &par->state; in neofb_pan_display()
1264 struct neofb_par *par = info->par; in neofb_blank() local
1273 neoLock(&par->state); in neofb_blank()
1279 if (par->PanelDispCntlRegRead) { in neofb_blank()
1280 par->PanelDispCntlReg1 = tmpdisp; in neofb_blank()
1282 par->PanelDispCntlRegRead = !blank_mode; in neofb_blank()
1324 lcdflags = ((par->PanelDispCntlReg1 | tmpdisp) & 0x02); /* LCD normal */ in neofb_blank()
1329 lcdflags = ((par->PanelDispCntlReg1 | tmpdisp) & 0x02); /* LCD normal */ in neofb_blank()
1356 neoLock(&par->state); in neofb_blank()
1363 struct neofb_par *par = info->par; in neo2200_fillrect() local
1376 rop, &par->neo2200->bltCntl); in neo2200_fillrect()
1380 writel(rect->color, &par->neo2200->fgColor); in neo2200_fillrect()
1385 &par->neo2200->fgColor); in neo2200_fillrect()
1390 &par->neo2200->dstStart); in neo2200_fillrect()
1392 &par->neo2200->xyExt); in neo2200_fillrect()
1399 struct neofb_par *par = info->par; in neo2200_copyarea() local
1420 writel(bltCntl, &par->neo2200->bltCntl); in neo2200_copyarea()
1422 writel(src, &par->neo2200->srcStart); in neo2200_copyarea()
1423 writel(dst, &par->neo2200->dstStart); in neo2200_copyarea()
1425 &par->neo2200->xyExt); in neo2200_copyarea()
1431 struct neofb_par *par = info->par; in neo2200_imageblit() local
1465 writel(image->fg_color, &par->neo2200->fgColor); in neo2200_imageblit()
1466 writel(image->bg_color, &par->neo2200->bgColor); in neo2200_imageblit()
1471 &par->neo2200->fgColor); in neo2200_imageblit()
1473 &par->neo2200->bgColor); in neo2200_imageblit()
1480 0x0c0000, &par->neo2200->bltCntl); in neo2200_imageblit()
1482 writel(0, &par->neo2200->srcStart); in neo2200_imageblit()
1485 image->dy * info->fix.line_length), &par->neo2200->dstStart); in neo2200_imageblit()
1487 &par->neo2200->xyExt); in neo2200_imageblit()
1489 memcpy_toio(par->mmio_vbase + 0x100000, image->data, data_len); in neo2200_imageblit()
1646 struct neofb_par *par = info->par; in neo_map_mmio() local
1679 par->mmio_vbase = ioremap(info->fix.mmio_start, MMIO_SIZE); in neo_map_mmio()
1680 if (!par->mmio_vbase) { in neo_map_mmio()
1687 par->mmio_vbase); in neo_map_mmio()
1693 struct neofb_par *par = info->par; in neo_unmap_mmio() local
1697 iounmap(par->mmio_vbase); in neo_unmap_mmio()
1698 par->mmio_vbase = NULL; in neo_unmap_mmio()
1708 struct neofb_par *par = info->par; in neo_map_video() local
1732 par->wc_cookie = arch_phys_wc_add(info->fix.smem_start, in neo_map_video()
1750 struct neofb_par *par = info->par; in neo_unmap_video() local
1754 arch_phys_wc_del(par->wc_cookie); in neo_unmap_video()
1764 struct neofb_par *par = info->par; in neo_scan_monitor() local
1778 if (!par->internal_display && !par->external_display) { in neo_scan_monitor()
1779 par->internal_display = display & 2 || !(display & 3) ? 1 : 0; in neo_scan_monitor()
1780 par->external_display = display & 1; in neo_scan_monitor()
1782 par->internal_display && par->external_display ? "simultaneous" : in neo_scan_monitor()
1783 par->internal_display ? "internal" : "external"); in neo_scan_monitor()
1792 par->NeoPanelWidth = 640; in neo_scan_monitor()
1793 par->NeoPanelHeight = 480; in neo_scan_monitor()
1797 par->NeoPanelWidth = 800; in neo_scan_monitor()
1798 if (par->libretto) { in neo_scan_monitor()
1799 par->NeoPanelHeight = 480; in neo_scan_monitor()
1803 par->NeoPanelHeight = 600; in neo_scan_monitor()
1809 par->NeoPanelWidth = 1024; in neo_scan_monitor()
1810 par->NeoPanelHeight = 768; in neo_scan_monitor()
1816 par->NeoPanelWidth = 1280; in neo_scan_monitor()
1817 par->NeoPanelHeight = 1024; in neo_scan_monitor()
1827 par->NeoPanelWidth = 640; in neo_scan_monitor()
1828 par->NeoPanelHeight = 480; in neo_scan_monitor()
1834 par->NeoPanelWidth, in neo_scan_monitor()
1835 par->NeoPanelHeight, in neo_scan_monitor()
1843 struct neofb_par *par = info->par; in neo_init_hw() local
1913 par->neo2200 = (Neo2200 __iomem *) par->mmio_vbase; in neo_init_hw()
1923 par->maxClock = maxClock; in neo_init_hw()
1924 par->cursorOff = CursorOff; in neo_init_hw()
1933 struct neofb_par *par; in neo_alloc_fb_info() local
1940 par = info->par; in neo_alloc_fb_info()
1944 par->pci_burst = !nopciburst; in neo_alloc_fb_info()
1945 par->lcd_stretch = !nostretch; in neo_alloc_fb_info()
1946 par->libretto = libretto; in neo_alloc_fb_info()
1948 par->internal_display = internal; in neo_alloc_fb_info()
1949 par->external_display = external; in neo_alloc_fb_info()
2011 info->pseudo_palette = par->palette; in neo_alloc_fb_info()