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