1 /* SPDX-License-Identifier: GPL-2.0 */ 2 3 #ifndef _FB_INTERNAL_H 4 #define _FB_INTERNAL_H 5 6 #include <linux/device.h> 7 #include <linux/fb.h> 8 #include <linux/mutex.h> 9 10 /* fb_devfs.c */ 11 #if defined(CONFIG_FB_DEVICE) 12 int fb_register_chrdev(void); 13 void fb_unregister_chrdev(void); 14 #else 15 static inline int fb_register_chrdev(void) 16 { 17 return 0; 18 } 19 static inline void fb_unregister_chrdev(void) 20 { } 21 #endif 22 23 /* fb_logo.c */ 24 #if defined(CONFIG_LOGO) 25 extern bool fb_center_logo; 26 extern int fb_logo_count; 27 int fb_prepare_logo(struct fb_info *fb_info, int rotate); 28 int fb_show_logo(struct fb_info *fb_info, int rotate); 29 #else 30 static inline int fb_prepare_logo(struct fb_info *info, int rotate) 31 { 32 return 0; 33 } 34 static inline int fb_show_logo(struct fb_info *info, int rotate) 35 { 36 return 0; 37 } 38 #endif /* CONFIG_LOGO */ 39 40 /* fbmem.c */ 41 extern struct class *fb_class; 42 extern struct mutex registration_lock; 43 extern struct fb_info *registered_fb[FB_MAX]; 44 extern int num_registered_fb; 45 struct fb_info *get_fb_info(unsigned int idx); 46 void put_fb_info(struct fb_info *fb_info); 47 48 /* fb_procfs.c */ 49 #if defined(CONFIG_FB_DEVICE) 50 int fb_init_procfs(void); 51 void fb_cleanup_procfs(void); 52 #else 53 static inline int fb_init_procfs(void) 54 { 55 return 0; 56 } 57 static inline void fb_cleanup_procfs(void) 58 { } 59 #endif 60 61 /* fbsysfs.c */ 62 #if defined(CONFIG_FB_DEVICE) 63 int fb_device_create(struct fb_info *fb_info); 64 void fb_device_destroy(struct fb_info *fb_info); 65 #else 66 static inline int fb_device_create(struct fb_info *fb_info) 67 { 68 /* 69 * Acquire a reference on the parent device to avoid 70 * unplug operations behind our back. With the fbdev 71 * device enabled, this is performed within register_device(). 72 */ 73 get_device(fb_info->device); 74 75 return 0; 76 } 77 static inline void fb_device_destroy(struct fb_info *fb_info) 78 { 79 /* Undo the get_device() from fb_device_create() */ 80 put_device(fb_info->device); 81 } 82 #endif 83 84 #endif 85