fbdev: Move core fbdev symbols to a separate Kconfig file

The drivers/video/fbdev/Kconfig defines both symbols for fbdev drivers and
core fbdev symbols, that can be enabled independently of the fbdev drivers.

Split the Kconfig in two, one that only has the symbols for fbdev drivers
and another one that contains the fbdev core symbols.

Suggested-by: Arnd Bergmann <arnd@arndb.de>
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-3-javierm@redhat.com
This commit is contained in:
Javier Martinez Canillas 2023-07-19 10:15:36 +02:00
parent c0191dd649
commit df7915246e
No known key found for this signature in database
GPG Key ID: C751E590D63F3D69
2 changed files with 188 additions and 185 deletions

View File

@ -3,9 +3,6 @@
# fbdev configuration
#
config FB_NOTIFY
bool
menuconfig FB
tristate "Support for frame buffer devices"
select FB_NOTIFY
@ -42,153 +39,6 @@ menuconfig FB
(e.g. an accelerated X server) and that are not frame buffer
device-aware may cause unexpected results. If unsure, say N.
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
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
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
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
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
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
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
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
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
config FB_DEFERRED_IO
bool
depends on FB
config FB_IO_HELPERS
bool
depends on FB
select FB_CFB_COPYAREA
select FB_CFB_FILLRECT
select FB_CFB_IMAGEBLIT
config FB_SYS_HELPERS
bool
depends on FB
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
select FB_DEFERRED_IO
select FB_SYS_HELPERS
config FB_HECUBA
tristate
depends on FB
@ -205,41 +55,6 @@ config FB_MACMODES
tristate
depends on FB
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.
comment "Frame buffer hardware drivers"
depends on FB
config FB_GRVGA
tristate "Aeroflex Gaisler framebuffer support"
depends on FB && SPARC
@ -2223,3 +2038,5 @@ config FB_SM712
source "drivers/video/fbdev/omap/Kconfig"
source "drivers/video/fbdev/omap2/Kconfig"
source "drivers/video/fbdev/mmp/Kconfig"
source "drivers/video/fbdev/core/Kconfig"

View File

@ -0,0 +1,186 @@
# SPDX-License-Identifier: GPL-2.0-only
#
# fbdev core configuration
#
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
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
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
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
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
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
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
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
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
config FB_DEFERRED_IO
bool
depends on FB
config FB_IO_HELPERS
bool
depends on FB
select FB_CFB_COPYAREA
select FB_CFB_FILLRECT
select FB_CFB_IMAGEBLIT
config FB_SYS_HELPERS
bool
depends on FB
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
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.