Lines Matching refs:info

235 static void picolcd_fb_update(struct fb_info *info)  in picolcd_fb_update()  argument
239 struct picolcd_fb_data *fbdata = info->par; in picolcd_fb_update()
242 mutex_lock(&info->lock); in picolcd_fb_update()
268 mutex_unlock(&info->lock); in picolcd_fb_update()
272 mutex_lock(&info->lock); in picolcd_fb_update()
287 mutex_unlock(&info->lock); in picolcd_fb_update()
293 mutex_unlock(&info->lock); in picolcd_fb_update()
297 static void picolcd_fb_fillrect(struct fb_info *info, in picolcd_fb_fillrect() argument
300 if (!info->par) in picolcd_fb_fillrect()
302 sys_fillrect(info, rect); in picolcd_fb_fillrect()
304 schedule_delayed_work(&info->deferred_work, 0); in picolcd_fb_fillrect()
308 static void picolcd_fb_copyarea(struct fb_info *info, in picolcd_fb_copyarea() argument
311 if (!info->par) in picolcd_fb_copyarea()
313 sys_copyarea(info, area); in picolcd_fb_copyarea()
315 schedule_delayed_work(&info->deferred_work, 0); in picolcd_fb_copyarea()
319 static void picolcd_fb_imageblit(struct fb_info *info, const struct fb_image *image) in picolcd_fb_imageblit() argument
321 if (!info->par) in picolcd_fb_imageblit()
323 sys_imageblit(info, image); in picolcd_fb_imageblit()
325 schedule_delayed_work(&info->deferred_work, 0); in picolcd_fb_imageblit()
332 static ssize_t picolcd_fb_write(struct fb_info *info, const char __user *buf, in picolcd_fb_write() argument
336 if (!info->par) in picolcd_fb_write()
338 ret = fb_sys_write(info, buf, count, ppos); in picolcd_fb_write()
340 schedule_delayed_work(&info->deferred_work, 0); in picolcd_fb_write()
344 static int picolcd_fb_blank(int blank, struct fb_info *info) in picolcd_fb_blank() argument
350 static void picolcd_fb_destroy(struct fb_info *info) in picolcd_fb_destroy() argument
352 struct picolcd_fb_data *fbdata = info->par; in picolcd_fb_destroy()
355 fb_deferred_io_cleanup(info); in picolcd_fb_destroy()
360 vfree((u8 *)info->fix.smem_start); in picolcd_fb_destroy()
361 framebuffer_release(info); in picolcd_fb_destroy()
364 static int picolcd_fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) in picolcd_fb_check_var() argument
386 static int picolcd_set_par(struct fb_info *info) in picolcd_set_par() argument
388 struct picolcd_fb_data *fbdata = info->par; in picolcd_set_par()
390 if (info->var.bits_per_pixel == fbdata->bpp) in picolcd_set_par()
393 if (info->var.bits_per_pixel != 1 && info->var.bits_per_pixel != 8) in picolcd_set_par()
397 tmp_fb = kmalloc(PICOLCDFB_SIZE*info->var.bits_per_pixel, GFP_KERNEL); in picolcd_set_par()
402 if (info->var.bits_per_pixel == 1) { in picolcd_set_par()
413 info->fix.visual = FB_VISUAL_MONO01; in picolcd_set_par()
414 info->fix.line_length = PICOLCDFB_WIDTH / 8; in picolcd_set_par()
420 info->fix.visual = FB_VISUAL_DIRECTCOLOR; in picolcd_set_par()
421 info->fix.line_length = PICOLCDFB_WIDTH; in picolcd_set_par()
425 fbdata->bpp = info->var.bits_per_pixel; in picolcd_set_par()
445 static void picolcd_fb_deferred_io(struct fb_info *info, struct list_head *pagelist) in picolcd_fb_deferred_io() argument
447 picolcd_fb_update(info); in picolcd_fb_deferred_io()
511 struct fb_info *info = NULL; in picolcd_init_framebuffer() local
520 info = framebuffer_alloc(256 * sizeof(u32) + in picolcd_init_framebuffer()
524 if (info == NULL) { in picolcd_init_framebuffer()
529 info->fbdefio = info->par; in picolcd_init_framebuffer()
530 *info->fbdefio = picolcd_fb_defio; in picolcd_init_framebuffer()
531 info->par += sizeof(struct fb_deferred_io); in picolcd_init_framebuffer()
532 palette = info->par; in picolcd_init_framebuffer()
533 info->par += 256 * sizeof(u32); in picolcd_init_framebuffer()
536 info->pseudo_palette = palette; in picolcd_init_framebuffer()
537 info->fbops = &picolcdfb_ops; in picolcd_init_framebuffer()
538 info->var = picolcdfb_var; in picolcd_init_framebuffer()
539 info->fix = picolcdfb_fix; in picolcd_init_framebuffer()
540 info->fix.smem_len = PICOLCDFB_SIZE*8; in picolcd_init_framebuffer()
541 info->flags = FBINFO_FLAG_DEFAULT; in picolcd_init_framebuffer()
543 fbdata = info->par; in picolcd_init_framebuffer()
549 fbdata->vbitmap = info->par + sizeof(struct picolcd_fb_data); in picolcd_init_framebuffer()
555 info->screen_base = (char __force __iomem *)fbdata->bitmap; in picolcd_init_framebuffer()
556 info->fix.smem_start = (unsigned long)fbdata->bitmap; in picolcd_init_framebuffer()
558 data->fb_info = info; in picolcd_init_framebuffer()
572 fb_deferred_io_init(info); in picolcd_init_framebuffer()
573 error = register_framebuffer(info); in picolcd_init_framebuffer()
582 fb_deferred_io_cleanup(info); in picolcd_init_framebuffer()
589 framebuffer_release(info); in picolcd_init_framebuffer()
595 struct fb_info *info = data->fb_info; in picolcd_exit_framebuffer() local
599 if (!info) in picolcd_exit_framebuffer()
603 fbdata = info->par; in picolcd_exit_framebuffer()
613 flush_delayed_work(&info->deferred_work); in picolcd_exit_framebuffer()
616 unregister_framebuffer(info); in picolcd_exit_framebuffer()