baf7e852c75b60972ab24ddc10ac773b1a1dbf96
[platform/kernel/linux-starfive.git] / drivers / video / fbdev / core / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # fbdev core configuration
4 #
5
6 config FB_CORE
7         select VIDEO_CMDLINE
8         tristate
9
10 config FB_NOTIFY
11         bool
12
13 config FIRMWARE_EDID
14         bool "Enable firmware EDID"
15         depends on FB
16         help
17           This enables access to the EDID transferred from the firmware.
18           On the i386, this is from the Video BIOS. Enable this if DDC/I2C
19           transfers do not work for your driver and if you are using
20           nvidiafb, i810fb or savagefb.
21
22           In general, choosing Y for this option is safe.  If you
23           experience extremely long delays while booting before you get
24           something on your display, try setting this to N.  Matrox cards in
25           combination with certain motherboards and monitors are known to
26           suffer from this problem.
27
28 config FB_DEVICE
29         bool "Provide legacy /dev/fb* device"
30         depends on FB_CORE
31         default y
32         help
33           Say Y here if you want the legacy /dev/fb* device file and
34           interfaces within sysfs anc procfs. It is only required if you
35           have userspace programs that depend on fbdev for graphics output.
36           This does not affect the framebuffer console. If unsure, say N.
37
38 config FB_DDC
39         tristate
40         depends on FB
41         select I2C_ALGOBIT
42         select I2C
43
44 config FB_CFB_FILLRECT
45         tristate
46         depends on FB_CORE
47         help
48           Include the cfb_fillrect function for generic software rectangle
49           filling. This is used by drivers that don't provide their own
50           (accelerated) version.
51
52 config FB_CFB_COPYAREA
53         tristate
54         depends on FB_CORE
55         help
56           Include the cfb_copyarea function for generic software area copying.
57           This is used by drivers that don't provide their own (accelerated)
58           version.
59
60 config FB_CFB_IMAGEBLIT
61         tristate
62         depends on FB_CORE
63         help
64           Include the cfb_imageblit function for generic software image
65           blitting. This is used by drivers that don't provide their own
66           (accelerated) version.
67
68 config FB_CFB_REV_PIXELS_IN_BYTE
69         bool
70         depends on FB_CORE
71         help
72           Allow generic frame-buffer functions to work on displays with 1, 2
73           and 4 bits per pixel depths which has opposite order of pixels in
74           byte order to bytes in long order.
75
76 config FB_SYS_FILLRECT
77         tristate
78         depends on FB_CORE
79         help
80           Include the sys_fillrect function for generic software rectangle
81           filling. This is used by drivers that don't provide their own
82           (accelerated) version and the framebuffer is in system RAM.
83
84 config FB_SYS_COPYAREA
85         tristate
86         depends on FB_CORE
87         help
88           Include the sys_copyarea function for generic software area copying.
89           This is used by drivers that don't provide their own (accelerated)
90           version and the framebuffer is in system RAM.
91
92 config FB_SYS_IMAGEBLIT
93         tristate
94         depends on FB_CORE
95         help
96           Include the sys_imageblit function for generic software image
97           blitting. This is used by drivers that don't provide their own
98           (accelerated) version and the framebuffer is in system RAM.
99
100 config FB_PROVIDE_GET_FB_UNMAPPED_AREA
101         bool
102         depends on FB
103         help
104           Allow generic frame-buffer to provide get_fb_unmapped_area
105           function to provide shareable character device support on nommu.
106
107 menuconfig FB_FOREIGN_ENDIAN
108         bool "Framebuffer foreign endianness support"
109         depends on FB
110         help
111           This menu will let you enable support for the framebuffers with
112           non-native endianness (e.g. Little-Endian framebuffer on a
113           Big-Endian machine). Most probably you don't have such hardware,
114           so it's safe to say "n" here.
115
116 choice
117         prompt "Choice endianness support"
118         depends on FB_FOREIGN_ENDIAN
119
120 config FB_BOTH_ENDIAN
121         bool "Support for Big- and Little-Endian framebuffers"
122
123 config FB_BIG_ENDIAN
124         bool "Support for Big-Endian framebuffers only"
125
126 config FB_LITTLE_ENDIAN
127         bool "Support for Little-Endian framebuffers only"
128
129 endchoice
130
131 config FB_SYS_FOPS
132         tristate
133         depends on FB_CORE
134
135 config FB_DEFERRED_IO
136         bool
137         depends on FB_CORE
138
139 config FB_DMAMEM_HELPERS
140         bool
141         depends on FB_CORE
142         select FB_SYS_COPYAREA
143         select FB_SYS_FILLRECT
144         select FB_SYS_FOPS
145         select FB_SYS_IMAGEBLIT
146
147 config FB_IOMEM_HELPERS
148         bool
149         depends on FB_CORE
150         select FB_CFB_COPYAREA
151         select FB_CFB_FILLRECT
152         select FB_CFB_IMAGEBLIT
153
154 config FB_SYSMEM_HELPERS
155         bool
156         depends on FB_CORE
157         select FB_SYS_COPYAREA
158         select FB_SYS_FILLRECT
159         select FB_SYS_FOPS
160         select FB_SYS_IMAGEBLIT
161
162 config FB_SYSMEM_HELPERS_DEFERRED
163         bool
164         depends on FB_CORE
165         select FB_DEFERRED_IO
166         select FB_SYSMEM_HELPERS
167
168 config FB_BACKLIGHT
169         tristate
170         depends on FB
171         select BACKLIGHT_CLASS_DEVICE
172
173 config FB_MODE_HELPERS
174         bool "Enable Video Mode Handling Helpers"
175         depends on FB
176         help
177           This enables functions for handling video modes using the
178           Generalized Timing Formula and the EDID parser. A few drivers rely
179           on this feature such as the radeonfb, rivafb, and the i810fb. If
180           your driver does not take advantage of this feature, choosing Y will
181           just increase the kernel size by about 5K.
182
183 config FB_TILEBLITTING
184         bool "Enable Tile Blitting Support"
185         depends on FB
186         help
187           This enables tile blitting.  Tile blitting is a drawing technique
188           where the screen is divided into rectangular sections (tiles), whereas
189           the standard blitting divides the screen into pixels. Because the
190           default drawing element is a tile, drawing functions will be passed
191           parameters in terms of number of tiles instead of number of pixels.
192           For example, to draw a single character, instead of using bitmaps,
193           an index to an array of bitmaps will be used.  To clear or move a
194           rectangular section of a screen, the rectangle will be described in
195           terms of number of tiles in the x- and y-axis.
196
197           This is particularly important to one driver, matroxfb.  If
198           unsure, say N.