mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-03-17 20:54:10 +00:00
fbdev: Split frame buffer support in FB and FB_CORE symbols
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
This commit is contained in:
parent
df7915246e
commit
55bffc8170
7 changed files with 37 additions and 25 deletions
|
@ -259,7 +259,7 @@ drivers-$(CONFIG_PCI) += arch/x86/pci/
|
||||||
# suspend and hibernation support
|
# suspend and hibernation support
|
||||||
drivers-$(CONFIG_PM) += arch/x86/power/
|
drivers-$(CONFIG_PM) += arch/x86/power/
|
||||||
|
|
||||||
drivers-$(CONFIG_FB) += arch/x86/video/
|
drivers-$(CONFIG_FB_CORE) += arch/x86/video/
|
||||||
|
|
||||||
####
|
####
|
||||||
# boot loader support. Several targets are kept for legacy purposes
|
# boot loader support. Several targets are kept for legacy purposes
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
obj-$(CONFIG_FB) += fbdev.o
|
obj-$(CONFIG_FB_CORE) += fbdev.o
|
||||||
|
|
|
@ -79,8 +79,8 @@ static const char *const backlight_scale_types[] = {
|
||||||
[BACKLIGHT_SCALE_NON_LINEAR] = "non-linear",
|
[BACKLIGHT_SCALE_NON_LINEAR] = "non-linear",
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(CONFIG_FB) || (defined(CONFIG_FB_MODULE) && \
|
#if defined(CONFIG_FB_CORE) || (defined(CONFIG_FB_CORE_MODULE) && \
|
||||||
defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE))
|
defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE))
|
||||||
/*
|
/*
|
||||||
* fb_notifier_callback
|
* fb_notifier_callback
|
||||||
*
|
*
|
||||||
|
@ -155,7 +155,7 @@ static inline int backlight_register_fb(struct backlight_device *bd)
|
||||||
static inline void backlight_unregister_fb(struct backlight_device *bd)
|
static inline void backlight_unregister_fb(struct backlight_device *bd)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_FB */
|
#endif /* CONFIG_FB_CORE */
|
||||||
|
|
||||||
static void backlight_generate_event(struct backlight_device *bd,
|
static void backlight_generate_event(struct backlight_device *bd,
|
||||||
enum backlight_update_reason reason)
|
enum backlight_update_reason reason)
|
||||||
|
|
|
@ -72,7 +72,7 @@ config DUMMY_CONSOLE_ROWS
|
||||||
|
|
||||||
config FRAMEBUFFER_CONSOLE
|
config FRAMEBUFFER_CONSOLE
|
||||||
bool "Framebuffer Console support"
|
bool "Framebuffer Console support"
|
||||||
depends on FB && !UML
|
depends on FB_CORE && !UML
|
||||||
select VT_HW_CONSOLE_BINDING
|
select VT_HW_CONSOLE_BINDING
|
||||||
select CRC32
|
select CRC32
|
||||||
select FONT_SUPPORT
|
select FONT_SUPPORT
|
||||||
|
|
|
@ -4,9 +4,9 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
menuconfig FB
|
menuconfig FB
|
||||||
tristate "Support for frame buffer devices"
|
tristate "Support for frame buffer device drivers"
|
||||||
|
select FB_CORE
|
||||||
select FB_NOTIFY
|
select FB_NOTIFY
|
||||||
select VIDEO_CMDLINE
|
|
||||||
help
|
help
|
||||||
The frame buffer device provides an abstraction for the graphics
|
The frame buffer device provides an abstraction for the graphics
|
||||||
hardware. It represents the frame buffer of some video hardware and
|
hardware. It represents the frame buffer of some video hardware and
|
||||||
|
@ -30,6 +30,12 @@ menuconfig FB
|
||||||
<http://www.munted.org.uk/programming/Framebuffer-HOWTO-1.3.html> for more
|
<http://www.munted.org.uk/programming/Framebuffer-HOWTO-1.3.html> for more
|
||||||
information.
|
information.
|
||||||
|
|
||||||
|
This enables support for native frame buffer device (fbdev) drivers.
|
||||||
|
|
||||||
|
The DRM subsystem provides support for emulated frame buffer devices
|
||||||
|
on top of KMS drivers, but this option allows legacy fbdev drivers to
|
||||||
|
be enabled as well.
|
||||||
|
|
||||||
Say Y here and to the driver for your graphics board below if you
|
Say Y here and to the driver for your graphics board below if you
|
||||||
are compiling a kernel for a non-x86 architecture.
|
are compiling a kernel for a non-x86 architecture.
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,10 @@
|
||||||
# fbdev core configuration
|
# fbdev core configuration
|
||||||
#
|
#
|
||||||
|
|
||||||
|
config FB_CORE
|
||||||
|
select VIDEO_CMDLINE
|
||||||
|
tristate
|
||||||
|
|
||||||
config FB_NOTIFY
|
config FB_NOTIFY
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
@ -23,7 +27,7 @@ config FIRMWARE_EDID
|
||||||
|
|
||||||
config FB_DEVICE
|
config FB_DEVICE
|
||||||
bool "Provide legacy /dev/fb* device"
|
bool "Provide legacy /dev/fb* device"
|
||||||
depends on FB
|
depends on FB_CORE
|
||||||
default y
|
default y
|
||||||
help
|
help
|
||||||
Say Y here if you want the legacy /dev/fb* device file and
|
Say Y here if you want the legacy /dev/fb* device file and
|
||||||
|
@ -39,7 +43,7 @@ config FB_DDC
|
||||||
|
|
||||||
config FB_CFB_FILLRECT
|
config FB_CFB_FILLRECT
|
||||||
tristate
|
tristate
|
||||||
depends on FB
|
depends on FB_CORE
|
||||||
help
|
help
|
||||||
Include the cfb_fillrect function for generic software rectangle
|
Include the cfb_fillrect function for generic software rectangle
|
||||||
filling. This is used by drivers that don't provide their own
|
filling. This is used by drivers that don't provide their own
|
||||||
|
@ -47,7 +51,7 @@ config FB_CFB_FILLRECT
|
||||||
|
|
||||||
config FB_CFB_COPYAREA
|
config FB_CFB_COPYAREA
|
||||||
tristate
|
tristate
|
||||||
depends on FB
|
depends on FB_CORE
|
||||||
help
|
help
|
||||||
Include the cfb_copyarea function for generic software area copying.
|
Include the cfb_copyarea function for generic software area copying.
|
||||||
This is used by drivers that don't provide their own (accelerated)
|
This is used by drivers that don't provide their own (accelerated)
|
||||||
|
@ -55,7 +59,7 @@ config FB_CFB_COPYAREA
|
||||||
|
|
||||||
config FB_CFB_IMAGEBLIT
|
config FB_CFB_IMAGEBLIT
|
||||||
tristate
|
tristate
|
||||||
depends on FB
|
depends on FB_CORE
|
||||||
help
|
help
|
||||||
Include the cfb_imageblit function for generic software image
|
Include the cfb_imageblit function for generic software image
|
||||||
blitting. This is used by drivers that don't provide their own
|
blitting. This is used by drivers that don't provide their own
|
||||||
|
@ -63,7 +67,7 @@ config FB_CFB_IMAGEBLIT
|
||||||
|
|
||||||
config FB_CFB_REV_PIXELS_IN_BYTE
|
config FB_CFB_REV_PIXELS_IN_BYTE
|
||||||
bool
|
bool
|
||||||
depends on FB
|
depends on FB_CORE
|
||||||
help
|
help
|
||||||
Allow generic frame-buffer functions to work on displays with 1, 2
|
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
|
and 4 bits per pixel depths which has opposite order of pixels in
|
||||||
|
@ -71,7 +75,7 @@ config FB_CFB_REV_PIXELS_IN_BYTE
|
||||||
|
|
||||||
config FB_SYS_FILLRECT
|
config FB_SYS_FILLRECT
|
||||||
tristate
|
tristate
|
||||||
depends on FB
|
depends on FB_CORE
|
||||||
help
|
help
|
||||||
Include the sys_fillrect function for generic software rectangle
|
Include the sys_fillrect function for generic software rectangle
|
||||||
filling. This is used by drivers that don't provide their own
|
filling. This is used by drivers that don't provide their own
|
||||||
|
@ -79,7 +83,7 @@ config FB_SYS_FILLRECT
|
||||||
|
|
||||||
config FB_SYS_COPYAREA
|
config FB_SYS_COPYAREA
|
||||||
tristate
|
tristate
|
||||||
depends on FB
|
depends on FB_CORE
|
||||||
help
|
help
|
||||||
Include the sys_copyarea function for generic software area copying.
|
Include the sys_copyarea function for generic software area copying.
|
||||||
This is used by drivers that don't provide their own (accelerated)
|
This is used by drivers that don't provide their own (accelerated)
|
||||||
|
@ -87,7 +91,7 @@ config FB_SYS_COPYAREA
|
||||||
|
|
||||||
config FB_SYS_IMAGEBLIT
|
config FB_SYS_IMAGEBLIT
|
||||||
tristate
|
tristate
|
||||||
depends on FB
|
depends on FB_CORE
|
||||||
help
|
help
|
||||||
Include the sys_imageblit function for generic software image
|
Include the sys_imageblit function for generic software image
|
||||||
blitting. This is used by drivers that don't provide their own
|
blitting. This is used by drivers that don't provide their own
|
||||||
|
@ -126,22 +130,22 @@ endchoice
|
||||||
|
|
||||||
config FB_SYS_FOPS
|
config FB_SYS_FOPS
|
||||||
tristate
|
tristate
|
||||||
depends on FB
|
depends on FB_CORE
|
||||||
|
|
||||||
config FB_DEFERRED_IO
|
config FB_DEFERRED_IO
|
||||||
bool
|
bool
|
||||||
depends on FB
|
depends on FB_CORE
|
||||||
|
|
||||||
config FB_IO_HELPERS
|
config FB_IO_HELPERS
|
||||||
bool
|
bool
|
||||||
depends on FB
|
depends on FB_CORE
|
||||||
select FB_CFB_COPYAREA
|
select FB_CFB_COPYAREA
|
||||||
select FB_CFB_FILLRECT
|
select FB_CFB_FILLRECT
|
||||||
select FB_CFB_IMAGEBLIT
|
select FB_CFB_IMAGEBLIT
|
||||||
|
|
||||||
config FB_SYS_HELPERS
|
config FB_SYS_HELPERS
|
||||||
bool
|
bool
|
||||||
depends on FB
|
depends on FB_CORE
|
||||||
select FB_SYS_COPYAREA
|
select FB_SYS_COPYAREA
|
||||||
select FB_SYS_FILLRECT
|
select FB_SYS_FILLRECT
|
||||||
select FB_SYS_FOPS
|
select FB_SYS_FOPS
|
||||||
|
@ -149,7 +153,7 @@ config FB_SYS_HELPERS
|
||||||
|
|
||||||
config FB_SYS_HELPERS_DEFERRED
|
config FB_SYS_HELPERS_DEFERRED
|
||||||
bool
|
bool
|
||||||
depends on FB
|
depends on FB_CORE
|
||||||
select FB_DEFERRED_IO
|
select FB_DEFERRED_IO
|
||||||
select FB_SYS_HELPERS
|
select FB_SYS_HELPERS
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
obj-$(CONFIG_FB_NOTIFY) += fb_notify.o
|
obj-$(CONFIG_FB_NOTIFY) += fb_notify.o
|
||||||
obj-$(CONFIG_FB) += fb.o
|
obj-$(CONFIG_FB_CORE) += fb.o
|
||||||
fb-y := fb_backlight.o \
|
fb-y := fb_info.o \
|
||||||
fb_info.o \
|
fbmem.o fbcmap.o \
|
||||||
fbmem.o fbmon.o fbcmap.o \
|
|
||||||
modedb.o fbcvt.o fb_cmdline.o fb_io_fops.o
|
modedb.o fbcvt.o fb_cmdline.o fb_io_fops.o
|
||||||
|
ifdef CONFIG_FB
|
||||||
|
fb-y += fb_backlight.o fbmon.o
|
||||||
|
endif
|
||||||
fb-$(CONFIG_FB_DEFERRED_IO) += fb_defio.o
|
fb-$(CONFIG_FB_DEFERRED_IO) += fb_defio.o
|
||||||
fb-$(CONFIG_FB_DEVICE) += fb_chrdev.o \
|
fb-$(CONFIG_FB_DEVICE) += fb_chrdev.o \
|
||||||
fb_procfs.o \
|
fb_procfs.o \
|
||||||
|
|
Loading…
Add table
Reference in a new issue