| /* SPDX-License-Identifier: GPL-2.0 */ | |
| #ifndef _FB_INTERNAL_H | |
| #define _FB_INTERNAL_H | |
| #include <linux/device.h> | |
| #include <linux/fb.h> | |
| #include <linux/mutex.h> | |
| /* fb_devfs.c */ | |
| #if defined(CONFIG_FB_DEVICE) | |
| int fb_register_chrdev(void); | |
| void fb_unregister_chrdev(void); | |
| #else | |
| static inline int fb_register_chrdev(void) | |
| { | |
| return 0; | |
| } | |
| static inline void fb_unregister_chrdev(void) | |
| { } | |
| #endif | |
| /* fb_logo.c */ | |
| #if defined(CONFIG_LOGO) | |
| extern bool fb_center_logo; | |
| extern int fb_logo_count; | |
| int fb_prepare_logo(struct fb_info *fb_info, int rotate); | |
| int fb_show_logo(struct fb_info *fb_info, int rotate); | |
| #else | |
| static inline int fb_prepare_logo(struct fb_info *info, int rotate) | |
| { | |
| return 0; | |
| } | |
| static inline int fb_show_logo(struct fb_info *info, int rotate) | |
| { | |
| return 0; | |
| } | |
| #endif /* CONFIG_LOGO */ | |
| /* fbmem.c */ | |
| extern struct class *fb_class; | |
| extern struct mutex registration_lock; | |
| extern struct fb_info *registered_fb[FB_MAX]; | |
| extern int num_registered_fb; | |
| struct fb_info *get_fb_info(unsigned int idx); | |
| void put_fb_info(struct fb_info *fb_info); | |
| int fb_blank_from_user(struct fb_info *info, int blank); | |
| /* fb_procfs.c */ | |
| #if defined(CONFIG_FB_DEVICE) | |
| int fb_init_procfs(void); | |
| void fb_cleanup_procfs(void); | |
| #else | |
| static inline int fb_init_procfs(void) | |
| { | |
| return 0; | |
| } | |
| static inline void fb_cleanup_procfs(void) | |
| { } | |
| #endif | |
| /* fbsysfs.c */ | |
| #if defined(CONFIG_FB_DEVICE) | |
| int fb_device_create(struct fb_info *fb_info); | |
| void fb_device_destroy(struct fb_info *fb_info); | |
| #else | |
| static inline int fb_device_create(struct fb_info *fb_info) | |
| { | |
| /* | |
| * Acquire a reference on the parent device to avoid | |
| * unplug operations behind our back. With the fbdev | |
| * device enabled, this is performed within register_device(). | |
| */ | |
| get_device(fb_info->device); | |
| return 0; | |
| } | |
| static inline void fb_device_destroy(struct fb_info *fb_info) | |
| { | |
| /* Undo the get_device() from fb_device_create() */ | |
| put_device(fb_info->device); | |
| } | |
| #endif | |
| #endif |