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