Lines Matching refs:info
654 set_imstt_regvals (struct fb_info *info, u_int bpp)
656 struct imstt_par *par = info->par;
728 switch (info->fix.smem_len) {
746 set_offset (struct fb_var_screeninfo *var, struct fb_info *info)
748 struct imstt_par *par = info->par;
749 __u32 off = var->yoffset * (info->fix.line_length >> 3)
750 + ((var->xoffset * (info->var.bits_per_pixel >> 3)) >> 3);
781 imsttfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
790 if ((var->xres * var->yres) * (var->bits_per_pixel >> 3) > info->fix.smem_len
791 || (var->xres_virtual * var->yres_virtual) * (var->bits_per_pixel >> 3) > info->fix.smem_len)
840 __u32 vram = (info->fix.smem_len - (PAGE_SIZE << 2));
860 imsttfb_set_par(struct fb_info *info)
862 struct imstt_par *par = info->par;
864 if (!compute_imstt_regvals(par, info->var.xres, info->var.yres))
867 if (info->var.green.length == 6)
871 set_imstt_regvals(info, info->var.bits_per_pixel);
872 info->var.pixclock = 1000000 / getclkMHz(par);
878 u_int transp, struct fb_info *info)
880 struct imstt_par *par = info->par;
881 u_int bpp = info->var.bits_per_pixel;
905 (regno << (info->var.green.length ==
922 imsttfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
924 if (var->xoffset + info->var.xres > info->var.xres_virtual
925 || var->yoffset + info->var.yres > info->var.yres_virtual)
928 info->var.xoffset = var->xoffset;
929 info->var.yoffset = var->yoffset;
930 set_offset(var, info);
935 imsttfb_blank(int blank, struct fb_info *info)
937 struct imstt_par *par = info->par;
989 imsttfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
991 struct imstt_par *par = info->par;
998 Bpp = info->var.bits_per_pixel >> 3,
999 line_pitch = info->fix.line_length;
1033 imsttfb_copyarea(struct fb_info *info, const struct fb_copyarea *area)
1035 struct imstt_par *par = info->par;
1039 Bpp = info->var.bits_per_pixel >> 3,
1050 line_pitch = info->fix.line_length;
1197 imsttfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
1199 struct imstt_par *par = info->par;
1205 imstt_set_cursor(info, cursor, 0);
1208 xx = cursor->image.dx - info->var.xoffset;
1209 yy = cursor->image.dy - info->var.yoffset;
1247 fg = ((info->cmap.red[fg_idx] & 0xf8) << 7) |
1248 ((info->cmap.green[fg_idx] & 0xf8) << 2) |
1249 ((info->cmap.blue[fg_idx] & 0xf8) >> 3) | 1 << 15;
1254 imstt_set_cursor(info, cursor, 1);
1267 imsttfb_ioctl(struct fb_info *info, u_int cmd, u_long arg)
1269 struct imstt_par *par = info->par;
1350 static int init_imstt(struct fb_info *info)
1352 struct imstt_par *par = info->par;
1357 info->fix.smem_len = (tmp & 0x0004) ? 0x400000 : 0x200000;
1359 info->fix.smem_len = 0x800000;
1361 ip = (__u32 *)info->screen_base;
1362 end = (__u32 *)(info->screen_base + info->fix.smem_len);
1406 if (mac_vmode_to_var(vmode, cmode, &info->var)) {
1407 info->var.xres = info->var.xres_virtual = INIT_XRES;
1408 info->var.yres = info->var.yres_virtual = INIT_YRES;
1409 info->var.bits_per_pixel = INIT_BPP;
1414 info->var.xres = info->var.xres_virtual = INIT_XRES;
1415 info->var.yres = info->var.yres_virtual = INIT_YRES;
1416 info->var.bits_per_pixel = INIT_BPP;
1419 if ((info->var.xres * info->var.yres) * (info->var.bits_per_pixel >> 3) > info->fix.smem_len
1420 || !(compute_imstt_regvals(par, info->var.xres, info->var.yres))) {
1421 printk("imsttfb: %ux%ux%u not supported\n", info->var.xres, info->var.yres, info->var.bits_per_pixel);
1425 sprintf(info->fix.id, "IMS TT (%s)", par->ramdac == IBM ? "IBM" : "TVP");
1426 info->fix.mmio_len = 0x1000;
1427 info->fix.accel = FB_ACCEL_IMS_TWINTURBO;
1428 info->fix.type = FB_TYPE_PACKED_PIXELS;
1429 info->fix.visual = info->var.bits_per_pixel == 8 ? FB_VISUAL_PSEUDOCOLOR
1431 info->fix.line_length = info->var.xres * (info->var.bits_per_pixel >> 3);
1432 info->fix.xpanstep = 8;
1433 info->fix.ypanstep = 1;
1434 info->fix.ywrapstep = 0;
1436 info->var.accel_flags = FB_ACCELF_TEXT;
1439 // imstt_cursor_init(info);
1440 if (info->var.green.length == 6)
1444 set_imstt_regvals(info, info->var.bits_per_pixel);
1446 info->var.pixclock = 1000000 / getclkMHz(par);
1448 info->fbops = &imsttfb_ops;
1449 info->flags = FBINFO_HWACCEL_COPYAREA |
1453 if (fb_alloc_cmap(&info->cmap, 0, 0))
1456 if (register_framebuffer(info) < 0) {
1457 fb_dealloc_cmap(&info->cmap);
1462 fb_info(info, "%s frame buffer; %uMB vram; chip version %u\n",
1463 info->fix.id, info->fix.smem_len >> 20, tmp);
1471 struct fb_info *info;
1486 info = framebuffer_alloc(sizeof(struct imstt_par), &pdev->dev);
1487 if (!info)
1490 par = info->par;
1518 info->fix.smem_start = addr;
1519 info->screen_base = (__u8 *)ioremap(addr, par->ramdac == IBM ?
1521 if (!info->screen_base)
1523 info->fix.mmio_start = addr + 0x800000;
1531 info->pseudo_palette = par->palette;
1532 ret = init_imstt(info);
1536 pci_set_drvdata(pdev, info);
1544 iounmap(info->screen_base);
1548 framebuffer_release(info);
1554 struct fb_info *info = pci_get_drvdata(pdev);
1555 struct imstt_par *par = info->par;
1558 unregister_framebuffer(info);
1561 iounmap(info->screen_base);
1562 release_mem_region(info->fix.smem_start, size);
1563 framebuffer_release(info);