xref: /linux/drivers/video/fbdev/core/Kconfig (revision 4f9786035f9e519db41375818e1d0b5f20da2f10)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# fbdev core configuration
4#
5
6config FB_CORE
7	select VIDEO
8	tristate
9
10config FB_NOTIFY
11	bool
12
13config 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
28config FB_DEVICE
29	bool "Provide legacy /dev/fb* device"
30	depends on FB_CORE
31	default FB
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
38config FB_DDC
39	tristate
40	depends on FB
41	select I2C_ALGOBIT
42	select I2C
43
44config 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
52config 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
60config 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
68config FB_CFB_REV_PIXELS_IN_BYTE
69	bool
70	depends on FB_CORE
71	help
72	  Allow I/O memory 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
76config 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
84config 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
92config 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
100config FB_SYS_REV_PIXELS_IN_BYTE
101	bool
102	depends on FB_CORE
103	help
104	  Allow virtual memory frame-buffer functions to work on displays with 1, 2
105	  and 4 bits per pixel depths which has opposite order of pixels in
106	  byte order to bytes in long order.
107
108config FB_PROVIDE_GET_FB_UNMAPPED_AREA
109	bool
110	depends on FB
111	help
112	  Allow generic frame-buffer to provide get_fb_unmapped_area
113	  function to provide shareable character device support on nommu.
114
115menuconfig FB_FOREIGN_ENDIAN
116	bool "Framebuffer foreign endianness support"
117	depends on FB
118	help
119	  This menu will let you enable support for the framebuffers with
120	  non-native endianness (e.g. Little-Endian framebuffer on a
121	  Big-Endian machine). Most probably you don't have such hardware,
122	  so it's safe to say "n" here.
123
124choice
125	prompt "Choice endianness support"
126	depends on FB_FOREIGN_ENDIAN
127
128config FB_BOTH_ENDIAN
129	bool "Support for Big- and Little-Endian framebuffers"
130
131config FB_BIG_ENDIAN
132	bool "Support for Big-Endian framebuffers only"
133
134config FB_LITTLE_ENDIAN
135	bool "Support for Little-Endian framebuffers only"
136
137endchoice
138
139config FB_SYSMEM_FOPS
140	tristate
141	depends on FB_CORE
142
143config FB_DEFERRED_IO
144	bool
145	depends on FB_CORE
146
147config FB_DMAMEM_HELPERS
148	bool
149	depends on FB_CORE
150	select FB_SYS_COPYAREA
151	select FB_SYS_FILLRECT
152	select FB_SYS_IMAGEBLIT
153	select FB_SYSMEM_FOPS
154
155config FB_DMAMEM_HELPERS_DEFERRED
156	bool
157	depends on FB_CORE
158	select FB_DEFERRED_IO
159	select FB_DMAMEM_HELPERS
160
161config FB_IOMEM_FOPS
162	tristate
163	depends on FB_CORE
164
165config FB_IOMEM_HELPERS
166	bool
167	depends on FB_CORE
168	select FB_CFB_COPYAREA
169	select FB_CFB_FILLRECT
170	select FB_CFB_IMAGEBLIT
171	select FB_IOMEM_FOPS
172
173config FB_IOMEM_HELPERS_DEFERRED
174	bool
175	depends on FB_CORE
176	select FB_DEFERRED_IO
177	select FB_IOMEM_HELPERS
178
179config FB_SYSMEM_HELPERS
180	bool
181	depends on FB_CORE
182	select FB_SYS_COPYAREA
183	select FB_SYS_FILLRECT
184	select FB_SYS_IMAGEBLIT
185	select FB_SYSMEM_FOPS
186
187config FB_SYSMEM_HELPERS_DEFERRED
188	bool
189	depends on FB_CORE
190	select FB_DEFERRED_IO
191	select FB_SYSMEM_HELPERS
192
193config FB_BACKLIGHT
194	bool
195	depends on FB
196
197config FB_MODE_HELPERS
198	bool "Enable Video Mode Handling Helpers"
199	depends on FB
200	help
201	  This enables functions for handling video modes using the
202	  Generalized Timing Formula and the EDID parser. A few drivers rely
203	  on this feature such as the radeonfb, rivafb, and the i810fb. If
204	  your driver does not take advantage of this feature, choosing Y will
205	  just increase the kernel size by about 5K.
206
207config FB_TILEBLITTING
208	bool "Enable Tile Blitting Support"
209	depends on FB
210	help
211	  This enables tile blitting.  Tile blitting is a drawing technique
212	  where the screen is divided into rectangular sections (tiles), whereas
213	  the standard blitting divides the screen into pixels. Because the
214	  default drawing element is a tile, drawing functions will be passed
215	  parameters in terms of number of tiles instead of number of pixels.
216	  For example, to draw a single character, instead of using bitmaps,
217	  an index to an array of bitmaps will be used.  To clear or move a
218	  rectangular section of a screen, the rectangle will be described in
219	  terms of number of tiles in the x- and y-axis.
220
221	  This is particularly important to one driver, matroxfb.  If
222	  unsure, say N.
223