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 | |