Lines Matching refs:info

165 s1d13xxxfb_setup_pseudocolour(struct fb_info *info)  in s1d13xxxfb_setup_pseudocolour()  argument
167 info->fix.visual = FB_VISUAL_PSEUDOCOLOR; in s1d13xxxfb_setup_pseudocolour()
169 info->var.red.length = 4; in s1d13xxxfb_setup_pseudocolour()
170 info->var.green.length = 4; in s1d13xxxfb_setup_pseudocolour()
171 info->var.blue.length = 4; in s1d13xxxfb_setup_pseudocolour()
175 s1d13xxxfb_setup_truecolour(struct fb_info *info) in s1d13xxxfb_setup_truecolour() argument
177 info->fix.visual = FB_VISUAL_TRUECOLOR; in s1d13xxxfb_setup_truecolour()
178 info->var.bits_per_pixel = 16; in s1d13xxxfb_setup_truecolour()
180 info->var.red.length = 5; in s1d13xxxfb_setup_truecolour()
181 info->var.red.offset = 11; in s1d13xxxfb_setup_truecolour()
183 info->var.green.length = 6; in s1d13xxxfb_setup_truecolour()
184 info->var.green.offset = 5; in s1d13xxxfb_setup_truecolour()
186 info->var.blue.length = 5; in s1d13xxxfb_setup_truecolour()
187 info->var.blue.offset = 0; in s1d13xxxfb_setup_truecolour()
205 s1d13xxxfb_set_par(struct fb_info *info) in s1d13xxxfb_set_par() argument
207 struct s1d13xxxfb_par *s1dfb = info->par; in s1d13xxxfb_set_par()
210 dbg("s1d13xxxfb_set_par: bpp=%d\n", info->var.bits_per_pixel); in s1d13xxxfb_set_par()
219 switch (info->var.bits_per_pixel) { in s1d13xxxfb_set_par()
222 s1d13xxxfb_setup_pseudocolour(info); in s1d13xxxfb_set_par()
227 s1d13xxxfb_setup_pseudocolour(info); in s1d13xxxfb_set_par()
232 s1d13xxxfb_setup_truecolour(info); in s1d13xxxfb_set_par()
248 info->fix.line_length = info->var.xres * info->var.bits_per_pixel; in s1d13xxxfb_set_par()
249 info->fix.line_length /= 8; in s1d13xxxfb_set_par()
251 dbg("setting line_length to %d\n", info->fix.line_length); in s1d13xxxfb_set_par()
271 u_int transp, struct fb_info *info) in s1d13xxxfb_setcolreg() argument
273 struct s1d13xxxfb_par *s1dfb = info->par; in s1d13xxxfb_setcolreg()
282 if (info->var.grayscale) in s1d13xxxfb_setcolreg()
285 switch (info->fix.visual) { in s1d13xxxfb_setcolreg()
292 pseudo_val = (red >> 11) << info->var.red.offset; in s1d13xxxfb_setcolreg()
293 pseudo_val |= (green >> 10) << info->var.green.offset; in s1d13xxxfb_setcolreg()
294 pseudo_val |= (blue >> 11) << info->var.blue.offset; in s1d13xxxfb_setcolreg()
300 ((u32 *)info->pseudo_palette)[regno] = cpu_to_le16(pseudo_val); in s1d13xxxfb_setcolreg()
302 ((u32 *)info->pseudo_palette)[regno] = pseudo_val; in s1d13xxxfb_setcolreg()
338 s1d13xxxfb_blank(int blank_mode, struct fb_info *info) in s1d13xxxfb_blank() argument
340 struct s1d13xxxfb_par *par = info->par; in s1d13xxxfb_blank()
342 dbg("s1d13xxxfb_blank: blank=%d, info=%p\n", blank_mode, info); in s1d13xxxfb_blank()
379 s1d13xxxfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info) in s1d13xxxfb_pan_display() argument
381 struct s1d13xxxfb_par *par = info->par; in s1d13xxxfb_pan_display()
387 if (var->yoffset + info->var.yres > info->var.yres_virtual) in s1d13xxxfb_pan_display()
390 start = (info->fix.line_length >> 1) * var->yoffset; in s1d13xxxfb_pan_display()
421 bltbit_wait_bitclear(struct fb_info *info, u8 bit, int timeout) in bltbit_wait_bitclear() argument
423 while (s1d13xxxfb_readreg(info->par, S1DREG_BBLT_CTL0) & bit) { in bltbit_wait_bitclear()
443 s1d13xxxfb_bitblt_copyarea(struct fb_info *info, const struct fb_copyarea *area) in s1d13xxxfb_bitblt_copyarea() argument
456 bpp = (info->var.bits_per_pixel >> 3); in s1d13xxxfb_bitblt_copyarea()
457 stride = bpp * info->var.xres; in s1d13xxxfb_bitblt_copyarea()
471 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_SRC_START0, (src & 0xff)); in s1d13xxxfb_bitblt_copyarea()
472 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_SRC_START1, (src >> 8) & 0x00ff); in s1d13xxxfb_bitblt_copyarea()
473 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_SRC_START2, (src >> 16) & 0x00ff); in s1d13xxxfb_bitblt_copyarea()
476 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_DST_START0, (dst & 0xff)); in s1d13xxxfb_bitblt_copyarea()
477 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_DST_START1, (dst >> 8) & 0x00ff); in s1d13xxxfb_bitblt_copyarea()
478 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_DST_START2, (dst >> 16) & 0x00ff); in s1d13xxxfb_bitblt_copyarea()
481 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_WIDTH0, (width & 0xff) - 1); in s1d13xxxfb_bitblt_copyarea()
482 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_WIDTH1, (width >> 8)); in s1d13xxxfb_bitblt_copyarea()
484 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_HEIGHT0, (height & 0xff) - 1); in s1d13xxxfb_bitblt_copyarea()
485 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_HEIGHT1, (height >> 8)); in s1d13xxxfb_bitblt_copyarea()
490 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_OP, 0x03); in s1d13xxxfb_bitblt_copyarea()
492 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_OP, 0x02); in s1d13xxxfb_bitblt_copyarea()
497 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CTL0, 0x0); in s1d13xxxfb_bitblt_copyarea()
500 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CTL1, (bpp >> 1)); in s1d13xxxfb_bitblt_copyarea()
503 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_MEM_OFF0, (stride >> 1) & 0xff); in s1d13xxxfb_bitblt_copyarea()
504 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_MEM_OFF1, (stride >> 9)); in s1d13xxxfb_bitblt_copyarea()
513 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CC_EXP, 0x0c); in s1d13xxxfb_bitblt_copyarea()
516 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CTL0, 0x80); in s1d13xxxfb_bitblt_copyarea()
519 bltbit_wait_bitclear(info, 0x80, 8000); in s1d13xxxfb_bitblt_copyarea()
534 s1d13xxxfb_bitblt_solidfill(struct fb_info *info, const struct fb_fillrect *rect) in s1d13xxxfb_bitblt_solidfill() argument
538 u16 bpp = (info->var.bits_per_pixel >> 3); in s1d13xxxfb_bitblt_solidfill()
544 screen_stride = (bpp * info->var.xres); in s1d13xxxfb_bitblt_solidfill()
555 info->var.xres, info->var.yres, in s1d13xxxfb_bitblt_solidfill()
556 info->var.bits_per_pixel); in s1d13xxxfb_bitblt_solidfill()
560 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_DST_START0, (dest & 0x00ff)); in s1d13xxxfb_bitblt_solidfill()
561 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_DST_START1, ((dest >> 8) & 0x00ff)); in s1d13xxxfb_bitblt_solidfill()
562 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_DST_START2, ((dest >> 16) & 0x00ff)); in s1d13xxxfb_bitblt_solidfill()
565 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_WIDTH0, ((rect->width) & 0x00ff) - 1); in s1d13xxxfb_bitblt_solidfill()
566 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_WIDTH1, (rect->width >> 8)); in s1d13xxxfb_bitblt_solidfill()
569 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_HEIGHT0, ((rect->height) & 0x00ff) - 1); in s1d13xxxfb_bitblt_solidfill()
570 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_HEIGHT1, (rect->height >> 8)); in s1d13xxxfb_bitblt_solidfill()
572 if (info->fix.visual == FB_VISUAL_TRUECOLOR || in s1d13xxxfb_bitblt_solidfill()
573 info->fix.visual == FB_VISUAL_DIRECTCOLOR) { in s1d13xxxfb_bitblt_solidfill()
574 fg = ((u32 *)info->pseudo_palette)[rect->color]; in s1d13xxxfb_bitblt_solidfill()
583 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_FGC0, (fg & 0xff)); in s1d13xxxfb_bitblt_solidfill()
584 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_FGC1, (fg >> 8) & 0xff); in s1d13xxxfb_bitblt_solidfill()
587 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CTL0, 0x0); in s1d13xxxfb_bitblt_solidfill()
590 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_OP, BBLT_SOLID_FILL); in s1d13xxxfb_bitblt_solidfill()
593 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CTL1, (info->var.bits_per_pixel >> 4)); in s1d13xxxfb_bitblt_solidfill()
596 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_MEM_OFF0, (screen_stride >> 1) & 0x00ff); in s1d13xxxfb_bitblt_solidfill()
597 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_MEM_OFF1, (screen_stride >> 9)); in s1d13xxxfb_bitblt_solidfill()
600 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CTL0, 0x80); in s1d13xxxfb_bitblt_solidfill()
603 bltbit_wait_bitclear(info, 0x80, 8000); in s1d13xxxfb_bitblt_solidfill()
644 static void s1d13xxxfb_fetch_hw_state(struct fb_info *info) in s1d13xxxfb_fetch_hw_state() argument
646 struct fb_var_screeninfo *var = &info->var; in s1d13xxxfb_fetch_hw_state()
647 struct fb_fix_screeninfo *fix = &info->fix; in s1d13xxxfb_fetch_hw_state()
648 struct s1d13xxxfb_par *par = info->par; in s1d13xxxfb_fetch_hw_state()
682 s1d13xxxfb_setup_truecolour(info); in s1d13xxxfb_fetch_hw_state()
687 fb_alloc_cmap(&info->cmap, 256, 0); in s1d13xxxfb_fetch_hw_state()
738 struct fb_info *info = platform_get_drvdata(pdev); in s1d13xxxfb_remove() local
741 if (info) { in s1d13xxxfb_remove()
742 par = info->par; in s1d13xxxfb_remove()
750 fb_dealloc_cmap(&info->cmap); in s1d13xxxfb_remove()
752 if (info->screen_base) in s1d13xxxfb_remove()
753 iounmap(info->screen_base); in s1d13xxxfb_remove()
755 framebuffer_release(info); in s1d13xxxfb_remove()
768 struct fb_info *info; in s1d13xxxfb_probe() local
814 info = framebuffer_alloc(sizeof(struct s1d13xxxfb_par) + sizeof(u32) * 256, &pdev->dev); in s1d13xxxfb_probe()
815 if (!info) { in s1d13xxxfb_probe()
820 platform_set_drvdata(pdev, info); in s1d13xxxfb_probe()
821 default_par = info->par; in s1d13xxxfb_probe()
829 info->pseudo_palette = default_par->pseudo_palette; in s1d13xxxfb_probe()
831 info->screen_base = ioremap_nocache(pdev->resource[0].start, in s1d13xxxfb_probe()
834 if (!info->screen_base) { in s1d13xxxfb_probe()
868 info->fix = s1d13xxxfb_fix; in s1d13xxxfb_probe()
869 info->fix.mmio_start = pdev->resource[1].start; in s1d13xxxfb_probe()
870 info->fix.mmio_len = pdev->resource[1].end - pdev->resource[1].start + 1; in s1d13xxxfb_probe()
871 info->fix.smem_start = pdev->resource[0].start; in s1d13xxxfb_probe()
872 info->fix.smem_len = pdev->resource[0].end - pdev->resource[0].start + 1; in s1d13xxxfb_probe()
875 default_par->regs, info->fix.smem_len / 1024, info->screen_base); in s1d13xxxfb_probe()
877 info->par = default_par; in s1d13xxxfb_probe()
878 info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN; in s1d13xxxfb_probe()
879 info->fbops = &s1d13xxxfb_fbops; in s1d13xxxfb_probe()
885 info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN | in s1d13xxxfb_probe()
894 s1d13xxxfb_runinit(info->par, pdata->initregs, pdata->initregssize); in s1d13xxxfb_probe()
896 s1d13xxxfb_fetch_hw_state(info); in s1d13xxxfb_probe()
898 if (register_framebuffer(info) < 0) { in s1d13xxxfb_probe()
903 fb_info(info, "%s frame buffer device\n", info->fix.id); in s1d13xxxfb_probe()
916 struct fb_info *info = platform_get_drvdata(dev); in s1d13xxxfb_suspend() local
917 struct s1d13xxxfb_par *s1dfb = info->par; in s1d13xxxfb_suspend()
929 s1dfb->disp_save = kmalloc(info->fix.smem_len, GFP_KERNEL); in s1d13xxxfb_suspend()
936 memcpy_fromio(s1dfb->disp_save, info->screen_base, info->fix.smem_len); in s1d13xxxfb_suspend()
942 s1dfb->regs_save = kmalloc(info->fix.mmio_len, GFP_KERNEL); in s1d13xxxfb_suspend()
950 memcpy_fromio(s1dfb->regs_save, s1dfb->regs, info->fix.mmio_len); in s1d13xxxfb_suspend()
963 struct fb_info *info = platform_get_drvdata(dev); in s1d13xxxfb_resume() local
964 struct s1d13xxxfb_par *s1dfb = info->par; in s1d13xxxfb_resume()
979 memcpy_toio(s1dfb->regs, s1dfb->regs_save, info->fix.mmio_len); in s1d13xxxfb_resume()
984 memcpy_toio(info->screen_base, s1dfb->disp_save, in s1d13xxxfb_resume()
985 info->fix.smem_len); in s1d13xxxfb_resume()