Lines Matching refs:par
280 static int riva_bl_get_level_brightness(struct riva_par *par, in riva_bl_get_level_brightness() argument
283 struct fb_info *info = pci_get_drvdata(par->pdev); in riva_bl_get_level_brightness()
302 struct riva_par *par = bl_get_data(bd); in riva_bl_update_status() local
312 tmp_pmc = NV_RD32(par->riva.PMC, 0x10F0) & 0x0000FFFF; in riva_bl_update_status()
313 tmp_pcrt = NV_RD32(par->riva.PCRTC0, 0x081C) & 0xFFFFFFFC; in riva_bl_update_status()
317 tmp_pmc |= riva_bl_get_level_brightness(par, level) << 16; /* level */ in riva_bl_update_status()
319 NV_WR32(par->riva.PCRTC0, 0x081C, tmp_pcrt); in riva_bl_update_status()
320 NV_WR32(par->riva.PMC, 0x10F0, tmp_pmc); in riva_bl_update_status()
329 static void riva_bl_init(struct riva_par *par) in riva_bl_init() argument
332 struct fb_info *info = pci_get_drvdata(par->pdev); in riva_bl_init()
336 if (!par->FlatPanel) in riva_bl_init()
350 bd = backlight_device_register(name, info->dev, par, &riva_bl_ops, in riva_bl_init()
383 static inline void riva_bl_init(struct riva_par *par) {} in riva_bl_init() argument
393 static inline void CRTCout(struct riva_par *par, unsigned char index, in CRTCout() argument
396 VGA_WR08(par->riva.PCIO, 0x3d4, index); in CRTCout()
397 VGA_WR08(par->riva.PCIO, 0x3d5, val); in CRTCout()
400 static inline unsigned char CRTCin(struct riva_par *par, in CRTCin() argument
403 VGA_WR08(par->riva.PCIO, 0x3d4, index); in CRTCin()
404 return (VGA_RD08(par->riva.PCIO, 0x3d5)); in CRTCin()
407 static inline void GRAout(struct riva_par *par, unsigned char index, in GRAout() argument
410 VGA_WR08(par->riva.PVIO, 0x3ce, index); in GRAout()
411 VGA_WR08(par->riva.PVIO, 0x3cf, val); in GRAout()
414 static inline unsigned char GRAin(struct riva_par *par, in GRAin() argument
417 VGA_WR08(par->riva.PVIO, 0x3ce, index); in GRAin()
418 return (VGA_RD08(par->riva.PVIO, 0x3cf)); in GRAin()
421 static inline void SEQout(struct riva_par *par, unsigned char index, in SEQout() argument
424 VGA_WR08(par->riva.PVIO, 0x3c4, index); in SEQout()
425 VGA_WR08(par->riva.PVIO, 0x3c5, val); in SEQout()
428 static inline unsigned char SEQin(struct riva_par *par, in SEQin() argument
431 VGA_WR08(par->riva.PVIO, 0x3c4, index); in SEQin()
432 return (VGA_RD08(par->riva.PVIO, 0x3c5)); in SEQin()
435 static inline void ATTRout(struct riva_par *par, unsigned char index, in ATTRout() argument
438 VGA_WR08(par->riva.PCIO, 0x3c0, index); in ATTRout()
439 VGA_WR08(par->riva.PCIO, 0x3c0, val); in ATTRout()
442 static inline unsigned char ATTRin(struct riva_par *par, in ATTRin() argument
445 VGA_WR08(par->riva.PCIO, 0x3c0, index); in ATTRin()
446 return (VGA_RD08(par->riva.PCIO, 0x3c1)); in ATTRin()
449 static inline void MISCout(struct riva_par *par, unsigned char val) in MISCout() argument
451 VGA_WR08(par->riva.PVIO, 0x3c2, val); in MISCout()
454 static inline unsigned char MISCin(struct riva_par *par) in MISCin() argument
456 return (VGA_RD08(par->riva.PVIO, 0x3cc)); in MISCin()
492 static void rivafb_load_cursor_image(struct riva_par *par, u8 *data8, in rivafb_load_cursor_image() argument
520 writel(tmp, &par->riva.CURSOR[k++]); in rivafb_load_cursor_image()
593 static void riva_save_state(struct riva_par *par, struct riva_regs *regs) in riva_save_state() argument
598 par->riva.LockUnlock(&par->riva, 0); in riva_save_state()
600 par->riva.UnloadStateExt(&par->riva, ®s->ext); in riva_save_state()
602 regs->misc_output = MISCin(par); in riva_save_state()
605 regs->crtc[i] = CRTCin(par, i); in riva_save_state()
608 regs->attr[i] = ATTRin(par, i); in riva_save_state()
611 regs->gra[i] = GRAin(par, i); in riva_save_state()
614 regs->seq[i] = SEQin(par, i); in riva_save_state()
632 static void riva_load_state(struct riva_par *par, struct riva_regs *regs) in riva_load_state() argument
638 CRTCout(par, 0x11, 0x00); in riva_load_state()
640 par->riva.LockUnlock(&par->riva, 0); in riva_load_state()
642 par->riva.LoadStateExt(&par->riva, state); in riva_load_state()
644 MISCout(par, regs->misc_output); in riva_load_state()
652 CRTCout(par, i, regs->crtc[i]); in riva_load_state()
657 ATTRout(par, i, regs->attr[i]); in riva_load_state()
660 GRAout(par, i, regs->gra[i]); in riva_load_state()
663 SEQout(par, i, regs->seq[i]); in riva_load_state()
683 struct riva_par *par = info->par; in riva_load_video_mode() local
720 if (par->FlatPanel) { in riva_load_video_mode()
776 if (par->riva.Architecture >= NV_ARCH_10) in riva_load_video_mode()
777 par->riva.CURSOR = (U032 __iomem *)(info->screen_base + par->riva.CursorStart); in riva_load_video_mode()
788 rc = CalcStateExt(&par->riva, &newmode.ext, bpp, width, in riva_load_video_mode()
793 newmode.ext.scale = NV_RD32(par->riva.PRAMDAC, 0x00000848) & in riva_load_video_mode()
795 if (par->FlatPanel == 1) { in riva_load_video_mode()
799 if (par->SecondCRTC) { in riva_load_video_mode()
800 newmode.ext.head = NV_RD32(par->riva.PCRTC0, 0x00000860) & in riva_load_video_mode()
802 newmode.ext.head2 = NV_RD32(par->riva.PCRTC0, 0x00002860) | in riva_load_video_mode()
807 } else if (par->riva.twoHeads) { in riva_load_video_mode()
808 newmode.ext.head = NV_RD32(par->riva.PCRTC0, 0x00000860) | in riva_load_video_mode()
810 newmode.ext.head2 = NV_RD32(par->riva.PCRTC0, 0x00002860) & in riva_load_video_mode()
813 newmode.ext.vpll2 = NV_RD32(par->riva.PRAMDAC0, 0x00000520); in riva_load_video_mode()
815 if (par->FlatPanel == 1) { in riva_load_video_mode()
820 par->current_state = newmode; in riva_load_video_mode()
821 riva_load_state(par, &par->current_state); in riva_load_video_mode()
822 par->riva.LockUnlock(&par->riva, 0); /* important for HW cursor */ in riva_load_video_mode()
956 riva_set_pattern(struct riva_par *par, int clr0, int clr1, int pat0, int pat1) in riva_set_pattern() argument
958 RIVA_FIFO_FREE(par->riva, Patt, 4); in riva_set_pattern()
959 NV_WR32(&par->riva.Patt->Color0, 0, clr0); in riva_set_pattern()
960 NV_WR32(&par->riva.Patt->Color1, 0, clr1); in riva_set_pattern()
961 NV_WR32(par->riva.Patt->Monochrome, 0, pat0); in riva_set_pattern()
962 NV_WR32(par->riva.Patt->Monochrome, 4, pat1); in riva_set_pattern()
966 static inline void wait_for_idle(struct riva_par *par) in wait_for_idle() argument
968 while (par->riva.Busy(&par->riva)); in wait_for_idle()
975 riva_set_rop_solid(struct riva_par *par, int rop) in riva_set_rop_solid() argument
977 riva_set_pattern(par, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF); in riva_set_rop_solid()
978 RIVA_FIFO_FREE(par->riva, Rop, 1); in riva_set_rop_solid()
979 NV_WR32(&par->riva.Rop->Rop3, 0, rop); in riva_set_rop_solid()
985 struct riva_par *par = info->par; in riva_setup_accel() local
987 RIVA_FIFO_FREE(par->riva, Clip, 2); in riva_setup_accel()
988 NV_WR32(&par->riva.Clip->TopLeft, 0, 0x0); in riva_setup_accel()
989 NV_WR32(&par->riva.Clip->WidthHeight, 0, in riva_setup_accel()
992 riva_set_rop_solid(par, 0xcc); in riva_setup_accel()
993 wait_for_idle(par); in riva_setup_accel()
1038 struct riva_par *par = info->par; in rivafb_open() local
1041 mutex_lock(&par->open_lock); in rivafb_open()
1042 if (!par->ref_count) { in rivafb_open()
1044 memset(&par->state, 0, sizeof(struct vgastate)); in rivafb_open()
1045 par->state.flags = VGA_SAVE_MODE | VGA_SAVE_FONTS; in rivafb_open()
1047 if (par->riva.Architecture == NV_ARCH_03) in rivafb_open()
1048 par->state.flags |= VGA_SAVE_CMAP; in rivafb_open()
1049 save_vga(&par->state); in rivafb_open()
1052 CRTCout(par, 0x11, 0xFF); in rivafb_open()
1053 par->riva.LockUnlock(&par->riva, 0); in rivafb_open()
1055 riva_save_state(par, &par->initial_state); in rivafb_open()
1057 par->ref_count++; in rivafb_open()
1058 mutex_unlock(&par->open_lock); in rivafb_open()
1065 struct riva_par *par = info->par; in rivafb_release() local
1068 mutex_lock(&par->open_lock); in rivafb_release()
1069 if (!par->ref_count) { in rivafb_release()
1070 mutex_unlock(&par->open_lock); in rivafb_release()
1073 if (par->ref_count == 1) { in rivafb_release()
1074 par->riva.LockUnlock(&par->riva, 0); in rivafb_release()
1075 par->riva.LoadStateExt(&par->riva, &par->initial_state.ext); in rivafb_release()
1076 riva_load_state(par, &par->initial_state); in rivafb_release()
1078 restore_vga(&par->state); in rivafb_release()
1080 par->riva.LockUnlock(&par->riva, 1); in rivafb_release()
1082 par->ref_count--; in rivafb_release()
1083 mutex_unlock(&par->open_lock); in rivafb_release()
1091 struct riva_par *par = info->par; in rivafb_check_var() local
1109 if (par->riva.Architecture == NV_ARCH_03) in rivafb_check_var()
1195 struct riva_par *par = info->par; in rivafb_set_par() local
1200 CRTCout(par, 0x11, 0xFF); in rivafb_set_par()
1201 par->riva.LockUnlock(&par->riva, 0); in rivafb_set_par()
1208 par->cursor_reset = 1; in rivafb_set_par()
1239 struct riva_par *par = info->par; in rivafb_pan_display() local
1244 par->riva.SetStartAddress(&par->riva, base); in rivafb_pan_display()
1251 struct riva_par *par= info->par; in rivafb_blank() local
1254 tmp = SEQin(par, 0x01) & ~0x20; /* screen on/off */ in rivafb_blank()
1255 vesa = CRTCin(par, 0x1a) & ~0xc0; /* sync on/off */ in rivafb_blank()
1277 SEQout(par, 0x01, tmp); in rivafb_blank()
1278 CRTCout(par, 0x1a, vesa); in rivafb_blank()
1308 struct riva_par *par = info->par; in rivafb_setcolreg() local
1309 RIVA_HW_INST *chip = &par->riva; in rivafb_setcolreg()
1330 if (par->riva.Architecture == NV_ARCH_03) { in rivafb_setcolreg()
1333 par->palette[regno] = ((red & 0xf800) >> 1) | in rivafb_setcolreg()
1338 par->palette[regno] = ((red & 0xff00) << 8) | in rivafb_setcolreg()
1397 struct riva_par *par = info->par; in rivafb_fillrect() local
1408 if (par->riva.Architecture != NV_ARCH_03) in rivafb_fillrect()
1411 color = par->palette[rect->color]; in rivafb_fillrect()
1424 riva_set_rop_solid(par, rop); in rivafb_fillrect()
1426 RIVA_FIFO_FREE(par->riva, Bitmap, 1); in rivafb_fillrect()
1427 NV_WR32(&par->riva.Bitmap->Color1A, 0, color); in rivafb_fillrect()
1429 RIVA_FIFO_FREE(par->riva, Bitmap, 2); in rivafb_fillrect()
1430 NV_WR32(&par->riva.Bitmap->UnclippedRectangle[0].TopLeft, 0, in rivafb_fillrect()
1433 NV_WR32(&par->riva.Bitmap->UnclippedRectangle[0].WidthHeight, 0, in rivafb_fillrect()
1436 riva_set_rop_solid(par, 0xcc); in rivafb_fillrect()
1453 struct riva_par *par = info->par; in rivafb_copyarea() local
1460 RIVA_FIFO_FREE(par->riva, Blt, 3); in rivafb_copyarea()
1461 NV_WR32(&par->riva.Blt->TopLeftSrc, 0, in rivafb_copyarea()
1463 NV_WR32(&par->riva.Blt->TopLeftDst, 0, in rivafb_copyarea()
1466 NV_WR32(&par->riva.Blt->WidthHeight, 0, in rivafb_copyarea()
1499 struct riva_par *par = info->par; in rivafb_imageblit() local
1517 if (par->riva.Architecture != NV_ARCH_03) { in rivafb_imageblit()
1521 fgx = par->palette[image->fg_color]; in rivafb_imageblit()
1522 bgx = par->palette[image->bg_color]; in rivafb_imageblit()
1529 RIVA_FIFO_FREE(par->riva, Bitmap, 7); in rivafb_imageblit()
1530 NV_WR32(&par->riva.Bitmap->ClipE.TopLeft, 0, in rivafb_imageblit()
1532 NV_WR32(&par->riva.Bitmap->ClipE.BottomRight, 0, in rivafb_imageblit()
1535 NV_WR32(&par->riva.Bitmap->Color0E, 0, bgx); in rivafb_imageblit()
1536 NV_WR32(&par->riva.Bitmap->Color1E, 0, fgx); in rivafb_imageblit()
1537 NV_WR32(&par->riva.Bitmap->WidthHeightInE, 0, in rivafb_imageblit()
1539 NV_WR32(&par->riva.Bitmap->WidthHeightOutE, 0, in rivafb_imageblit()
1541 NV_WR32(&par->riva.Bitmap->PointE, 0, in rivafb_imageblit()
1544 d = &par->riva.Bitmap->MonochromeData01E; in rivafb_imageblit()
1549 RIVA_FIFO_FREE(par->riva, Bitmap, 16); in rivafb_imageblit()
1559 RIVA_FIFO_FREE(par->riva, Bitmap, size); in rivafb_imageblit()
1584 struct riva_par *par = info->par; in rivafb_cursor() local
1592 par->riva.ShowHideCursor(&par->riva, 0); in rivafb_cursor()
1594 if (par->cursor_reset) { in rivafb_cursor()
1596 par->cursor_reset = 0; in rivafb_cursor()
1600 memset_io(par->riva.CURSOR, 0, MAX_CURS * MAX_CURS * 2); in rivafb_cursor()
1610 NV_WR32(par->riva.PRAMDAC, 0x0000300, temp); in rivafb_cursor()
1651 par->riva.LockUnlock(&par->riva, 0); in rivafb_cursor()
1653 rivafb_load_cursor_image(par, data, bg, fg, in rivafb_cursor()
1661 par->riva.ShowHideCursor(&par->riva, 1); in rivafb_cursor()
1668 struct riva_par *par = info->par; in rivafb_sync() local
1670 wait_for_idle(par); in rivafb_sync()
1700 struct riva_par *par = info->par; in riva_set_fbinfo() local
1711 if ((par->riva.Architecture == NV_ARCH_30) || noaccel) { in riva_set_fbinfo()
1720 info->pseudo_palette = par->pseudo_palette; in riva_set_fbinfo()
1736 struct riva_par *par = info->par; in riva_get_EDID_OF() local
1755 par->EDID = (unsigned char *)pedid; in riva_get_EDID_OF()
1768 struct riva_par *par = info->par; in riva_get_EDID_i2c() local
1773 riva_create_i2c_busses(par); in riva_get_EDID_i2c()
1775 if (!par->chan[i].par) in riva_get_EDID_i2c()
1777 riva_probe_i2c_connector(par, i, &par->EDID); in riva_get_EDID_i2c()
1778 if (par->EDID && !fb_parse_edid(par->EDID, &var)) { in riva_get_EDID_i2c()
1785 return (par->EDID) ? 1 : 0; in riva_get_EDID_i2c()
1842 struct riva_par *par = info->par; in riva_get_edidinfo() local
1844 fb_edid_to_monspecs(par->EDID, &info->monspecs); in riva_get_edidinfo()
1851 par->FlatPanel = 1; in riva_get_edidinfo()
1913 default_par = info->par; in rivafb_probe()
2053 riva_bl_init(info->par); in rivafb_probe()
2074 riva_delete_i2c_busses(info->par); in rivafb_probe()
2096 struct riva_par *par = info->par; in rivafb_remove() local
2101 riva_delete_i2c_busses(par); in rivafb_remove()
2102 kfree(par->EDID); in rivafb_remove()
2110 if (par->mtrr.vram_valid) in rivafb_remove()
2111 mtrr_del(par->mtrr.vram, info->fix.smem_start, in rivafb_remove()
2115 iounmap(par->ctrl_base); in rivafb_remove()
2117 if (par->riva.Architecture == NV_ARCH_03) in rivafb_remove()
2118 iounmap(par->riva.PRAMIN); in rivafb_remove()