Lines Matching refs:info
166 s1d13xxxfb_setup_pseudocolour(struct fb_info *info) in s1d13xxxfb_setup_pseudocolour() argument
168 info->fix.visual = FB_VISUAL_PSEUDOCOLOR; in s1d13xxxfb_setup_pseudocolour()
170 info->var.red.length = 4; in s1d13xxxfb_setup_pseudocolour()
171 info->var.green.length = 4; in s1d13xxxfb_setup_pseudocolour()
172 info->var.blue.length = 4; in s1d13xxxfb_setup_pseudocolour()
176 s1d13xxxfb_setup_truecolour(struct fb_info *info) in s1d13xxxfb_setup_truecolour() argument
178 info->fix.visual = FB_VISUAL_TRUECOLOR; in s1d13xxxfb_setup_truecolour()
179 info->var.bits_per_pixel = 16; in s1d13xxxfb_setup_truecolour()
181 info->var.red.length = 5; in s1d13xxxfb_setup_truecolour()
182 info->var.red.offset = 11; in s1d13xxxfb_setup_truecolour()
184 info->var.green.length = 6; in s1d13xxxfb_setup_truecolour()
185 info->var.green.offset = 5; in s1d13xxxfb_setup_truecolour()
187 info->var.blue.length = 5; in s1d13xxxfb_setup_truecolour()
188 info->var.blue.offset = 0; in s1d13xxxfb_setup_truecolour()
206 s1d13xxxfb_set_par(struct fb_info *info) in s1d13xxxfb_set_par() argument
208 struct s1d13xxxfb_par *s1dfb = info->par; in s1d13xxxfb_set_par()
211 dbg("s1d13xxxfb_set_par: bpp=%d\n", info->var.bits_per_pixel); in s1d13xxxfb_set_par()
220 switch (info->var.bits_per_pixel) { in s1d13xxxfb_set_par()
223 s1d13xxxfb_setup_pseudocolour(info); in s1d13xxxfb_set_par()
228 s1d13xxxfb_setup_pseudocolour(info); in s1d13xxxfb_set_par()
233 s1d13xxxfb_setup_truecolour(info); in s1d13xxxfb_set_par()
249 info->fix.line_length = info->var.xres * info->var.bits_per_pixel; in s1d13xxxfb_set_par()
250 info->fix.line_length /= 8; in s1d13xxxfb_set_par()
252 dbg("setting line_length to %d\n", info->fix.line_length); in s1d13xxxfb_set_par()
272 u_int transp, struct fb_info *info) in s1d13xxxfb_setcolreg() argument
274 struct s1d13xxxfb_par *s1dfb = info->par; in s1d13xxxfb_setcolreg()
283 if (info->var.grayscale) in s1d13xxxfb_setcolreg()
286 switch (info->fix.visual) { in s1d13xxxfb_setcolreg()
293 pseudo_val = (red >> 11) << info->var.red.offset; in s1d13xxxfb_setcolreg()
294 pseudo_val |= (green >> 10) << info->var.green.offset; in s1d13xxxfb_setcolreg()
295 pseudo_val |= (blue >> 11) << info->var.blue.offset; in s1d13xxxfb_setcolreg()
301 ((u32 *)info->pseudo_palette)[regno] = cpu_to_le16(pseudo_val); in s1d13xxxfb_setcolreg()
303 ((u32 *)info->pseudo_palette)[regno] = pseudo_val; in s1d13xxxfb_setcolreg()
339 s1d13xxxfb_blank(int blank_mode, struct fb_info *info) in s1d13xxxfb_blank() argument
341 struct s1d13xxxfb_par *par = info->par; in s1d13xxxfb_blank()
343 dbg("s1d13xxxfb_blank: blank=%d, info=%p\n", blank_mode, info); in s1d13xxxfb_blank()
380 s1d13xxxfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info) in s1d13xxxfb_pan_display() argument
382 struct s1d13xxxfb_par *par = info->par; in s1d13xxxfb_pan_display()
388 if (var->yoffset + info->var.yres > info->var.yres_virtual) in s1d13xxxfb_pan_display()
391 start = (info->fix.line_length >> 1) * var->yoffset; in s1d13xxxfb_pan_display()
422 bltbit_wait_bitclear(struct fb_info *info, u8 bit, int timeout) in bltbit_wait_bitclear() argument
424 while (s1d13xxxfb_readreg(info->par, S1DREG_BBLT_CTL0) & bit) { in bltbit_wait_bitclear()
444 s1d13xxxfb_bitblt_copyarea(struct fb_info *info, const struct fb_copyarea *area) in s1d13xxxfb_bitblt_copyarea() argument
457 bpp = (info->var.bits_per_pixel >> 3); in s1d13xxxfb_bitblt_copyarea()
458 stride = bpp * info->var.xres; in s1d13xxxfb_bitblt_copyarea()
472 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_SRC_START0, (src & 0xff)); in s1d13xxxfb_bitblt_copyarea()
473 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_SRC_START1, (src >> 8) & 0x00ff); in s1d13xxxfb_bitblt_copyarea()
474 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_SRC_START2, (src >> 16) & 0x00ff); in s1d13xxxfb_bitblt_copyarea()
477 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_DST_START0, (dst & 0xff)); in s1d13xxxfb_bitblt_copyarea()
478 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_DST_START1, (dst >> 8) & 0x00ff); in s1d13xxxfb_bitblt_copyarea()
479 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_DST_START2, (dst >> 16) & 0x00ff); in s1d13xxxfb_bitblt_copyarea()
482 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_WIDTH0, (width & 0xff) - 1); in s1d13xxxfb_bitblt_copyarea()
483 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_WIDTH1, (width >> 8)); in s1d13xxxfb_bitblt_copyarea()
485 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_HEIGHT0, (height & 0xff) - 1); in s1d13xxxfb_bitblt_copyarea()
486 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_HEIGHT1, (height >> 8)); in s1d13xxxfb_bitblt_copyarea()
491 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_OP, 0x03); in s1d13xxxfb_bitblt_copyarea()
493 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_OP, 0x02); in s1d13xxxfb_bitblt_copyarea()
498 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CTL0, 0x0); in s1d13xxxfb_bitblt_copyarea()
501 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CTL1, (bpp >> 1)); in s1d13xxxfb_bitblt_copyarea()
504 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_MEM_OFF0, (stride >> 1) & 0xff); in s1d13xxxfb_bitblt_copyarea()
505 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_MEM_OFF1, (stride >> 9)); in s1d13xxxfb_bitblt_copyarea()
514 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CC_EXP, 0x0c); in s1d13xxxfb_bitblt_copyarea()
517 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CTL0, 0x80); in s1d13xxxfb_bitblt_copyarea()
520 bltbit_wait_bitclear(info, 0x80, 8000); in s1d13xxxfb_bitblt_copyarea()
535 s1d13xxxfb_bitblt_solidfill(struct fb_info *info, const struct fb_fillrect *rect) in s1d13xxxfb_bitblt_solidfill() argument
539 u16 bpp = (info->var.bits_per_pixel >> 3); in s1d13xxxfb_bitblt_solidfill()
545 screen_stride = (bpp * info->var.xres); in s1d13xxxfb_bitblt_solidfill()
556 info->var.xres, info->var.yres, in s1d13xxxfb_bitblt_solidfill()
557 info->var.bits_per_pixel); in s1d13xxxfb_bitblt_solidfill()
561 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_DST_START0, (dest & 0x00ff)); in s1d13xxxfb_bitblt_solidfill()
562 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_DST_START1, ((dest >> 8) & 0x00ff)); in s1d13xxxfb_bitblt_solidfill()
563 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_DST_START2, ((dest >> 16) & 0x00ff)); in s1d13xxxfb_bitblt_solidfill()
566 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_WIDTH0, ((rect->width) & 0x00ff) - 1); in s1d13xxxfb_bitblt_solidfill()
567 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_WIDTH1, (rect->width >> 8)); in s1d13xxxfb_bitblt_solidfill()
570 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_HEIGHT0, ((rect->height) & 0x00ff) - 1); in s1d13xxxfb_bitblt_solidfill()
571 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_HEIGHT1, (rect->height >> 8)); in s1d13xxxfb_bitblt_solidfill()
573 if (info->fix.visual == FB_VISUAL_TRUECOLOR || in s1d13xxxfb_bitblt_solidfill()
574 info->fix.visual == FB_VISUAL_DIRECTCOLOR) { in s1d13xxxfb_bitblt_solidfill()
575 fg = ((u32 *)info->pseudo_palette)[rect->color]; in s1d13xxxfb_bitblt_solidfill()
584 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_FGC0, (fg & 0xff)); in s1d13xxxfb_bitblt_solidfill()
585 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_FGC1, (fg >> 8) & 0xff); in s1d13xxxfb_bitblt_solidfill()
588 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CTL0, 0x0); in s1d13xxxfb_bitblt_solidfill()
591 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_OP, BBLT_SOLID_FILL); in s1d13xxxfb_bitblt_solidfill()
594 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CTL1, (info->var.bits_per_pixel >> 4)); in s1d13xxxfb_bitblt_solidfill()
597 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_MEM_OFF0, (screen_stride >> 1) & 0x00ff); in s1d13xxxfb_bitblt_solidfill()
598 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_MEM_OFF1, (screen_stride >> 9)); in s1d13xxxfb_bitblt_solidfill()
601 s1d13xxxfb_writereg(info->par, S1DREG_BBLT_CTL0, 0x80); in s1d13xxxfb_bitblt_solidfill()
604 bltbit_wait_bitclear(info, 0x80, 8000); in s1d13xxxfb_bitblt_solidfill()
645 static void s1d13xxxfb_fetch_hw_state(struct fb_info *info) in s1d13xxxfb_fetch_hw_state() argument
647 struct fb_var_screeninfo *var = &info->var; in s1d13xxxfb_fetch_hw_state()
648 struct fb_fix_screeninfo *fix = &info->fix; in s1d13xxxfb_fetch_hw_state()
649 struct s1d13xxxfb_par *par = info->par; in s1d13xxxfb_fetch_hw_state()
683 s1d13xxxfb_setup_truecolour(info); in s1d13xxxfb_fetch_hw_state()
688 fb_alloc_cmap(&info->cmap, 256, 0); in s1d13xxxfb_fetch_hw_state()
739 struct fb_info *info = platform_get_drvdata(pdev); in s1d13xxxfb_remove() local
742 if (info) { in s1d13xxxfb_remove()
743 par = info->par; in s1d13xxxfb_remove()
751 fb_dealloc_cmap(&info->cmap); in s1d13xxxfb_remove()
753 if (info->screen_base) in s1d13xxxfb_remove()
754 iounmap(info->screen_base); in s1d13xxxfb_remove()
756 framebuffer_release(info); in s1d13xxxfb_remove()
769 struct fb_info *info; in s1d13xxxfb_probe() local
815 info = framebuffer_alloc(sizeof(struct s1d13xxxfb_par) + sizeof(u32) * 256, &pdev->dev); in s1d13xxxfb_probe()
816 if (!info) { in s1d13xxxfb_probe()
821 platform_set_drvdata(pdev, info); in s1d13xxxfb_probe()
822 default_par = info->par; in s1d13xxxfb_probe()
830 info->pseudo_palette = default_par->pseudo_palette; in s1d13xxxfb_probe()
832 info->screen_base = ioremap_nocache(pdev->resource[0].start, in s1d13xxxfb_probe()
835 if (!info->screen_base) { in s1d13xxxfb_probe()
869 info->fix = s1d13xxxfb_fix; in s1d13xxxfb_probe()
870 info->fix.mmio_start = pdev->resource[1].start; in s1d13xxxfb_probe()
871 info->fix.mmio_len = pdev->resource[1].end - pdev->resource[1].start + 1; in s1d13xxxfb_probe()
872 info->fix.smem_start = pdev->resource[0].start; in s1d13xxxfb_probe()
873 info->fix.smem_len = pdev->resource[0].end - pdev->resource[0].start + 1; in s1d13xxxfb_probe()
876 default_par->regs, info->fix.smem_len / 1024, info->screen_base); in s1d13xxxfb_probe()
878 info->par = default_par; in s1d13xxxfb_probe()
879 info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN; in s1d13xxxfb_probe()
880 info->fbops = &s1d13xxxfb_fbops; in s1d13xxxfb_probe()
886 info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN | in s1d13xxxfb_probe()
895 s1d13xxxfb_runinit(info->par, pdata->initregs, pdata->initregssize); in s1d13xxxfb_probe()
897 s1d13xxxfb_fetch_hw_state(info); in s1d13xxxfb_probe()
899 if (register_framebuffer(info) < 0) { in s1d13xxxfb_probe()
904 fb_info(info, "%s frame buffer device\n", info->fix.id); in s1d13xxxfb_probe()
917 struct fb_info *info = platform_get_drvdata(dev); in s1d13xxxfb_suspend() local
918 struct s1d13xxxfb_par *s1dfb = info->par; in s1d13xxxfb_suspend()
930 s1dfb->disp_save = kmalloc(info->fix.smem_len, GFP_KERNEL); in s1d13xxxfb_suspend()
937 memcpy_fromio(s1dfb->disp_save, info->screen_base, info->fix.smem_len); in s1d13xxxfb_suspend()
943 s1dfb->regs_save = kmalloc(info->fix.mmio_len, GFP_KERNEL); in s1d13xxxfb_suspend()
951 memcpy_fromio(s1dfb->regs_save, s1dfb->regs, info->fix.mmio_len); in s1d13xxxfb_suspend()
964 struct fb_info *info = platform_get_drvdata(dev); in s1d13xxxfb_resume() local
965 struct s1d13xxxfb_par *s1dfb = info->par; in s1d13xxxfb_resume()
980 memcpy_toio(s1dfb->regs, s1dfb->regs_save, info->fix.mmio_len); in s1d13xxxfb_resume()
985 memcpy_toio(info->screen_base, s1dfb->disp_save, in s1d13xxxfb_resume()
986 info->fix.smem_len); in s1d13xxxfb_resume()