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