mirror of
https://github.com/torvalds/linux.git
synced 2024-12-14 15:13:52 +00:00
55bffc8170
Currently the CONFIG_FB option has to be enabled even if no legacy fbdev drivers are needed (e.g: only to have support for framebuffer consoles). The DRM subsystem has a fbdev emulation layer, but depends on CONFIG_FB and so it can only be enabled if that dependency is enabled as well. That means fbdev drivers have to be explicitly disabled if users want to enable CONFIG_FB, only to use fbcon and/or the DRM fbdev emulation layer. This patch introduces a non-visible CONFIG_FB_CORE symbol that could be enabled just to have core support needed for CONFIG_DRM_FBDEV_EMULATION, allowing CONFIG_FB to be disabled (and automatically disabling all the fbdev drivers). Nothing from fb_backlight.o and fbmon.o is used by the DRM fbdev emulation layer so these two objects can be compiled out when CONFIG_FB is disabled. Signed-off-by: Javier Martinez Canillas <javierm@redhat.com> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Tested-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Helge Deller <deller@gmx.de> Link: https://patchwork.freedesktop.org/patch/msgid/20230719081544.741051-4-javierm@redhat.com
191 lines
5.3 KiB
Plaintext
191 lines
5.3 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# fbdev core configuration
|
|
#
|
|
|
|
config FB_CORE
|
|
select VIDEO_CMDLINE
|
|
tristate
|
|
|
|
config FB_NOTIFY
|
|
bool
|
|
|
|
config FIRMWARE_EDID
|
|
bool "Enable firmware EDID"
|
|
depends on FB
|
|
help
|
|
This enables access to the EDID transferred from the firmware.
|
|
On the i386, this is from the Video BIOS. Enable this if DDC/I2C
|
|
transfers do not work for your driver and if you are using
|
|
nvidiafb, i810fb or savagefb.
|
|
|
|
In general, choosing Y for this option is safe. If you
|
|
experience extremely long delays while booting before you get
|
|
something on your display, try setting this to N. Matrox cards in
|
|
combination with certain motherboards and monitors are known to
|
|
suffer from this problem.
|
|
|
|
config FB_DEVICE
|
|
bool "Provide legacy /dev/fb* device"
|
|
depends on FB_CORE
|
|
default y
|
|
help
|
|
Say Y here if you want the legacy /dev/fb* device file and
|
|
interfaces within sysfs anc procfs. It is only required if you
|
|
have userspace programs that depend on fbdev for graphics output.
|
|
This does not affect the framebuffer console. If unsure, say N.
|
|
|
|
config FB_DDC
|
|
tristate
|
|
depends on FB
|
|
select I2C_ALGOBIT
|
|
select I2C
|
|
|
|
config FB_CFB_FILLRECT
|
|
tristate
|
|
depends on FB_CORE
|
|
help
|
|
Include the cfb_fillrect function for generic software rectangle
|
|
filling. This is used by drivers that don't provide their own
|
|
(accelerated) version.
|
|
|
|
config FB_CFB_COPYAREA
|
|
tristate
|
|
depends on FB_CORE
|
|
help
|
|
Include the cfb_copyarea function for generic software area copying.
|
|
This is used by drivers that don't provide their own (accelerated)
|
|
version.
|
|
|
|
config FB_CFB_IMAGEBLIT
|
|
tristate
|
|
depends on FB_CORE
|
|
help
|
|
Include the cfb_imageblit function for generic software image
|
|
blitting. This is used by drivers that don't provide their own
|
|
(accelerated) version.
|
|
|
|
config FB_CFB_REV_PIXELS_IN_BYTE
|
|
bool
|
|
depends on FB_CORE
|
|
help
|
|
Allow generic frame-buffer functions to work on displays with 1, 2
|
|
and 4 bits per pixel depths which has opposite order of pixels in
|
|
byte order to bytes in long order.
|
|
|
|
config FB_SYS_FILLRECT
|
|
tristate
|
|
depends on FB_CORE
|
|
help
|
|
Include the sys_fillrect function for generic software rectangle
|
|
filling. This is used by drivers that don't provide their own
|
|
(accelerated) version and the framebuffer is in system RAM.
|
|
|
|
config FB_SYS_COPYAREA
|
|
tristate
|
|
depends on FB_CORE
|
|
help
|
|
Include the sys_copyarea function for generic software area copying.
|
|
This is used by drivers that don't provide their own (accelerated)
|
|
version and the framebuffer is in system RAM.
|
|
|
|
config FB_SYS_IMAGEBLIT
|
|
tristate
|
|
depends on FB_CORE
|
|
help
|
|
Include the sys_imageblit function for generic software image
|
|
blitting. This is used by drivers that don't provide their own
|
|
(accelerated) version and the framebuffer is in system RAM.
|
|
|
|
config FB_PROVIDE_GET_FB_UNMAPPED_AREA
|
|
bool
|
|
depends on FB
|
|
help
|
|
Allow generic frame-buffer to provide get_fb_unmapped_area
|
|
function to provide shareable character device support on nommu.
|
|
|
|
menuconfig FB_FOREIGN_ENDIAN
|
|
bool "Framebuffer foreign endianness support"
|
|
depends on FB
|
|
help
|
|
This menu will let you enable support for the framebuffers with
|
|
non-native endianness (e.g. Little-Endian framebuffer on a
|
|
Big-Endian machine). Most probably you don't have such hardware,
|
|
so it's safe to say "n" here.
|
|
|
|
choice
|
|
prompt "Choice endianness support"
|
|
depends on FB_FOREIGN_ENDIAN
|
|
|
|
config FB_BOTH_ENDIAN
|
|
bool "Support for Big- and Little-Endian framebuffers"
|
|
|
|
config FB_BIG_ENDIAN
|
|
bool "Support for Big-Endian framebuffers only"
|
|
|
|
config FB_LITTLE_ENDIAN
|
|
bool "Support for Little-Endian framebuffers only"
|
|
|
|
endchoice
|
|
|
|
config FB_SYS_FOPS
|
|
tristate
|
|
depends on FB_CORE
|
|
|
|
config FB_DEFERRED_IO
|
|
bool
|
|
depends on FB_CORE
|
|
|
|
config FB_IO_HELPERS
|
|
bool
|
|
depends on FB_CORE
|
|
select FB_CFB_COPYAREA
|
|
select FB_CFB_FILLRECT
|
|
select FB_CFB_IMAGEBLIT
|
|
|
|
config FB_SYS_HELPERS
|
|
bool
|
|
depends on FB_CORE
|
|
select FB_SYS_COPYAREA
|
|
select FB_SYS_FILLRECT
|
|
select FB_SYS_FOPS
|
|
select FB_SYS_IMAGEBLIT
|
|
|
|
config FB_SYS_HELPERS_DEFERRED
|
|
bool
|
|
depends on FB_CORE
|
|
select FB_DEFERRED_IO
|
|
select FB_SYS_HELPERS
|
|
|
|
config FB_BACKLIGHT
|
|
tristate
|
|
depends on FB
|
|
select BACKLIGHT_CLASS_DEVICE
|
|
|
|
config FB_MODE_HELPERS
|
|
bool "Enable Video Mode Handling Helpers"
|
|
depends on FB
|
|
help
|
|
This enables functions for handling video modes using the
|
|
Generalized Timing Formula and the EDID parser. A few drivers rely
|
|
on this feature such as the radeonfb, rivafb, and the i810fb. If
|
|
your driver does not take advantage of this feature, choosing Y will
|
|
just increase the kernel size by about 5K.
|
|
|
|
config FB_TILEBLITTING
|
|
bool "Enable Tile Blitting Support"
|
|
depends on FB
|
|
help
|
|
This enables tile blitting. Tile blitting is a drawing technique
|
|
where the screen is divided into rectangular sections (tiles), whereas
|
|
the standard blitting divides the screen into pixels. Because the
|
|
default drawing element is a tile, drawing functions will be passed
|
|
parameters in terms of number of tiles instead of number of pixels.
|
|
For example, to draw a single character, instead of using bitmaps,
|
|
an index to an array of bitmaps will be used. To clear or move a
|
|
rectangular section of a screen, the rectangle will be described in
|
|
terms of number of tiles in the x- and y-axis.
|
|
|
|
This is particularly important to one driver, matroxfb. If
|
|
unsure, say N.
|