Lines Matching refs:par
150 static inline void write_le32(int regindex, u32 val, const struct neofb_par *par) in write_le32() argument
152 writel(val, par->neo2200 + par->cursorOff + regindex); in write_le32()
208 struct neofb_par *par, long freq) in neoCalcVCLK() argument
238 par->VCLK3NumeratorLow = n_best; in neoCalcVCLK()
239 par->VCLK3NumeratorHigh = (f_best << 7); in neoCalcVCLK()
241 par->VCLK3NumeratorLow = n_best | (f_best << 7); in neoCalcVCLK()
243 par->VCLK3Denominator = d_best; in neoCalcVCLK()
248 par->VCLK3NumeratorLow, in neoCalcVCLK()
249 par->VCLK3NumeratorHigh, in neoCalcVCLK()
250 par->VCLK3Denominator, f_best_diff); in neoCalcVCLK()
261 struct neofb_par *par) in vgaHWInit() argument
269 par->MiscOutReg = 0x23; in vgaHWInit()
272 par->MiscOutReg |= 0x40; in vgaHWInit()
275 par->MiscOutReg |= 0x80; in vgaHWInit()
280 par->Sequencer[0] = 0x00; in vgaHWInit()
281 par->Sequencer[1] = 0x01; in vgaHWInit()
282 par->Sequencer[2] = 0x0F; in vgaHWInit()
283 par->Sequencer[3] = 0x00; /* Font select */ in vgaHWInit()
284 par->Sequencer[4] = 0x0E; /* Misc */ in vgaHWInit()
289 par->CRTC[0] = htotal - 5; in vgaHWInit()
290 par->CRTC[1] = (var->xres >> 3) - 1; in vgaHWInit()
291 par->CRTC[2] = (var->xres >> 3) - 1; in vgaHWInit()
292 par->CRTC[3] = ((htotal - 1) & 0x1F) | 0x80; in vgaHWInit()
293 par->CRTC[4] = ((var->xres + var->right_margin) >> 3); in vgaHWInit()
294 par->CRTC[5] = (((htotal - 1) & 0x20) << 2) in vgaHWInit()
296 par->CRTC[6] = (vtotal - 2) & 0xFF; in vgaHWInit()
297 par->CRTC[7] = (((vtotal - 2) & 0x100) >> 8) in vgaHWInit()
304 par->CRTC[8] = 0x00; in vgaHWInit()
305 par->CRTC[9] = (((var->yres - 1) & 0x200) >> 4) | 0x40; in vgaHWInit()
308 par->CRTC[9] |= 0x80; in vgaHWInit()
310 par->CRTC[10] = 0x00; in vgaHWInit()
311 par->CRTC[11] = 0x00; in vgaHWInit()
312 par->CRTC[12] = 0x00; in vgaHWInit()
313 par->CRTC[13] = 0x00; in vgaHWInit()
314 par->CRTC[14] = 0x00; in vgaHWInit()
315 par->CRTC[15] = 0x00; in vgaHWInit()
316 par->CRTC[16] = vsync_start & 0xFF; in vgaHWInit()
317 par->CRTC[17] = (vsync_end & 0x0F) | 0x20; in vgaHWInit()
318 par->CRTC[18] = (var->yres - 1) & 0xFF; in vgaHWInit()
319 par->CRTC[19] = var->xres_virtual >> 4; in vgaHWInit()
320 par->CRTC[20] = 0x00; in vgaHWInit()
321 par->CRTC[21] = (var->yres - 1) & 0xFF; in vgaHWInit()
322 par->CRTC[22] = (vtotal - 1) & 0xFF; in vgaHWInit()
323 par->CRTC[23] = 0xC3; in vgaHWInit()
324 par->CRTC[24] = 0xFF; in vgaHWInit()
335 par->Graphics[0] = 0x00; in vgaHWInit()
336 par->Graphics[1] = 0x00; in vgaHWInit()
337 par->Graphics[2] = 0x00; in vgaHWInit()
338 par->Graphics[3] = 0x00; in vgaHWInit()
339 par->Graphics[4] = 0x00; in vgaHWInit()
340 par->Graphics[5] = 0x40; in vgaHWInit()
341 par->Graphics[6] = 0x05; /* only map 64k VGA memory !!!! */ in vgaHWInit()
342 par->Graphics[7] = 0x0F; in vgaHWInit()
343 par->Graphics[8] = 0xFF; in vgaHWInit()
346 par->Attribute[0] = 0x00; /* standard colormap translation */ in vgaHWInit()
347 par->Attribute[1] = 0x01; in vgaHWInit()
348 par->Attribute[2] = 0x02; in vgaHWInit()
349 par->Attribute[3] = 0x03; in vgaHWInit()
350 par->Attribute[4] = 0x04; in vgaHWInit()
351 par->Attribute[5] = 0x05; in vgaHWInit()
352 par->Attribute[6] = 0x06; in vgaHWInit()
353 par->Attribute[7] = 0x07; in vgaHWInit()
354 par->Attribute[8] = 0x08; in vgaHWInit()
355 par->Attribute[9] = 0x09; in vgaHWInit()
356 par->Attribute[10] = 0x0A; in vgaHWInit()
357 par->Attribute[11] = 0x0B; in vgaHWInit()
358 par->Attribute[12] = 0x0C; in vgaHWInit()
359 par->Attribute[13] = 0x0D; in vgaHWInit()
360 par->Attribute[14] = 0x0E; in vgaHWInit()
361 par->Attribute[15] = 0x0F; in vgaHWInit()
362 par->Attribute[16] = 0x41; in vgaHWInit()
363 par->Attribute[17] = 0xFF; in vgaHWInit()
364 par->Attribute[18] = 0x0F; in vgaHWInit()
365 par->Attribute[19] = 0x00; in vgaHWInit()
366 par->Attribute[20] = 0x00; in vgaHWInit()
449 const struct neofb_par *par) in vgaHWRestore() argument
453 vga_w(NULL, VGA_MIS_W, par->MiscOutReg); in vgaHWRestore()
456 vga_wseq(NULL, i, par->Sequencer[i]); in vgaHWRestore()
459 vga_wcrt(NULL, 17, par->CRTC[17] & ~0x80); in vgaHWRestore()
462 vga_wcrt(NULL, i, par->CRTC[i]); in vgaHWRestore()
465 vga_wgfx(NULL, i, par->Graphics[i]); in vgaHWRestore()
470 VGAwATTR(i, par->Attribute[i]); in vgaHWRestore()
483 struct neofb_par *par = info->par; in neo2200_sync() local
485 while (readl(&par->neo2200->bltStat) & 1) in neo2200_sync()
522 struct neofb_par *par = info->par; in neo2200_accel_init() local
523 Neo2200 __iomem *neo2200 = par->neo2200; in neo2200_accel_init()
557 struct neofb_par *par = info->par; in neofb_open() local
559 if (!par->ref_count) { in neofb_open()
560 memset(&par->state, 0, sizeof(struct vgastate)); in neofb_open()
561 par->state.flags = VGA_SAVE_MODE | VGA_SAVE_FONTS; in neofb_open()
562 save_vga(&par->state); in neofb_open()
564 par->ref_count++; in neofb_open()
572 struct neofb_par *par = info->par; in neofb_release() local
574 if (!par->ref_count) in neofb_release()
577 if (par->ref_count == 1) { in neofb_release()
578 restore_vga(&par->state); in neofb_release()
580 par->ref_count--; in neofb_release()
588 struct neofb_par *par = info->par; in neofb_check_var() local
594 if (PICOS2KHZ(var->pixclock) > par->maxClock) in neofb_check_var()
598 if (par->internal_display && in neofb_check_var()
599 ((var->xres > par->NeoPanelWidth) || in neofb_check_var()
600 (var->yres > par->NeoPanelHeight))) { in neofb_check_var()
603 var->xres, var->yres, par->NeoPanelWidth, in neofb_check_var()
604 par->NeoPanelHeight); in neofb_check_var()
609 if (!par->internal_display) in neofb_check_var()
622 if (var->yres == (par->libretto ? 480 : 600)) in neofb_check_var()
721 if (var->bits_per_pixel >= 24 || !par->neo2200) in neofb_check_var()
728 struct neofb_par *par = info->par; in neofb_set_par() local
749 if (vgaHWInit(&info->var, par)) in neofb_set_par()
756 par->Attribute[16] = 0x01; in neofb_set_par()
760 par->CRTC[0x13] = info->var.xres_virtual >> 3; in neofb_set_par()
761 par->ExtCRTOffset = info->var.xres_virtual >> 11; in neofb_set_par()
762 par->ExtColorModeSelect = 0x11; in neofb_set_par()
765 par->CRTC[0x13] = info->var.xres_virtual >> 2; in neofb_set_par()
766 par->ExtCRTOffset = info->var.xres_virtual >> 10; in neofb_set_par()
767 par->ExtColorModeSelect = 0x13; in neofb_set_par()
770 par->CRTC[0x13] = (info->var.xres_virtual * 3) >> 3; in neofb_set_par()
771 par->ExtCRTOffset = (info->var.xres_virtual * 3) >> 11; in neofb_set_par()
772 par->ExtColorModeSelect = 0x14; in neofb_set_par()
776 par->CRTC[0x13] = info->var.xres_virtual >> 1; in neofb_set_par()
777 par->ExtCRTOffset = info->var.xres_virtual >> 9; in neofb_set_par()
778 par->ExtColorModeSelect = 0x15; in neofb_set_par()
785 par->ExtCRTDispAddr = 0x10; in neofb_set_par()
788 par->VerticalExt = (((vtotal - 2) & 0x400) >> 10) in neofb_set_par()
794 if (par->pci_burst) in neofb_set_par()
795 par->SysIfaceCntl1 = 0x30; in neofb_set_par()
797 par->SysIfaceCntl1 = 0x00; in neofb_set_par()
799 par->SysIfaceCntl2 = 0xc0; /* VESA Bios sets this to 0x80! */ in neofb_set_par()
802 par->PanelDispCntlRegRead = 1; in neofb_set_par()
805 par->PanelDispCntlReg1 = 0x00; in neofb_set_par()
806 if (par->internal_display) in neofb_set_par()
807 par->PanelDispCntlReg1 |= 0x02; in neofb_set_par()
808 if (par->external_display) in neofb_set_par()
809 par->PanelDispCntlReg1 |= 0x01; in neofb_set_par()
812 if (par->PanelDispCntlReg1 == 0x00) { in neofb_set_par()
814 par->PanelDispCntlReg1 = vga_rgfx(NULL, 0x20) & 0x03; in neofb_set_par()
820 par->PanelDispCntlReg1 |= 0x60; in neofb_set_par()
823 par->PanelDispCntlReg1 |= 0x40; in neofb_set_par()
826 par->PanelDispCntlReg1 |= 0x20; in neofb_set_par()
834 switch (par->PanelDispCntlReg1 & 0x03) { in neofb_set_par()
836 par->GeneralLockReg = 0x00; in neofb_set_par()
838 par->ProgramVCLK = 1; in neofb_set_par()
842 par->GeneralLockReg = 0x01; in neofb_set_par()
844 par->ProgramVCLK = 0; in neofb_set_par()
854 par->PanelDispCntlReg2 = 0x00; in neofb_set_par()
855 par->PanelDispCntlReg3 = 0x00; in neofb_set_par()
857 if (par->lcd_stretch && (par->PanelDispCntlReg1 == 0x02) && /* LCD only */ in neofb_set_par()
858 (info->var.xres != par->NeoPanelWidth)) { in neofb_set_par()
866 par->PanelDispCntlReg2 |= 0xC6; in neofb_set_par()
879 par->PanelVertCenterReg1 = 0x00; in neofb_set_par()
880 par->PanelVertCenterReg2 = 0x00; in neofb_set_par()
881 par->PanelVertCenterReg3 = 0x00; in neofb_set_par()
882 par->PanelVertCenterReg4 = 0x00; in neofb_set_par()
883 par->PanelVertCenterReg5 = 0x00; in neofb_set_par()
884 par->PanelHorizCenterReg1 = 0x00; in neofb_set_par()
885 par->PanelHorizCenterReg2 = 0x00; in neofb_set_par()
886 par->PanelHorizCenterReg3 = 0x00; in neofb_set_par()
887 par->PanelHorizCenterReg4 = 0x00; in neofb_set_par()
888 par->PanelHorizCenterReg5 = 0x00; in neofb_set_par()
891 if (par->PanelDispCntlReg1 & 0x02) { in neofb_set_par()
892 if (info->var.xres == par->NeoPanelWidth) { in neofb_set_par()
898 par->PanelDispCntlReg2 |= 0x01; in neofb_set_par()
899 par->PanelDispCntlReg3 |= 0x10; in neofb_set_par()
904 ((par->NeoPanelWidth - in neofb_set_par()
907 ((par->NeoPanelHeight - in neofb_set_par()
917 par->PanelHorizCenterReg3 = hoffset; in neofb_set_par()
918 par->PanelVertCenterReg2 = voffset; in neofb_set_par()
921 par->PanelHorizCenterReg4 = hoffset; in neofb_set_par()
922 par->PanelVertCenterReg1 = voffset; in neofb_set_par()
925 par->PanelHorizCenterReg1 = hoffset; in neofb_set_par()
926 par->PanelVertCenterReg3 = voffset; in neofb_set_par()
929 par->PanelHorizCenterReg2 = hoffset; in neofb_set_par()
930 par->PanelVertCenterReg4 = voffset; in neofb_set_par()
933 par->PanelHorizCenterReg5 = hoffset; in neofb_set_par()
934 par->PanelVertCenterReg5 = voffset; in neofb_set_par()
944 par->biosMode = in neofb_set_par()
952 neoCalcVCLK(info, par, PICOS2KHZ(info->var.pixclock)); in neofb_set_par()
955 par->MiscOutReg |= 0x0C; in neofb_set_par()
964 vga_wgfx(NULL, 0x0A, par->GeneralLockReg); in neofb_set_par()
977 temp |= (par->ExtColorModeSelect & ~0xF0); in neofb_set_par()
988 temp |= (par->ExtColorModeSelect & ~0x70); in neofb_set_par()
1016 vgaHWRestore(info, par); in neofb_set_par()
1053 vga_wgfx(NULL, 0x0E, par->ExtCRTDispAddr); in neofb_set_par()
1054 vga_wgfx(NULL, 0x0F, par->ExtCRTOffset); in neofb_set_par()
1057 temp |= (par->SysIfaceCntl1 & ~0x0F); /* VESA Bios sets bit 1! */ in neofb_set_par()
1060 vga_wgfx(NULL, 0x11, par->SysIfaceCntl2); in neofb_set_par()
1068 temp |= (par->PanelDispCntlReg1 & ~0xFC); in neofb_set_par()
1075 temp |= (par->PanelDispCntlReg1 & ~0xDC); in neofb_set_par()
1082 temp |= (par->PanelDispCntlReg1 & ~0x98); in neofb_set_par()
1089 temp |= (par->PanelDispCntlReg2 & ~0x38); in neofb_set_par()
1095 temp |= (par->PanelDispCntlReg3 & ~0xEF); in neofb_set_par()
1099 vga_wgfx(NULL, 0x28, par->PanelVertCenterReg1); in neofb_set_par()
1100 vga_wgfx(NULL, 0x29, par->PanelVertCenterReg2); in neofb_set_par()
1101 vga_wgfx(NULL, 0x2a, par->PanelVertCenterReg3); in neofb_set_par()
1104 vga_wgfx(NULL, 0x32, par->PanelVertCenterReg4); in neofb_set_par()
1105 vga_wgfx(NULL, 0x33, par->PanelHorizCenterReg1); in neofb_set_par()
1106 vga_wgfx(NULL, 0x34, par->PanelHorizCenterReg2); in neofb_set_par()
1107 vga_wgfx(NULL, 0x35, par->PanelHorizCenterReg3); in neofb_set_par()
1111 vga_wgfx(NULL, 0x36, par->PanelHorizCenterReg4); in neofb_set_par()
1117 vga_wgfx(NULL, 0x36, par->PanelHorizCenterReg4); in neofb_set_par()
1118 vga_wgfx(NULL, 0x37, par->PanelVertCenterReg5); in neofb_set_par()
1119 vga_wgfx(NULL, 0x38, par->PanelHorizCenterReg5); in neofb_set_par()
1125 if (par->ProgramVCLK && ((vga_rgfx(NULL, 0x9B) != par->VCLK3NumeratorLow) in neofb_set_par()
1126 || (vga_rgfx(NULL, 0x9F) != par->VCLK3Denominator) in neofb_set_par()
1128 != (par->VCLK3NumeratorHigh & in neofb_set_par()
1130 vga_wgfx(NULL, 0x9B, par->VCLK3NumeratorLow); in neofb_set_par()
1134 temp |= (par->VCLK3NumeratorHigh & ~0x0F); in neofb_set_par()
1137 vga_wgfx(NULL, 0x9F, par->VCLK3Denominator); in neofb_set_par()
1140 if (par->biosMode) in neofb_set_par()
1141 vga_wcrt(NULL, 0x23, par->biosMode); in neofb_set_par()
1150 vga_wcrt(NULL, 0x70, par->VerticalExt); in neofb_set_par()
1156 neoLock(&par->state); in neofb_set_par()
1180 struct neofb_par *par = info->par; in neofb_pan_display() local
1181 struct vgastate *state = &par->state; in neofb_pan_display()
1269 struct neofb_par *par = info->par; in neofb_blank() local
1278 neoLock(&par->state); in neofb_blank()
1284 if (par->PanelDispCntlRegRead) { in neofb_blank()
1285 par->PanelDispCntlReg1 = tmpdisp; in neofb_blank()
1287 par->PanelDispCntlRegRead = !blank_mode; in neofb_blank()
1329 lcdflags = ((par->PanelDispCntlReg1 | tmpdisp) & 0x02); /* LCD normal */ in neofb_blank()
1334 lcdflags = ((par->PanelDispCntlReg1 | tmpdisp) & 0x02); /* LCD normal */ in neofb_blank()
1361 neoLock(&par->state); in neofb_blank()
1368 struct neofb_par *par = info->par; in neo2200_fillrect() local
1381 rop, &par->neo2200->bltCntl); in neo2200_fillrect()
1385 writel(rect->color, &par->neo2200->fgColor); in neo2200_fillrect()
1390 &par->neo2200->fgColor); in neo2200_fillrect()
1395 &par->neo2200->dstStart); in neo2200_fillrect()
1397 &par->neo2200->xyExt); in neo2200_fillrect()
1404 struct neofb_par *par = info->par; in neo2200_copyarea() local
1425 writel(bltCntl, &par->neo2200->bltCntl); in neo2200_copyarea()
1427 writel(src, &par->neo2200->srcStart); in neo2200_copyarea()
1428 writel(dst, &par->neo2200->dstStart); in neo2200_copyarea()
1430 &par->neo2200->xyExt); in neo2200_copyarea()
1436 struct neofb_par *par = info->par; in neo2200_imageblit() local
1470 writel(image->fg_color, &par->neo2200->fgColor); in neo2200_imageblit()
1471 writel(image->bg_color, &par->neo2200->bgColor); in neo2200_imageblit()
1476 &par->neo2200->fgColor); in neo2200_imageblit()
1478 &par->neo2200->bgColor); in neo2200_imageblit()
1485 0x0c0000, &par->neo2200->bltCntl); in neo2200_imageblit()
1487 writel(0, &par->neo2200->srcStart); in neo2200_imageblit()
1490 image->dy * info->fix.line_length), &par->neo2200->dstStart); in neo2200_imageblit()
1492 &par->neo2200->xyExt); in neo2200_imageblit()
1494 memcpy_toio(par->mmio_vbase + 0x100000, image->data, data_len); in neo2200_imageblit()
1651 struct neofb_par *par = info->par; in neo_map_mmio() local
1684 par->mmio_vbase = ioremap(info->fix.mmio_start, MMIO_SIZE); in neo_map_mmio()
1685 if (!par->mmio_vbase) { in neo_map_mmio()
1692 par->mmio_vbase); in neo_map_mmio()
1698 struct neofb_par *par = info->par; in neo_unmap_mmio() local
1702 iounmap(par->mmio_vbase); in neo_unmap_mmio()
1703 par->mmio_vbase = NULL; in neo_unmap_mmio()
1737 ((struct neofb_par *)(info->par))->mtrr = in neo_map_video()
1761 struct neofb_par *par = info->par; in neo_unmap_video() local
1763 mtrr_del(par->mtrr, info->fix.smem_start, in neo_unmap_video()
1776 struct neofb_par *par = info->par; in neo_scan_monitor() local
1790 if (!par->internal_display && !par->external_display) { in neo_scan_monitor()
1791 par->internal_display = display & 2 || !(display & 3) ? 1 : 0; in neo_scan_monitor()
1792 par->external_display = display & 1; in neo_scan_monitor()
1794 par->internal_display && par->external_display ? "simultaneous" : in neo_scan_monitor()
1795 par->internal_display ? "internal" : "external"); in neo_scan_monitor()
1804 par->NeoPanelWidth = 640; in neo_scan_monitor()
1805 par->NeoPanelHeight = 480; in neo_scan_monitor()
1809 par->NeoPanelWidth = 800; in neo_scan_monitor()
1810 if (par->libretto) { in neo_scan_monitor()
1811 par->NeoPanelHeight = 480; in neo_scan_monitor()
1815 par->NeoPanelHeight = 600; in neo_scan_monitor()
1821 par->NeoPanelWidth = 1024; in neo_scan_monitor()
1822 par->NeoPanelHeight = 768; in neo_scan_monitor()
1828 par->NeoPanelWidth = 1280; in neo_scan_monitor()
1829 par->NeoPanelHeight = 1024; in neo_scan_monitor()
1839 par->NeoPanelWidth = 640; in neo_scan_monitor()
1840 par->NeoPanelHeight = 480; in neo_scan_monitor()
1846 par->NeoPanelWidth, in neo_scan_monitor()
1847 par->NeoPanelHeight, in neo_scan_monitor()
1855 struct neofb_par *par = info->par; in neo_init_hw() local
1925 par->neo2200 = (Neo2200 __iomem *) par->mmio_vbase; in neo_init_hw()
1935 par->maxClock = maxClock; in neo_init_hw()
1936 par->cursorOff = CursorOff; in neo_init_hw()
1945 struct neofb_par *par; in neo_alloc_fb_info() local
1952 par = info->par; in neo_alloc_fb_info()
1956 par->pci_burst = !nopciburst; in neo_alloc_fb_info()
1957 par->lcd_stretch = !nostretch; in neo_alloc_fb_info()
1958 par->libretto = libretto; in neo_alloc_fb_info()
1960 par->internal_display = internal; in neo_alloc_fb_info()
1961 par->external_display = external; in neo_alloc_fb_info()
2023 info->pseudo_palette = par->palette; in neo_alloc_fb_info()