Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753297Ab0HYOMd (ORCPT ); Wed, 25 Aug 2010 10:12:33 -0400 Received: from queue02.mail.zen.net.uk ([212.23.3.27]:41932 "EHLO queue02.mail.zen.net.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753047Ab0HYOM3 (ORCPT ); Wed, 25 Aug 2010 10:12:29 -0400 Date: Wed, 25 Aug 2010 15:11:12 +0100 From: Colin Watson To: linux-fbdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Peter Jones , Matthew Garrett Subject: [PATCH] Add new linearfb driver Message-ID: <20100825141111.GI21862@riva.ucam.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) X-Originating-Smarthost01-IP: [82.69.40.219] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 21678 Lines: 701 Split out linearfb from efifb so that boot loaders can program it as a simple linear framebuffer on non-EFI systems. This is useful for boot loaders with their own graphics drivers, e.g. GRUB 2, since in some cases on x86 they can set up non-VESA modes and thus can't program vesafb. efifb is reworked on top of this common code, and it should be possible to do the same with some other framebuffer drivers in future. Signed-off-by: Colin Watson Acked-by: Matthew Garrett Cc: Peter Jones --- drivers/video/Kconfig | 17 ++- drivers/video/Makefile | 1 + drivers/video/efifb.c | 222 +---------------------------- drivers/video/linearfb.c | 332 +++++++++++++++++++++++++++++++++++++++++++ include/linux/fb.h | 8 + include/linux/screen_info.h | 2 + 6 files changed, 364 insertions(+), 218 deletions(-) create mode 100644 drivers/video/linearfb.c diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 59c51d9..a7735ec 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -721,13 +721,24 @@ config FB_VESA You will get a boot time penguin logo at no additional cost. Please read . If unsure, say Y. -config FB_EFI - bool "EFI-based Framebuffer Support" - depends on (FB = y) && X86 && EFI +config FB_LINEAR + bool "Simple linear framebuffer support" + depends on FB select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT help + This is a simple linear frame buffer device driver. It has no + hardware-specific programming capability, but must be programmed + by the boot loader or by another frame buffer driver. + + If unsure, say N. + +config FB_EFI + bool "EFI-based Framebuffer Support" + depends on (FB = y) && X86 && EFI + select FB_LINEAR + help This is the EFI frame buffer device driver. If the firmware on your platform is EFI 1.10 or UEFI 2.0, select Y to add support for using the EFI framebuffer as your console. diff --git a/drivers/video/Makefile b/drivers/video/Makefile index ddc2af2..ad74d3b 100644 --- a/drivers/video/Makefile +++ b/drivers/video/Makefile @@ -133,6 +133,7 @@ obj-$(CONFIG_FB_MSM) += msm/ obj-$(CONFIG_FB_NUC900) += nuc900fb.o # Platform or fallback drivers go here +obj-$(CONFIG_FB_LINEAR) += linearfb.o obj-$(CONFIG_FB_UVESA) += uvesafb.o obj-$(CONFIG_FB_VESA) += vesafb.o obj-$(CONFIG_FB_EFI) += efifb.o diff --git a/drivers/video/efifb.c b/drivers/video/efifb.c index 4a56f46..72e5873 100644 --- a/drivers/video/efifb.c +++ b/drivers/video/efifb.c @@ -16,24 +16,6 @@ #include