Lines Matching refs:par

275 static int riva_bl_get_level_brightness(struct riva_par *par,  in riva_bl_get_level_brightness()  argument
278 struct fb_info *info = pci_get_drvdata(par->pdev); in riva_bl_get_level_brightness()
297 struct riva_par *par = bl_get_data(bd); in riva_bl_update_status() local
307 tmp_pmc = NV_RD32(par->riva.PMC, 0x10F0) & 0x0000FFFF; in riva_bl_update_status()
308 tmp_pcrt = NV_RD32(par->riva.PCRTC0, 0x081C) & 0xFFFFFFFC; in riva_bl_update_status()
312 tmp_pmc |= riva_bl_get_level_brightness(par, level) << 16; /* level */ in riva_bl_update_status()
314 NV_WR32(par->riva.PCRTC0, 0x081C, tmp_pcrt); in riva_bl_update_status()
315 NV_WR32(par->riva.PMC, 0x10F0, tmp_pmc); in riva_bl_update_status()
324 static void riva_bl_init(struct riva_par *par) in riva_bl_init() argument
327 struct fb_info *info = pci_get_drvdata(par->pdev); in riva_bl_init()
331 if (!par->FlatPanel) in riva_bl_init()
345 bd = backlight_device_register(name, info->dev, par, &riva_bl_ops, in riva_bl_init()
378 static inline void riva_bl_init(struct riva_par *par) {} in riva_bl_init() argument
388 static inline void CRTCout(struct riva_par *par, unsigned char index, in CRTCout() argument
391 VGA_WR08(par->riva.PCIO, 0x3d4, index); in CRTCout()
392 VGA_WR08(par->riva.PCIO, 0x3d5, val); in CRTCout()
395 static inline unsigned char CRTCin(struct riva_par *par, in CRTCin() argument
398 VGA_WR08(par->riva.PCIO, 0x3d4, index); in CRTCin()
399 return (VGA_RD08(par->riva.PCIO, 0x3d5)); in CRTCin()
402 static inline void GRAout(struct riva_par *par, unsigned char index, in GRAout() argument
405 VGA_WR08(par->riva.PVIO, 0x3ce, index); in GRAout()
406 VGA_WR08(par->riva.PVIO, 0x3cf, val); in GRAout()
409 static inline unsigned char GRAin(struct riva_par *par, in GRAin() argument
412 VGA_WR08(par->riva.PVIO, 0x3ce, index); in GRAin()
413 return (VGA_RD08(par->riva.PVIO, 0x3cf)); in GRAin()
416 static inline void SEQout(struct riva_par *par, unsigned char index, in SEQout() argument
419 VGA_WR08(par->riva.PVIO, 0x3c4, index); in SEQout()
420 VGA_WR08(par->riva.PVIO, 0x3c5, val); in SEQout()
423 static inline unsigned char SEQin(struct riva_par *par, in SEQin() argument
426 VGA_WR08(par->riva.PVIO, 0x3c4, index); in SEQin()
427 return (VGA_RD08(par->riva.PVIO, 0x3c5)); in SEQin()
430 static inline void ATTRout(struct riva_par *par, unsigned char index, in ATTRout() argument
433 VGA_WR08(par->riva.PCIO, 0x3c0, index); in ATTRout()
434 VGA_WR08(par->riva.PCIO, 0x3c0, val); in ATTRout()
437 static inline unsigned char ATTRin(struct riva_par *par, in ATTRin() argument
440 VGA_WR08(par->riva.PCIO, 0x3c0, index); in ATTRin()
441 return (VGA_RD08(par->riva.PCIO, 0x3c1)); in ATTRin()
444 static inline void MISCout(struct riva_par *par, unsigned char val) in MISCout() argument
446 VGA_WR08(par->riva.PVIO, 0x3c2, val); in MISCout()
449 static inline unsigned char MISCin(struct riva_par *par) in MISCin() argument
451 return (VGA_RD08(par->riva.PVIO, 0x3cc)); in MISCin()
487 static void rivafb_load_cursor_image(struct riva_par *par, u8 *data8, in rivafb_load_cursor_image() argument
515 writel(tmp, &par->riva.CURSOR[k++]); in rivafb_load_cursor_image()
588 static void riva_save_state(struct riva_par *par, struct riva_regs *regs) in riva_save_state() argument
593 par->riva.LockUnlock(&par->riva, 0); in riva_save_state()
595 par->riva.UnloadStateExt(&par->riva, &regs->ext); in riva_save_state()
597 regs->misc_output = MISCin(par); in riva_save_state()
600 regs->crtc[i] = CRTCin(par, i); in riva_save_state()
603 regs->attr[i] = ATTRin(par, i); in riva_save_state()
606 regs->gra[i] = GRAin(par, i); in riva_save_state()
609 regs->seq[i] = SEQin(par, i); in riva_save_state()
627 static void riva_load_state(struct riva_par *par, struct riva_regs *regs) in riva_load_state() argument
633 CRTCout(par, 0x11, 0x00); in riva_load_state()
635 par->riva.LockUnlock(&par->riva, 0); in riva_load_state()
637 par->riva.LoadStateExt(&par->riva, state); in riva_load_state()
639 MISCout(par, regs->misc_output); in riva_load_state()
647 CRTCout(par, i, regs->crtc[i]); in riva_load_state()
652 ATTRout(par, i, regs->attr[i]); in riva_load_state()
655 GRAout(par, i, regs->gra[i]); in riva_load_state()
658 SEQout(par, i, regs->seq[i]); in riva_load_state()
678 struct riva_par *par = info->par; in riva_load_video_mode() local
715 if (par->FlatPanel) { in riva_load_video_mode()
771 if (par->riva.Architecture >= NV_ARCH_10) in riva_load_video_mode()
772 par->riva.CURSOR = (U032 __iomem *)(info->screen_base + par->riva.CursorStart); in riva_load_video_mode()
783 rc = CalcStateExt(&par->riva, &newmode.ext, bpp, width, in riva_load_video_mode()
788 newmode.ext.scale = NV_RD32(par->riva.PRAMDAC, 0x00000848) & in riva_load_video_mode()
790 if (par->FlatPanel == 1) { in riva_load_video_mode()
794 if (par->SecondCRTC) { in riva_load_video_mode()
795 newmode.ext.head = NV_RD32(par->riva.PCRTC0, 0x00000860) & in riva_load_video_mode()
797 newmode.ext.head2 = NV_RD32(par->riva.PCRTC0, 0x00002860) | in riva_load_video_mode()
802 } else if (par->riva.twoHeads) { in riva_load_video_mode()
803 newmode.ext.head = NV_RD32(par->riva.PCRTC0, 0x00000860) | in riva_load_video_mode()
805 newmode.ext.head2 = NV_RD32(par->riva.PCRTC0, 0x00002860) & in riva_load_video_mode()
808 newmode.ext.vpll2 = NV_RD32(par->riva.PRAMDAC0, 0x00000520); in riva_load_video_mode()
810 if (par->FlatPanel == 1) { in riva_load_video_mode()
815 par->current_state = newmode; in riva_load_video_mode()
816 riva_load_state(par, &par->current_state); in riva_load_video_mode()
817 par->riva.LockUnlock(&par->riva, 0); /* important for HW cursor */ in riva_load_video_mode()
951 riva_set_pattern(struct riva_par *par, int clr0, int clr1, int pat0, int pat1) in riva_set_pattern() argument
953 RIVA_FIFO_FREE(par->riva, Patt, 4); in riva_set_pattern()
954 NV_WR32(&par->riva.Patt->Color0, 0, clr0); in riva_set_pattern()
955 NV_WR32(&par->riva.Patt->Color1, 0, clr1); in riva_set_pattern()
956 NV_WR32(par->riva.Patt->Monochrome, 0, pat0); in riva_set_pattern()
957 NV_WR32(par->riva.Patt->Monochrome, 4, pat1); in riva_set_pattern()
961 static inline void wait_for_idle(struct riva_par *par) in wait_for_idle() argument
963 while (par->riva.Busy(&par->riva)); in wait_for_idle()
970 riva_set_rop_solid(struct riva_par *par, int rop) in riva_set_rop_solid() argument
972 riva_set_pattern(par, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF); in riva_set_rop_solid()
973 RIVA_FIFO_FREE(par->riva, Rop, 1); in riva_set_rop_solid()
974 NV_WR32(&par->riva.Rop->Rop3, 0, rop); in riva_set_rop_solid()
980 struct riva_par *par = info->par; in riva_setup_accel() local
982 RIVA_FIFO_FREE(par->riva, Clip, 2); in riva_setup_accel()
983 NV_WR32(&par->riva.Clip->TopLeft, 0, 0x0); in riva_setup_accel()
984 NV_WR32(&par->riva.Clip->WidthHeight, 0, in riva_setup_accel()
987 riva_set_rop_solid(par, 0xcc); in riva_setup_accel()
988 wait_for_idle(par); in riva_setup_accel()
1033 struct riva_par *par = info->par; in rivafb_open() local
1036 mutex_lock(&par->open_lock); in rivafb_open()
1037 if (!par->ref_count) { in rivafb_open()
1039 memset(&par->state, 0, sizeof(struct vgastate)); in rivafb_open()
1040 par->state.flags = VGA_SAVE_MODE | VGA_SAVE_FONTS; in rivafb_open()
1042 if (par->riva.Architecture == NV_ARCH_03) in rivafb_open()
1043 par->state.flags |= VGA_SAVE_CMAP; in rivafb_open()
1044 save_vga(&par->state); in rivafb_open()
1047 CRTCout(par, 0x11, 0xFF); in rivafb_open()
1048 par->riva.LockUnlock(&par->riva, 0); in rivafb_open()
1050 riva_save_state(par, &par->initial_state); in rivafb_open()
1052 par->ref_count++; in rivafb_open()
1053 mutex_unlock(&par->open_lock); in rivafb_open()
1060 struct riva_par *par = info->par; in rivafb_release() local
1063 mutex_lock(&par->open_lock); in rivafb_release()
1064 if (!par->ref_count) { in rivafb_release()
1065 mutex_unlock(&par->open_lock); in rivafb_release()
1068 if (par->ref_count == 1) { in rivafb_release()
1069 par->riva.LockUnlock(&par->riva, 0); in rivafb_release()
1070 par->riva.LoadStateExt(&par->riva, &par->initial_state.ext); in rivafb_release()
1071 riva_load_state(par, &par->initial_state); in rivafb_release()
1073 restore_vga(&par->state); in rivafb_release()
1075 par->riva.LockUnlock(&par->riva, 1); in rivafb_release()
1077 par->ref_count--; in rivafb_release()
1078 mutex_unlock(&par->open_lock); in rivafb_release()
1086 struct riva_par *par = info->par; in rivafb_check_var() local
1104 if (par->riva.Architecture == NV_ARCH_03) in rivafb_check_var()
1190 struct riva_par *par = info->par; in rivafb_set_par() local
1195 CRTCout(par, 0x11, 0xFF); in rivafb_set_par()
1196 par->riva.LockUnlock(&par->riva, 0); in rivafb_set_par()
1203 par->cursor_reset = 1; in rivafb_set_par()
1234 struct riva_par *par = info->par; in rivafb_pan_display() local
1239 par->riva.SetStartAddress(&par->riva, base); in rivafb_pan_display()
1246 struct riva_par *par= info->par; in rivafb_blank() local
1249 tmp = SEQin(par, 0x01) & ~0x20; /* screen on/off */ in rivafb_blank()
1250 vesa = CRTCin(par, 0x1a) & ~0xc0; /* sync on/off */ in rivafb_blank()
1272 SEQout(par, 0x01, tmp); in rivafb_blank()
1273 CRTCout(par, 0x1a, vesa); in rivafb_blank()
1303 struct riva_par *par = info->par; in rivafb_setcolreg() local
1304 RIVA_HW_INST *chip = &par->riva; in rivafb_setcolreg()
1325 if (par->riva.Architecture == NV_ARCH_03) { in rivafb_setcolreg()
1328 par->palette[regno] = ((red & 0xf800) >> 1) | in rivafb_setcolreg()
1333 par->palette[regno] = ((red & 0xff00) << 8) | in rivafb_setcolreg()
1392 struct riva_par *par = info->par; in rivafb_fillrect() local
1403 if (par->riva.Architecture != NV_ARCH_03) in rivafb_fillrect()
1406 color = par->palette[rect->color]; in rivafb_fillrect()
1419 riva_set_rop_solid(par, rop); in rivafb_fillrect()
1421 RIVA_FIFO_FREE(par->riva, Bitmap, 1); in rivafb_fillrect()
1422 NV_WR32(&par->riva.Bitmap->Color1A, 0, color); in rivafb_fillrect()
1424 RIVA_FIFO_FREE(par->riva, Bitmap, 2); in rivafb_fillrect()
1425 NV_WR32(&par->riva.Bitmap->UnclippedRectangle[0].TopLeft, 0, in rivafb_fillrect()
1428 NV_WR32(&par->riva.Bitmap->UnclippedRectangle[0].WidthHeight, 0, in rivafb_fillrect()
1431 riva_set_rop_solid(par, 0xcc); in rivafb_fillrect()
1448 struct riva_par *par = info->par; in rivafb_copyarea() local
1455 RIVA_FIFO_FREE(par->riva, Blt, 3); in rivafb_copyarea()
1456 NV_WR32(&par->riva.Blt->TopLeftSrc, 0, in rivafb_copyarea()
1458 NV_WR32(&par->riva.Blt->TopLeftDst, 0, in rivafb_copyarea()
1461 NV_WR32(&par->riva.Blt->WidthHeight, 0, in rivafb_copyarea()
1494 struct riva_par *par = info->par; in rivafb_imageblit() local
1512 if (par->riva.Architecture != NV_ARCH_03) { in rivafb_imageblit()
1516 fgx = par->palette[image->fg_color]; in rivafb_imageblit()
1517 bgx = par->palette[image->bg_color]; in rivafb_imageblit()
1524 RIVA_FIFO_FREE(par->riva, Bitmap, 7); in rivafb_imageblit()
1525 NV_WR32(&par->riva.Bitmap->ClipE.TopLeft, 0, in rivafb_imageblit()
1527 NV_WR32(&par->riva.Bitmap->ClipE.BottomRight, 0, in rivafb_imageblit()
1530 NV_WR32(&par->riva.Bitmap->Color0E, 0, bgx); in rivafb_imageblit()
1531 NV_WR32(&par->riva.Bitmap->Color1E, 0, fgx); in rivafb_imageblit()
1532 NV_WR32(&par->riva.Bitmap->WidthHeightInE, 0, in rivafb_imageblit()
1534 NV_WR32(&par->riva.Bitmap->WidthHeightOutE, 0, in rivafb_imageblit()
1536 NV_WR32(&par->riva.Bitmap->PointE, 0, in rivafb_imageblit()
1539 d = &par->riva.Bitmap->MonochromeData01E; in rivafb_imageblit()
1544 RIVA_FIFO_FREE(par->riva, Bitmap, 16); in rivafb_imageblit()
1554 RIVA_FIFO_FREE(par->riva, Bitmap, size); in rivafb_imageblit()
1579 struct riva_par *par = info->par; in rivafb_cursor() local
1587 par->riva.ShowHideCursor(&par->riva, 0); in rivafb_cursor()
1589 if (par->cursor_reset) { in rivafb_cursor()
1591 par->cursor_reset = 0; in rivafb_cursor()
1595 memset_io(par->riva.CURSOR, 0, MAX_CURS * MAX_CURS * 2); in rivafb_cursor()
1605 NV_WR32(par->riva.PRAMDAC, 0x0000300, temp); in rivafb_cursor()
1646 par->riva.LockUnlock(&par->riva, 0); in rivafb_cursor()
1648 rivafb_load_cursor_image(par, data, bg, fg, in rivafb_cursor()
1656 par->riva.ShowHideCursor(&par->riva, 1); in rivafb_cursor()
1663 struct riva_par *par = info->par; in rivafb_sync() local
1665 wait_for_idle(par); in rivafb_sync()
1695 struct riva_par *par = info->par; in riva_set_fbinfo() local
1706 if ((par->riva.Architecture == NV_ARCH_30) || noaccel) { in riva_set_fbinfo()
1715 info->pseudo_palette = par->pseudo_palette; in riva_set_fbinfo()
1731 struct riva_par *par = info->par; in riva_get_EDID_OF() local
1750 par->EDID = (unsigned char *)pedid; in riva_get_EDID_OF()
1763 struct riva_par *par = info->par; in riva_get_EDID_i2c() local
1768 riva_create_i2c_busses(par); in riva_get_EDID_i2c()
1770 if (!par->chan[i].par) in riva_get_EDID_i2c()
1772 riva_probe_i2c_connector(par, i, &par->EDID); in riva_get_EDID_i2c()
1773 if (par->EDID && !fb_parse_edid(par->EDID, &var)) { in riva_get_EDID_i2c()
1780 return (par->EDID) ? 1 : 0; in riva_get_EDID_i2c()
1837 struct riva_par *par = info->par; in riva_get_edidinfo() local
1839 fb_edid_to_monspecs(par->EDID, &info->monspecs); in riva_get_edidinfo()
1846 par->FlatPanel = 1; in riva_get_edidinfo()
1908 default_par = info->par; in rivafb_probe()
2038 riva_bl_init(info->par); in rivafb_probe()
2059 riva_delete_i2c_busses(info->par); in rivafb_probe()
2081 struct riva_par *par = info->par; in rivafb_remove() local
2086 riva_delete_i2c_busses(par); in rivafb_remove()
2087 kfree(par->EDID); in rivafb_remove()
2093 arch_phys_wc_del(par->wc_cookie); in rivafb_remove()
2094 iounmap(par->ctrl_base); in rivafb_remove()
2096 if (par->riva.Architecture == NV_ARCH_03) in rivafb_remove()
2097 iounmap(par->riva.PRAMIN); in rivafb_remove()