Skip to contentSkip to conversation

x86/fb changes for v3.12

GIT PULL Ingo Molnar 1 participant 1 message Sep 3, 2013

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

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 through
drivers/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
index b32ebf9..5c56559 100644
@@ -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
index 88d99ea..a5408b9 100644
@@ -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
index 4cf1e1d..34c3d96 100644
@@ -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
index 8c30603..846caab 100644
@@ -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