Lines Matching refs:fb_info
48 struct fb_info *registered_fb[FB_MAX] __read_mostly;
54 static struct fb_info *get_fb_info(unsigned int idx) in get_fb_info()
56 struct fb_info *fb_info; in get_fb_info() local
62 fb_info = registered_fb[idx]; in get_fb_info()
63 if (fb_info) in get_fb_info()
64 atomic_inc(&fb_info->count); in get_fb_info()
67 return fb_info; in get_fb_info()
70 static void put_fb_info(struct fb_info *fb_info) in put_fb_info() argument
72 if (!atomic_dec_and_test(&fb_info->count)) in put_fb_info()
74 if (fb_info->fbops->fb_destroy) in put_fb_info()
75 fb_info->fbops->fb_destroy(fb_info); in put_fb_info()
78 int lock_fb_info(struct fb_info *info) in lock_fb_info()
159 char* fb_get_buffer_offset(struct fb_info *info, struct fb_pixmap *buf, u32 size) in fb_get_buffer_offset()
199 static void fb_set_logocmap(struct fb_info *info, in fb_set_logocmap()
233 static void fb_set_logo_truepalette(struct fb_info *info, in fb_set_logo_truepalette()
263 static void fb_set_logo_directpalette(struct fb_info *info, in fb_set_logo_directpalette()
278 static void fb_set_logo(struct fb_info *info, in fb_set_logo()
391 static void fb_rotate_logo(struct fb_info *info, u8 *dst, in fb_rotate_logo()
424 static void fb_do_show_logo(struct fb_info *info, struct fb_image *image, in fb_do_show_logo()
463 static int fb_show_logo_line(struct fb_info *info, int rotate, in fb_show_logo_line()
551 static int fb_prepare_extra_logos(struct fb_info *info, unsigned int height, in fb_prepare_extra_logos()
575 static int fb_show_extra_logos(struct fb_info *info, int y, int rotate) in fb_show_extra_logos()
588 static inline int fb_prepare_extra_logos(struct fb_info *info, in fb_prepare_extra_logos()
595 static inline int fb_show_extra_logos(struct fb_info *info, int y, int rotate) in fb_show_extra_logos()
603 int fb_prepare_logo(struct fb_info *info, int rotate) in fb_prepare_logo()
671 int fb_show_logo(struct fb_info *info, int rotate) in fb_show_logo()
682 int fb_prepare_logo(struct fb_info *info, int rotate) { return 0; } in fb_prepare_logo()
683 int fb_show_logo(struct fb_info *info, int rotate) { return 0; } in fb_show_logo()
708 struct fb_info *fi = registered_fb[i]; in fb_seq_show()
743 static struct fb_info *file_fb_info(struct file *file) in file_fb_info()
747 struct fb_info *info = registered_fb[fbidx]; in file_fb_info()
758 struct fb_info *info = file_fb_info(file); in fb_read()
823 struct fb_info *info = file_fb_info(file); in fb_write()
892 fb_pan_display(struct fb_info *info, struct fb_var_screeninfo *var) in fb_pan_display()
929 static int fb_check_caps(struct fb_info *info, struct fb_var_screeninfo *var, in fb_check_caps()
953 fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var) in fb_set_var()
1074 fb_blank(struct fb_info *info, int blank) in fb_blank()
1105 static long do_fb_ioctl(struct fb_info *info, unsigned int cmd, in do_fb_ioctl()
1247 struct fb_info *info = file_fb_info(file); in fb_ioctl()
1281 static int fb_getput_cmap(struct fb_info *info, unsigned int cmd, in fb_getput_cmap()
1349 static int fb_get_fscreeninfo(struct fb_info *info, unsigned int cmd, in fb_get_fscreeninfo()
1373 struct fb_info *info = file_fb_info(file); in fb_compat_ioctl()
1412 struct fb_info *info = file_fb_info(file); in fb_mmap()
1462 struct fb_info *info; in fb_open()
1502 struct fb_info * const info = file->private_data; in fb_release()
1536 static int fb_check_foreignness(struct fb_info *fi) in fb_check_foreignness()
1596 static int do_unregister_framebuffer(struct fb_info *fb_info);
1629 static int do_register_framebuffer(struct fb_info *fb_info) in do_register_framebuffer() argument
1635 if (fb_check_foreignness(fb_info)) in do_register_framebuffer()
1638 ret = do_remove_conflicting_framebuffers(fb_info->apertures, in do_register_framebuffer()
1639 fb_info->fix.id, in do_register_framebuffer()
1640 fb_is_primary_device(fb_info)); in do_register_framebuffer()
1651 fb_info->node = i; in do_register_framebuffer()
1652 atomic_set(&fb_info->count, 1); in do_register_framebuffer()
1653 mutex_init(&fb_info->lock); in do_register_framebuffer()
1654 mutex_init(&fb_info->mm_lock); in do_register_framebuffer()
1656 fb_info->dev = device_create(fb_class, fb_info->device, in do_register_framebuffer()
1658 if (IS_ERR(fb_info->dev)) { in do_register_framebuffer()
1660 …ERN_WARNING "Unable to create device for framebuffer %d; errno = %ld\n", i, PTR_ERR(fb_info->dev)); in do_register_framebuffer()
1661 fb_info->dev = NULL; in do_register_framebuffer()
1663 fb_init_device(fb_info); in do_register_framebuffer()
1665 if (fb_info->pixmap.addr == NULL) { in do_register_framebuffer()
1666 fb_info->pixmap.addr = kmalloc(FBPIXMAPSIZE, GFP_KERNEL); in do_register_framebuffer()
1667 if (fb_info->pixmap.addr) { in do_register_framebuffer()
1668 fb_info->pixmap.size = FBPIXMAPSIZE; in do_register_framebuffer()
1669 fb_info->pixmap.buf_align = 1; in do_register_framebuffer()
1670 fb_info->pixmap.scan_align = 1; in do_register_framebuffer()
1671 fb_info->pixmap.access_align = 32; in do_register_framebuffer()
1672 fb_info->pixmap.flags = FB_PIXMAP_DEFAULT; in do_register_framebuffer()
1675 fb_info->pixmap.offset = 0; in do_register_framebuffer()
1677 if (!fb_info->pixmap.blit_x) in do_register_framebuffer()
1678 fb_info->pixmap.blit_x = ~(u32)0; in do_register_framebuffer()
1680 if (!fb_info->pixmap.blit_y) in do_register_framebuffer()
1681 fb_info->pixmap.blit_y = ~(u32)0; in do_register_framebuffer()
1683 if (!fb_info->modelist.prev || !fb_info->modelist.next) in do_register_framebuffer()
1684 INIT_LIST_HEAD(&fb_info->modelist); in do_register_framebuffer()
1686 if (fb_info->skip_vt_switch) in do_register_framebuffer()
1687 pm_vt_switch_required(fb_info->dev, false); in do_register_framebuffer()
1689 pm_vt_switch_required(fb_info->dev, true); in do_register_framebuffer()
1691 fb_var_to_videomode(&mode, &fb_info->var); in do_register_framebuffer()
1692 fb_add_videomode(&mode, &fb_info->modelist); in do_register_framebuffer()
1693 registered_fb[i] = fb_info; in do_register_framebuffer()
1695 event.info = fb_info; in do_register_framebuffer()
1697 if (!lock_fb_info(fb_info)) { in do_register_framebuffer()
1703 unlock_fb_info(fb_info); in do_register_framebuffer()
1708 static int unbind_console(struct fb_info *fb_info) in unbind_console() argument
1712 int i = fb_info->node; in unbind_console()
1714 if (i < 0 || i >= FB_MAX || registered_fb[i] != fb_info) in unbind_console()
1718 if (!lock_fb_info(fb_info)) { in unbind_console()
1723 event.info = fb_info; in unbind_console()
1725 unlock_fb_info(fb_info); in unbind_console()
1731 static int __unlink_framebuffer(struct fb_info *fb_info);
1733 static int do_unregister_framebuffer(struct fb_info *fb_info) in do_unregister_framebuffer() argument
1738 ret = unbind_console(fb_info); in do_unregister_framebuffer()
1743 pm_vt_switch_unregister(fb_info->dev); in do_unregister_framebuffer()
1745 __unlink_framebuffer(fb_info); in do_unregister_framebuffer()
1746 if (fb_info->pixmap.addr && in do_unregister_framebuffer()
1747 (fb_info->pixmap.flags & FB_PIXMAP_DEFAULT)) in do_unregister_framebuffer()
1748 kfree(fb_info->pixmap.addr); in do_unregister_framebuffer()
1749 fb_destroy_modelist(&fb_info->modelist); in do_unregister_framebuffer()
1750 registered_fb[fb_info->node] = NULL; in do_unregister_framebuffer()
1752 fb_cleanup_device(fb_info); in do_unregister_framebuffer()
1753 event.info = fb_info; in do_unregister_framebuffer()
1759 put_fb_info(fb_info); in do_unregister_framebuffer()
1763 static int __unlink_framebuffer(struct fb_info *fb_info) in __unlink_framebuffer() argument
1767 i = fb_info->node; in __unlink_framebuffer()
1768 if (i < 0 || i >= FB_MAX || registered_fb[i] != fb_info) in __unlink_framebuffer()
1771 if (fb_info->dev) { in __unlink_framebuffer()
1773 fb_info->dev = NULL; in __unlink_framebuffer()
1779 int unlink_framebuffer(struct fb_info *fb_info) in unlink_framebuffer() argument
1783 ret = __unlink_framebuffer(fb_info); in unlink_framebuffer()
1787 unbind_console(fb_info); in unlink_framebuffer()
1816 register_framebuffer(struct fb_info *fb_info) in register_framebuffer() argument
1821 ret = do_register_framebuffer(fb_info); in register_framebuffer()
1845 unregister_framebuffer(struct fb_info *fb_info) in unregister_framebuffer() argument
1850 ret = do_unregister_framebuffer(fb_info); in unregister_framebuffer()
1866 void fb_set_suspend(struct fb_info *info, int state) in fb_set_suspend()
1923 int fb_new_modelist(struct fb_info *info) in fb_new_modelist()