Lines Matching defs:info
120 static void arkfb_settile(struct fb_info *info, struct fb_tilemap *map)
123 u8 __iomem *fb = (u8 __iomem *)info->screen_base;
128 fb_err(info, "unsupported font parameters: width %d, height %d, depth %d, length %d\n",
148 static void arkfb_tilecursor(struct fb_info *info, struct fb_tilecursor *cursor)
150 struct arkfb_info *par = info->par;
152 svga_tilecursor(par->state.vgabase, info, cursor);
175 static void arkfb_iplan_imageblit(struct fb_info *info, const struct fb_image *image)
186 dst1 = info->screen_base + (image->dy * info->fix.line_length)
198 dst1 += info->fix.line_length;
204 static void arkfb_iplan_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
211 dst1 = info->screen_base + (rect->dy * info->fix.line_length)
219 dst1 += info->fix.line_length;
233 static void arkfb_cfb4_imageblit(struct fb_info *info, const struct fb_image *image)
244 dst1 = info->screen_base + (image->dy * info->fix.line_length)
256 dst1 += info->fix.line_length;
261 static void arkfb_imageblit(struct fb_info *info, const struct fb_image *image)
263 if ((info->var.bits_per_pixel == 4) && (image->depth == 1)
265 if (info->fix.type == FB_TYPE_INTERLEAVED_PLANES)
266 arkfb_iplan_imageblit(info, image);
268 arkfb_cfb4_imageblit(info, image);
270 cfb_imageblit(info, image);
273 static void arkfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
275 if ((info->var.bits_per_pixel == 4)
277 && (info->fix.type == FB_TYPE_INTERLEAVED_PLANES))
278 arkfb_iplan_fillrect(info, rect);
280 cfb_fillrect(info, rect);
303 int (*dac_get_mode)(struct dac_info *info);
304 int (*dac_set_mode)(struct dac_info *info, int mode);
305 int (*dac_get_freq)(struct dac_info *info, int channel);
306 int (*dac_set_freq)(struct dac_info *info, int channel, u32 freq);
307 void (*dac_release)(struct dac_info *info);
321 static inline void dac_read_regs(struct dac_info *info, u8 *code, int count)
323 info->dac_read_regs(info->data, code, count);
326 static inline void dac_write_reg(struct dac_info *info, u8 reg, u8 val)
329 info->dac_write_regs(info->data, code, 1);
332 static inline void dac_write_regs(struct dac_info *info, u8 *code, int count)
334 info->dac_write_regs(info->data, code, count);
337 static inline int dac_set_mode(struct dac_info *info, int mode)
339 return info->dacops->dac_set_mode(info, mode);
342 static inline int dac_set_freq(struct dac_info *info, int channel, u32 freq)
344 return info->dacops->dac_set_freq(info, channel, freq);
347 static inline void dac_release(struct dac_info *info)
349 info->dacops->dac_release(info);
364 #define DAC_PAR(info) ((struct ics5342_info *) info)
373 static int ics5342_set_mode(struct dac_info *info, int mode)
385 dac_write_reg(info, 6, code & 0xF0);
386 DAC_PAR(info)->mode = mode;
401 static int ics5342_set_freq(struct dac_info *info, int channel, u32 freq)
406 int rv = svga_compute_pll((DAC_PAR(info)->mode == DAC_PSEUDO8_16)
414 dac_write_regs(info, code, 3);
419 static void ics5342_release(struct dac_info *info)
421 ics5342_set_mode(info, DAC_PSEUDO8_8);
422 kfree(info);
435 struct dac_info *info = &ics_info->dac;
440 info->dacops = &ics5342_ops;
441 info->dac_read_regs = drr;
442 info->dac_write_regs = dwr;
443 info->data = data;
444 DAC_PAR(info)->mode = DAC_PSEUDO8_8; /* estimation */
445 return info;
456 struct fb_info *info = data;
460 par = info->par;
475 struct fb_info *info = data;
479 par = info->par;
493 static void ark_set_pixclock(struct fb_info *info, u32 pixclock)
495 struct arkfb_info *par = info->par;
500 fb_err(info, "cannot set requested pixclock, keeping old value\n");
512 static int arkfb_open(struct fb_info *info, int user)
514 struct arkfb_info *par = info->par;
536 static int arkfb_release(struct fb_info *info, int user)
538 struct arkfb_info *par = info->par;
559 static int arkfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
570 fb_err(info, "unsupported mode requested\n");
588 if (mem > info->screen_size)
590 fb_err(info, "not enough framebuffer memory (%d kB requested, %d kB available)\n",
591 mem >> 10, (unsigned int) (info->screen_size >> 10));
595 rv = svga_check_timings (&ark_timing_regs, var, info->node);
598 fb_err(info, "invalid timings requested\n");
611 static int arkfb_set_par(struct fb_info *info)
613 struct arkfb_info *par = info->par;
615 u32 bpp = info->var.bits_per_pixel;
619 info->fix.ypanstep = 1;
620 info->fix.line_length = (info->var.xres_virtual * bpp) / 8;
622 info->flags &= ~FBINFO_MISC_TILEBLITTING;
623 info->tileops = NULL;
627 bitmap_zero(info->pixmap.blit_x, FB_MAX_BLIT_WIDTH);
628 set_bit(8 - 1, info->pixmap.blit_x);
630 bitmap_fill(info->pixmap.blit_x, FB_MAX_BLIT_WIDTH);
632 bitmap_fill(info->pixmap.blit_y, FB_MAX_BLIT_HEIGHT);
634 offset_value = (info->var.xres_virtual * bpp) / 64;
635 screen_size = info->var.yres_virtual * info->fix.line_length;
637 info->fix.ypanstep = 16;
638 info->fix.line_length = 0;
640 info->flags |= FBINFO_MISC_TILEBLITTING;
641 info->tileops = &arkfb_tile_ops;
644 bitmap_zero(info->pixmap.blit_x, FB_MAX_BLIT_WIDTH);
645 set_bit(8 - 1, info->pixmap.blit_x);
646 bitmap_zero(info->pixmap.blit_y, FB_MAX_BLIT_HEIGHT);
647 set_bit(16 - 1, info->pixmap.blit_y);
649 offset_value = info->var.xres_virtual / 16;
650 screen_size = (info->var.xres_virtual * info->var.yres_virtual) / 64;
653 info->var.xoffset = 0;
654 info->var.yoffset = 0;
655 info->var.activate = FB_ACTIVATE_NOW;
676 vga_wseq(par->state.vgabase, 0x13, info->fix.smem_start >> 16);
677 vga_wseq(par->state.vgabase, 0x14, info->fix.smem_start >> 24);
687 fb_dbg(info, "offset register : %d\n", offset_value);
693 if (info->var.vmode & FB_VMODE_DOUBLE)
698 if (info->var.vmode & FB_VMODE_INTERLACED)
705 mode = svga_match_format(arkfb_formats, &(info->var), &(info->fix));
710 fb_dbg(info, "text mode\n");
719 fb_dbg(info, "4 bit pseudocolor\n");
727 fb_dbg(info, "4 bit pseudocolor, planar\n");
734 fb_dbg(info, "8 bit pseudocolor\n");
738 if (info->var.pixclock > 20000) {
739 fb_dbg(info, "not using multiplex\n");
743 fb_dbg(info, "using multiplex\n");
750 fb_dbg(info, "5/5/5 truecolor\n");
757 fb_dbg(info, "5/6/5 truecolor\n");
764 fb_dbg(info, "8/8/8 truecolor\n");
773 fb_dbg(info, "8/8/8/8 truecolor\n");
781 fb_err(info, "unsupported mode - bug\n");
785 value = (hdiv * info->var.pixclock) / hmul;
787 fb_dbg(info, "invalid pixclock\n");
790 ark_set_pixclock(info, value);
791 svga_set_timings(par->state.vgabase, &ark_timing_regs, &(info->var), hmul, hdiv,
792 (info->var.vmode & FB_VMODE_DOUBLE) ? 2 : 1,
793 (info->var.vmode & FB_VMODE_INTERLACED) ? 2 : 1,
794 hmul, info->node);
797 value = info->var.xres + info->var.left_margin + info->var.right_margin + info->var.hsync_len;
801 if (screen_size > info->screen_size)
802 screen_size = info->screen_size;
803 memset_io(info->screen_base, 0x00, screen_size);
874 static int arkfb_blank(int blank_mode, struct fb_info *info)
876 struct arkfb_info *par = info->par;
880 fb_dbg(info, "unblank\n");
885 fb_dbg(info, "blank\n");
892 fb_dbg(info, "sync down\n");
903 static int arkfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
905 struct arkfb_info *par = info->par;
909 if (info->var.bits_per_pixel == 0) {
910 offset = (var->yoffset / 16) * (info->var.xres_virtual / 2)
914 offset = (var->yoffset * info->fix.line_length) +
915 (var->xoffset * info->var.bits_per_pixel / 8);
916 offset = offset >> ((info->var.bits_per_pixel == 4) ? 2 : 3);
957 struct fb_info *info;
973 info = framebuffer_alloc(sizeof(struct arkfb_info), &(dev->dev));
974 if (!info)
977 par = info->par;
980 info->flags = FBINFO_PARTIAL_PAN_OK | FBINFO_HWACCEL_YPAN;
981 info->fbops = &arkfb_ops;
986 dev_err(info->device, "cannot enable PCI device\n");
992 dev_err(info->device, "cannot reserve framebuffer region\n");
996 par->dac = ics5342_init(ark_dac_read_regs, ark_dac_write_regs, info);
999 dev_err(info->device, "RAMDAC initialization failed\n");
1003 info->fix.smem_start = pci_resource_start(dev, 0);
1004 info->fix.smem_len = pci_resource_len(dev, 0);
1007 info->screen_base = pci_iomap_wc(dev, 0, 0);
1008 if (! info->screen_base) {
1010 dev_err(info->device, "iomap for framebuffer failed\n");
1025 info->screen_size = (1 << (regval >> 6)) << 20;
1026 info->fix.smem_len = info->screen_size;
1028 strcpy(info->fix.id, "ARK 2000PV");
1029 info->fix.mmio_start = 0;
1030 info->fix.mmio_len = 0;
1031 info->fix.type = FB_TYPE_PACKED_PIXELS;
1032 info->fix.visual = FB_VISUAL_PSEUDOCOLOR;
1033 info->fix.ypanstep = 0;
1034 info->fix.accel = FB_ACCEL_NONE;
1035 info->pseudo_palette = (void*) (par->pseudo_palette);
1038 rc = fb_find_mode(&(info->var), info, mode_option, NULL, 0, NULL, 8);
1041 dev_err(info->device, "mode %s not found\n", mode_option);
1045 rc = fb_alloc_cmap(&info->cmap, 256, 0);
1047 dev_err(info->device, "cannot allocate colormap\n");
1051 rc = register_framebuffer(info);
1053 dev_err(info->device, "cannot register framebuffer\n");
1057 fb_info(info, "%s on %s, %d MB RAM\n",
1058 info->fix.id, pci_name(dev), info->fix.smem_len >> 20);
1061 pci_set_drvdata(dev, info);
1062 par->wc_cookie = arch_phys_wc_add(info->fix.smem_start,
1063 info->fix.smem_len);
1068 fb_dealloc_cmap(&info->cmap);
1071 pci_iounmap(dev, info->screen_base);
1079 framebuffer_release(info);
1087 struct fb_info *info = pci_get_drvdata(dev);
1089 if (info) {
1090 struct arkfb_info *par = info->par;
1093 unregister_framebuffer(info);
1094 fb_dealloc_cmap(&info->cmap);
1096 pci_iounmap(dev, info->screen_base);
1100 framebuffer_release(info);
1109 struct fb_info *info = dev_get_drvdata(dev);
1110 struct arkfb_info *par = info->par;
1112 dev_info(info->device, "suspend\n");
1123 fb_set_suspend(info, 1);
1136 struct fb_info *info = dev_get_drvdata(dev);
1137 struct arkfb_info *par = info->par;
1139 dev_info(info->device, "resume\n");
1147 arkfb_set_par(info);
1148 fb_set_suspend(info, 0);