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