mirror of
https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux
synced 2025-09-26 02:20:25 +10:00
As a result of the recent Kconfig reworks, the default settings for the framebuffer interfaces changed in unexpected ways: Configurations that leave CONFIG_FB disabled but use DRM now get DRM_FBDEV_EMULATION by default. This also turns on the deprecated /dev/fb device nodes for machines that don't actually want it. In turn, configurations that previously had DRM_FBDEV_EMULATION enabled now only get the /dev/fb front-end but not the more useful framebuffer console, which is not selected any more. We had previously decided that any combination of the three frontends (FB_DEVICE, FRAMEBUFFER_CONSOLE and LOGO) should be selectable, but the new default settings mean that a lot of defconfig files would have to get adapted. Change the defaults back to what they were in Linux 6.5: - Leave DRM_FBDEV_EMULATION turned off unless CONFIG_FB is enabled. Previously this was a hard dependency but now the two are independent. However, configurations that enable CONFIG_FB probably also want to keep the emulation for DRM, while those without FB presumably did that intentionally in the past. - Leave FB_DEVICE turned off for FB=n. Following the same logic, the deprecated option should not automatically get enabled here, most users that had FB turned off in the past do not want it, even if they want the console - Turn the FRAMEBUFFER_CONSOLE option on if DRM_FBDEV_EMULATION is set to avoid having to change defconfig files that relied on it being selected unconditionally in the past. This also makes sense since both LOGO and FB_DEVICE are now disabled by default for builds without CONFIG_FB, but DRM_FBDEV_EMULATION would make no sense if all three are disabled. Fixes:a5ae331edb
("drm: Drop select FRAMEBUFFER_CONSOLE for DRM_FBDEV_EMULATION") Fixes:701d2054fa
("fbdev: Make support for userspace interfaces configurable") Reported-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Javier Martinez Canillas <javierm@redhat.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Thomas Zimmermann <tzimmermann@suse.de> Signed-off-by: Javier Martinez Canillas <javierm@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230911205338.2385278-1-arnd@kernel.org
199 lines
5.4 KiB
Plaintext
199 lines
5.4 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 FB
|
|
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_DMAMEM_HELPERS
|
|
bool
|
|
depends on FB_CORE
|
|
select FB_SYS_COPYAREA
|
|
select FB_SYS_FILLRECT
|
|
select FB_SYS_FOPS
|
|
select FB_SYS_IMAGEBLIT
|
|
|
|
config FB_IOMEM_HELPERS
|
|
bool
|
|
depends on FB_CORE
|
|
select FB_CFB_COPYAREA
|
|
select FB_CFB_FILLRECT
|
|
select FB_CFB_IMAGEBLIT
|
|
|
|
config FB_SYSMEM_HELPERS
|
|
bool
|
|
depends on FB_CORE
|
|
select FB_SYS_COPYAREA
|
|
select FB_SYS_FILLRECT
|
|
select FB_SYS_FOPS
|
|
select FB_SYS_IMAGEBLIT
|
|
|
|
config FB_SYSMEM_HELPERS_DEFERRED
|
|
bool
|
|
depends on FB_CORE
|
|
select FB_DEFERRED_IO
|
|
select FB_SYSMEM_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.
|