Lines Matching refs:info
292 static int nvidia_calc_regs(struct fb_info *info)
294 struct nvidia_par *par = info->par;
296 int i, depth = fb_get_color_depth(&info->var, &info->fix);
297 int h_display = info->var.xres / 8 - 1;
298 int h_start = (info->var.xres + info->var.right_margin) / 8 - 1;
299 int h_end = (info->var.xres + info->var.right_margin +
300 info->var.hsync_len) / 8 - 1;
301 int h_total = (info->var.xres + info->var.right_margin +
302 info->var.hsync_len + info->var.left_margin) / 8 - 5;
305 int v_display = info->var.yres - 1;
306 int v_start = info->var.yres + info->var.lower_margin - 1;
307 int v_end = (info->var.yres + info->var.lower_margin +
308 info->var.vsync_len) - 1;
309 int v_total = (info->var.yres + info->var.lower_margin +
310 info->var.vsync_len + info->var.upper_margin) - 2;
318 if (info->var.vmode & FB_VMODE_INTERLACED)
349 | ((info->var.vmode & FB_VMODE_DOUBLE) ? 0x80 : 0x00);
353 state->crtc[0x13] = ((info->var.xres_virtual / 8) *
354 (info->var.bits_per_pixel / 8));
379 if (info->var.vmode & FB_VMODE_INTERLACED) {
397 par->CURSOR = (volatile u32 __iomem *)(info->screen_base +
400 if (info->var.sync & FB_SYNC_HOR_HIGH_ACT)
404 if (info->var.sync & FB_SYNC_VERT_HIGH_ACT)
409 NVCalcStateExt(par, state, i, info->var.xres_virtual,
410 info->var.xres, info->var.yres_virtual,
411 1000000000 / info->var.pixclock, info->var.vmode);
417 if (!par->fpScaler || (par->fpWidth <= info->var.xres)
418 || (par->fpHeight <= info->var.yres)) {
457 if (info->var.vmode & FB_VMODE_DOUBLE)
484 state->displayV = info->var.xres;
489 static void nvidia_init_vga(struct fb_info *info)
491 struct nvidia_par *par = info->par;
524 static int nvidiafb_cursor(struct fb_info *info, struct fb_cursor *cursor)
526 struct nvidia_par *par = info->par;
547 yy = cursor->image.dy - info->var.yoffset;
548 xx = cursor->image.dx - info->var.xoffset;
582 bg = ((info->cmap.red[bg_idx] & 0xf8) << 7) |
583 ((info->cmap.green[bg_idx] & 0xf8) << 2) |
584 ((info->cmap.blue[bg_idx] & 0xf8) >> 3) | 1 << 15;
586 fg = ((info->cmap.red[fg_idx] & 0xf8) << 7) |
587 ((info->cmap.green[fg_idx] & 0xf8) << 2) |
588 ((info->cmap.blue[fg_idx] & 0xf8) >> 3) | 1 << 15;
607 static int nvidiafb_set_par(struct fb_info *info)
609 struct nvidia_par *par = info->par;
627 info->fix.visual = (info->var.bits_per_pixel == 8) ?
630 nvidia_init_vga(info);
631 nvidia_calc_regs(info);
657 info->fix.line_length = (info->var.xres_virtual *
658 info->var.bits_per_pixel) >> 3;
659 if (info->var.accel_flags) {
664 info->pixmap.scan_align = 4;
665 info->flags &= ~FBINFO_HWACCEL_DISABLED;
666 info->flags |= FBINFO_READS_FAST;
667 NVResetGraphics(info);
673 info->pixmap.scan_align = 1;
674 info->flags |= FBINFO_HWACCEL_DISABLED;
675 info->flags &= ~FBINFO_READS_FAST;
684 btext_update_display(info->fix.smem_start,
685 info->var.xres, info->var.yres,
686 info->var.bits_per_pixel, info->fix.line_length);
696 struct fb_info *info)
698 struct nvidia_par *par = info->par;
702 if (regno >= (1 << info->var.green.length))
705 if (info->var.grayscale) {
710 if (regno < 16 && info->fix.visual == FB_VISUAL_DIRECTCOLOR) {
711 ((u32 *) info->pseudo_palette)[regno] =
712 (regno << info->var.red.offset) |
713 (regno << info->var.green.offset) |
714 (regno << info->var.blue.offset);
717 switch (info->var.bits_per_pixel) {
723 if (info->var.green.length == 5) {
759 struct fb_info *info)
761 struct nvidia_par *par = info->par;
819 if (!info->monspecs.hfmax || !info->monspecs.vfmax ||
820 !info->monspecs.dclkmax || !fb_validate_mode(var, info))
824 if (!mode_valid && info->monspecs.gtf) {
825 if (!fb_get_mode(FB_MAXTIMINGS, 0, var, info))
832 mode = fb_find_best_mode(var, &info->modelist);
839 if (!mode_valid && info->monspecs.modedb_len)
854 mode = fb_find_best_mode(var, &info->modelist);
872 vramlen = info->screen_size;
914 struct fb_info *info)
916 struct nvidia_par *par = info->par;
919 total = var->yoffset * info->fix.line_length + var->xoffset;
926 static int nvidiafb_blank(int blank, struct fb_info *info)
928 struct nvidia_par *par = info->par;
993 static int nvidiafb_open(struct fb_info *info, int user)
995 struct nvidia_par *par = info->par;
1006 static int nvidiafb_release(struct fb_info *info, int user)
1008 struct nvidia_par *par = info->par;
1044 struct fb_info *info = dev_get_drvdata(dev);
1045 struct nvidia_par *par = info->par;
1053 fb_set_suspend(info, 1);
1054 nvidiafb_blank(FB_BLANK_POWERDOWN, info);
1080 struct fb_info *info = dev_get_drvdata(dev);
1081 struct nvidia_par *par = info->par;
1086 nvidiafb_set_par(info);
1087 fb_set_suspend (info, 0);
1088 nvidiafb_blank(FB_BLANK_UNBLANK, info);
1105 static int nvidia_set_fbinfo(struct fb_info *info)
1107 struct fb_monspecs *specs = &info->monspecs;
1109 struct nvidia_par *par = info->par;
1113 info->flags = FBINFO_DEFAULT
1119 fb_videomode_to_modelist(info->monspecs.modedb,
1120 info->monspecs.modedb_len, &info->modelist);
1138 mode = fb_find_best_display(specs, &info->modelist);
1146 fb_find_mode(&nvidiafb_default_var, info, buf, specs->modedb,
1151 fb_find_mode(&nvidiafb_default_var, info, mode_option,
1154 info->var = nvidiafb_default_var;
1155 info->fix.visual = (info->var.bits_per_pixel == 8) ?
1157 info->pseudo_palette = par->pseudo_palette;
1158 fb_alloc_cmap(&info->cmap, 256, 0);
1159 fb_destroy_modedb(info->monspecs.modedb);
1160 info->monspecs.modedb = NULL;
1163 lpitch = info->var.xres_virtual *
1164 ((info->var.bits_per_pixel + 7) >> 3);
1165 info->var.yres_virtual = info->screen_size / lpitch;
1167 info->pixmap.scan_align = 4;
1168 info->pixmap.buf_align = 4;
1169 info->pixmap.access_align = 32;
1170 info->pixmap.size = 8 * 1024;
1171 info->pixmap.flags = FB_PIXMAP_SYSTEM;
1176 info->var.accel_flags = (!noaccel);
1180 info->fix.accel = FB_ACCEL_NV4;
1183 info->fix.accel = FB_ACCEL_NV_10;
1186 info->fix.accel = FB_ACCEL_NV_20;
1189 info->fix.accel = FB_ACCEL_NV_30;
1192 info->fix.accel = FB_ACCEL_NV_40;
1198 return nvidiafb_check_var(&info->var, info);
1201 static u32 nvidia_get_chipset(struct fb_info *info)
1203 struct nvidia_par *par = info->par;
1224 static u32 nvidia_get_arch(struct fb_info *info)
1226 struct nvidia_par *par = info->par;
1279 struct fb_info *info;
1286 info = framebuffer_alloc(sizeof(struct nvidia_par), &pd->dev);
1288 if (!info)
1291 par = info->par;
1293 info->pixmap.addr = kzalloc(8 * 1024, GFP_KERNEL);
1295 if (info->pixmap.addr == NULL)
1334 par->Chipset = nvidia_get_chipset(info);
1335 par->Architecture = nvidia_get_arch(info);
1344 if (NVCommonSetup(info))
1365 info->screen_base = ioremap_wc(nvidiafb_fix.smem_start,
1367 info->screen_size = par->FbUsableSize;
1370 if (!info->screen_base) {
1375 par->FbStart = info->screen_base;
1381 info->fbops = &nvidia_fb_ops;
1382 info->fix = nvidiafb_fix;
1384 if (nvidia_set_fbinfo(info) < 0) {
1391 pci_set_drvdata(pd, info);
1396 if (register_framebuffer(info) < 0) {
1404 info->fix.id,
1405 par->FbMapSize / (1024 * 1024), info->fix.smem_start);
1411 iounmap(info->screen_base);
1413 fb_destroy_modedb(info->monspecs.modedb);
1420 kfree(info->pixmap.addr);
1422 framebuffer_release(info);
1429 struct fb_info *info = pci_get_drvdata(pd);
1430 struct nvidia_par *par = info->par;
1434 unregister_framebuffer(info);
1438 iounmap(info->screen_base);
1439 fb_destroy_modedb(info->monspecs.modedb);
1443 kfree(info->pixmap.addr);
1444 framebuffer_release(info);