x86/fb changes for v3.12
Subsystems (4)
Linus,
Please pull the latest x86-fb-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-fb-for-linus
HEAD: 765d5b9c2b72f5b99722cdfcf4bf8f88c556cf92 fbdev: fbcon: select VT_HW_CONSOLE_BINDING
This tree includes preparatory patches for SimpleDRM driver support, by David Herrmann. They clean up x86 framebuffer support by creating simplefb devices wherever possible. More background can be found at:
http://lwn.net/Articles/558104/
out-of-topic modifications in x86-fb-for-linus:
-----------------------------------------------
drivers/video/Kconfig # 5ef76da: fbdev: simplefb: add init through
drivers/video/console/Kconfig # 765d5b9: fbdev: fbcon: select VT_HW_CONSOL
drivers/video/efifb.c # e6816a8: fbdev: efifb: bind to efi-framebu
# 2995e50: x86: sysfb: move EFI quirks from drivers/video/simplefb.c # df0960a: fbdev: simplefb: mark as fw and a
# 5ef76da: fbdev: simplefb: add init throughdrivers/video/vesafb.c # 2e5155e: fbdev: vesafb: bind to platform-f
include/linux/platform_data/simplefb.h# 9a6a36d: fbdev: simplefb: add common x86 R
# 5ef76da: fbdev: simplefb: add init through
Thanks,
Ingo
------------------>
David Herrmann (8):
fbdev: simplefb: add init through platform_data
fbdev: simplefb: mark as fw and allocate apertures
x86: provide platform-devices for boot-framebuffers
x86: sysfb: move EFI quirks from efifb to sysfb
fbdev: simplefb: add common x86 RGB formats
fbdev: vesafb: bind to platform-framebuffer device
fbdev: efifb: bind to efi-framebuffer
fbdev: fbcon: select VT_HW_CONSOLE_BINDING
arch/x86/Kconfig | 26 +++ arch/x86/include/asm/sysfb.h | 98 +++++++++++ arch/x86/kernel/Makefile | 3 + arch/x86/kernel/sysfb.c | 74 ++++++++ arch/x86/kernel/sysfb_efi.c | 214 +++++++++++++++++++++++ arch/x86/kernel/sysfb_simplefb.c | 95 +++++++++++ drivers/video/Kconfig | 5 +- drivers/video/console/Kconfig | 3 +- drivers/video/efifb.c | 302 ++++----------------------------- drivers/video/simplefb.c | 58 +++++-- drivers/video/vesafb.c | 55 ++---- include/linux/platform_data/simplefb.h | 63 +++++++ 12 files changed, 666 insertions(+), 330 deletions(-) create mode 100644 arch/x86/include/asm/sysfb.h create mode 100644 arch/x86/kernel/sysfb.c create mode 100644 arch/x86/kernel/sysfb_efi.c create mode 100644 arch/x86/kernel/sysfb_simplefb.c create mode 100644 include/linux/platform_data/simplefb.h
arch/x86/Kconfig +26 -0
@@ -2270,6 +2270,32 @@ config RAPIDIO source "drivers/rapidio/Kconfig" +config X86_SYSFB + bool "Mark VGA/VBE/EFI FB as generic system framebuffer" + help + Firmwares often provide initial graphics framebuffers so the BIOS, + bootloader or kernel can show basic video-output during boot for + user-guidance and debugging. Historically, x86 used the VESA BIOS + Extensions and EFI-framebuffers for this, which are mostly limited + to x86. + This option, if enabled, marks VGA/VBE/EFI framebuffers as generic + framebuffers so the new generic system-framebuffer drivers can be + used on x86. If the framebuffer is not compatible with the generic + modes, it is adverticed as fallback platform framebuffer so legacy + drivers like efifb, vesafb and uvesafb can pick it up. + If this option is not selected, all system framebuffers are always + marked as fallback platform framebuffers as usual. + + Note: Legacy fbdev drivers, including vesafb, efifb, uvesafb, will + not be able to pick up generic system framebuffers if this option + is selected. You are highly encouraged to enable simplefb as + replacement if you select this option. simplefb can correctly deal + with generic system framebuffers. But you should still keep vesafb + and others enabled as fallback if a system framebuffer is + incompatible with simplefb. + + If unsure, say Y. + endmenu
arch/x86/include/asm/sysfb.h new file +98 -0
98 lines not on this page · raw message
arch/x86/kernel/Makefile +3 -0
@@ -103,6 +103,9 @@ obj-$(CONFIG_X86_CHECK_BIOS_CORRUPTION) += check.o obj-$(CONFIG_SWIOTLB) += pci-swiotlb.o obj-$(CONFIG_OF) += devicetree.o obj-$(CONFIG_UPROBES) += uprobes.o +obj-y += sysfb.o +obj-$(CONFIG_X86_SYSFB) += sysfb_simplefb.o +obj-$(CONFIG_EFI) += sysfb_efi.o obj-$(CONFIG_PERF_EVENTS) += perf_regs.o obj-$(CONFIG_TRACING) += tracepoint.o
arch/x86/kernel/sysfb.c new file +74 -0
74 lines not on this page · raw message
arch/x86/kernel/sysfb_efi.c new file +214 -0
214 lines not on this page · raw message
arch/x86/kernel/sysfb_simplefb.c new file +95 -0
95 lines not on this page · raw message
drivers/video/Kconfig +2 -3
@@ -2457,7 +2457,7 @@ config FB_HYPERV config FB_SIMPLE bool "Simple framebuffer support" - depends on (FB = y) && OF + depends on (FB = y) select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT
@@ -2469,8 +2469,7 @@ config FB_SIMPLE pre-allocated frame buffer surface. Configuration re: surface address, size, and format must be provided - through device tree, or potentially plain old platform data in the - future. + through device tree, or plain old platform data. source "drivers/video/omap/Kconfig" source "drivers/video/omap2/Kconfig"
drivers/video/console/Kconfig +2 -1
@@ -92,7 +92,8 @@ config DUMMY_CONSOLE_ROWS config FRAMEBUFFER_CONSOLE tristate "Framebuffer Console support" - depends on FB + depends on FB && !UML + select VT_HW_CONSOLE_BINDING select CRC32 select FONT_SUPPORT help
drivers/video/efifb.c +29 -273
345 lines not on this page · raw message
drivers/video/simplefb.c +44 -14
89 lines not on this page · raw message
drivers/video/vesafb.c +16 -39
98 lines not on this page · raw message
include/linux/platform_data/simplefb.h new file +63 -0
63 lines not on this page · raw message