Lines Matching defs:info

159 s1d13xxxfb_setup_pseudocolour(struct fb_info *info)
161 info->fix.visual = FB_VISUAL_PSEUDOCOLOR;
163 info->var.red.length = 4;
164 info->var.green.length = 4;
165 info->var.blue.length = 4;
169 s1d13xxxfb_setup_truecolour(struct fb_info *info)
171 info->fix.visual = FB_VISUAL_TRUECOLOR;
172 info->var.bits_per_pixel = 16;
174 info->var.red.length = 5;
175 info->var.red.offset = 11;
177 info->var.green.length = 6;
178 info->var.green.offset = 5;
180 info->var.blue.length = 5;
181 info->var.blue.offset = 0;
186 * @info: frame buffer structure
199 s1d13xxxfb_set_par(struct fb_info *info)
201 struct s1d13xxxfb_par *s1dfb = info->par;
204 dbg("s1d13xxxfb_set_par: bpp=%d\n", info->var.bits_per_pixel);
213 switch (info->var.bits_per_pixel) {
216 s1d13xxxfb_setup_pseudocolour(info);
221 s1d13xxxfb_setup_pseudocolour(info);
226 s1d13xxxfb_setup_truecolour(info);
242 info->fix.line_length = info->var.xres * info->var.bits_per_pixel;
243 info->fix.line_length /= 8;
245 dbg("setting line_length to %d\n", info->fix.line_length);
259 * @info: frame buffer info structure
265 u_int transp, struct fb_info *info)
267 struct s1d13xxxfb_par *s1dfb = info->par;
276 if (info->var.grayscale)
279 switch (info->fix.visual) {
286 pseudo_val = (red >> 11) << info->var.red.offset;
287 pseudo_val |= (green >> 10) << info->var.green.offset;
288 pseudo_val |= (blue >> 11) << info->var.blue.offset;
293 ((u32 *)info->pseudo_palette)[regno] = pseudo_val;
315 * @info: frame buffer structure that represents a single frame buffer
328 s1d13xxxfb_blank(int blank_mode, struct fb_info *info)
330 struct s1d13xxxfb_par *par = info->par;
332 dbg("s1d13xxxfb_blank: blank=%d, info=%p\n", blank_mode, info);
360 * @info: frame buffer structure that represents a single frame buffer
369 s1d13xxxfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
371 struct s1d13xxxfb_par *par = info->par;
377 if (var->yoffset + info->var.yres > info->var.yres_virtual)
380 start = (info->fix.line_length >> 1) * var->yoffset;
403 * @info : frambuffer structure
411 bltbit_wait_bitclear(struct fb_info *info, u8 bit, int timeout)
413 while (s1d13xxxfb_readreg(info->par, S1DREG_BBLT_CTL0) & bit) {
426 * @info : framebuffer structure
433 s1d13xxxfb_bitblt_copyarea(struct fb_info *info, const struct fb_copyarea *area)
446 bpp = (info->var.bits_per_pixel >> 3);
447 stride = bpp * info->var.xres;
461 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_SRC_START0, (src & 0xff));
462 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_SRC_START1, (src >> 8) & 0x00ff);
463 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_SRC_START2, (src >> 16) & 0x00ff);
466 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_DST_START0, (dst & 0xff));
467 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_DST_START1, (dst >> 8) & 0x00ff);
468 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_DST_START2, (dst >> 16) & 0x00ff);
471 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_WIDTH0, (width & 0xff) - 1);
472 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_WIDTH1, (width >> 8));
474 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_HEIGHT0, (height & 0xff) - 1);
475 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_HEIGHT1, (height >> 8));
480 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_OP, 0x03);
482 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_OP, 0x02);
487 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CTL0, 0x0);
490 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CTL1, (bpp >> 1));
493 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_MEM_OFF0, (stride >> 1) & 0xff);
494 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_MEM_OFF1, (stride >> 9));
503 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CC_EXP, 0x0c);
506 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CTL0, 0x80);
509 bltbit_wait_bitclear(info, 0x80, 8000);
517 * @info : framebuffer structure
524 s1d13xxxfb_bitblt_solidfill(struct fb_info *info, const struct fb_fillrect *rect)
528 u16 bpp = (info->var.bits_per_pixel >> 3);
534 screen_stride = (bpp * info->var.xres);
545 info->var.xres, info->var.yres,
546 info->var.bits_per_pixel);
550 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_DST_START0, (dest & 0x00ff));
551 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_DST_START1, ((dest >> 8) & 0x00ff));
552 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_DST_START2, ((dest >> 16) & 0x00ff));
555 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_WIDTH0, ((rect->width) & 0x00ff) - 1);
556 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_WIDTH1, (rect->width >> 8));
559 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_HEIGHT0, ((rect->height) & 0x00ff) - 1);
560 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_HEIGHT1, (rect->height >> 8));
562 if (info->fix.visual == FB_VISUAL_TRUECOLOR ||
563 info->fix.visual == FB_VISUAL_DIRECTCOLOR) {
564 fg = ((u32 *)info->pseudo_palette)[rect->color];
573 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_FGC0, (fg & 0xff));
574 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_FGC1, (fg >> 8) & 0xff);
577 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CTL0, 0x0);
580 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_OP, BBLT_SOLID_FILL);
583 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CTL1, (info->var.bits_per_pixel >> 4));
586 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_MEM_OFF0, (screen_stride >> 1) & 0x00ff);
587 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_MEM_OFF1, (screen_stride >> 9));
590 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CTL0, 0x80);
593 bltbit_wait_bitclear(info, 0x80, 8000);
622 * @info: frame buffer structure
626 * the chip registers with such info, on others, these values will
634 static void s1d13xxxfb_fetch_hw_state(struct fb_info *info)
636 struct fb_var_screeninfo *var = &info->var;
637 struct fb_fix_screeninfo *fix = &info->fix;
638 struct s1d13xxxfb_par *par = info->par;
649 /* general info */
672 s1d13xxxfb_setup_truecolour(info);
677 fb_alloc_cmap(&info->cmap, 256, 0);
679 /* LCD info */
726 struct fb_info *info = platform_get_drvdata(pdev);
729 if (info) {
730 par = info->par;
738 fb_dealloc_cmap(&info->cmap);
740 if (info->screen_base)
741 iounmap(info->screen_base);
743 framebuffer_release(info);
754 struct fb_info *info = platform_get_drvdata(pdev);
756 unregister_framebuffer(info);
764 struct fb_info *info;
810 info = framebuffer_alloc(sizeof(struct s1d13xxxfb_par) + sizeof(u32) * 256, &pdev->dev);
811 if (!info) {
816 platform_set_drvdata(pdev, info);
817 default_par = info->par;
825 info->pseudo_palette = default_par->pseudo_palette;
827 info->screen_base = ioremap(pdev->resource[0].start,
830 if (!info->screen_base) {
864 info->fix = s1d13xxxfb_fix;
865 info->fix.mmio_start = pdev->resource[1].start;
866 info->fix.mmio_len = resource_size(&pdev->resource[1]);
867 info->fix.smem_start = pdev->resource[0].start;
868 info->fix.smem_len = resource_size(&pdev->resource[0]);
871 default_par->regs, info->fix.smem_len / 1024, info->screen_base);
873 info->par = default_par;
874 info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
875 info->fbops = &s1d13xxxfb_fbops;
881 info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN |
890 s1d13xxxfb_runinit(info->par, pdata->initregs, pdata->initregssize);
892 s1d13xxxfb_fetch_hw_state(info);
894 if (register_framebuffer(info) < 0) {
899 fb_info(info, "%s frame buffer device\n", info->fix.id);
912 struct fb_info *info = platform_get_drvdata(dev);
913 struct s1d13xxxfb_par *s1dfb = info->par;
925 s1dfb->disp_save = kmalloc(info->fix.smem_len, GFP_KERNEL);
932 memcpy_fromio(s1dfb->disp_save, info->screen_base, info->fix.smem_len);
938 s1dfb->regs_save = kmalloc(info->fix.mmio_len, GFP_KERNEL);
946 memcpy_fromio(s1dfb->regs_save, s1dfb->regs, info->fix.mmio_len);
959 struct fb_info *info = platform_get_drvdata(dev);
960 struct s1d13xxxfb_par *s1dfb = info->par;
975 memcpy_toio(s1dfb->regs, s1dfb->regs_save, info->fix.mmio_len);
980 memcpy_toio(info->screen_base, s1dfb->disp_save,
981 info->fix.smem_len);