[patch 1/2] uml: enable drivers (input, fb, vt)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



  Hi,

This patch enables a number of drivers for the uml build, in preparation
for the uml framebuffer driver patch coming next ;)

Changes:

  * Include drivers/{input,char,video} in the uml kernel configuration,
    thus enabling the vt subsystem, input subsystem and the framebuffer
    console.
  * Add the console_use_vt variable to make the vt subsystem
    runtime-switchable.  That is needed because uml has it's own,
    special "uml console" driver for major #5, which can only be
    used if the vt subsystem doesn't grab #5.  The plan is to enable
    the vt subsystem only if we are going to use it for the framebuffer
    console, so the current behaviour remains unchanged if the
    framebuffer is not used.
  * A bunch of Kconfig tweaks to make the allmodconfig build fine by
    disabling drivers which either don't make sense or don't even build
    on uml.  Fortunaly CONFIG_PCI & friends catched most of them
    already ;)

pleae apply,

  Gerd

-- 
Gerd 'just married' Hoffmann <[email protected]>
I'm the hacker formerly known as Gerd Knorr.
http://www.suse.de/~kraxel/just-married.jpeg
Index: linux-2.6.16-pre/drivers/input/keyboard/Kconfig
===================================================================
--- linux-2.6.16-pre.orig/drivers/input/keyboard/Kconfig	2006-01-23 12:43:55.000000000 +0100
+++ linux-2.6.16-pre/drivers/input/keyboard/Kconfig	2006-01-23 12:44:58.000000000 +0100
@@ -10,7 +10,7 @@ menuconfig INPUT_KEYBOARD
 
 	  If unsure, say Y.
 
-if INPUT_KEYBOARD
+if INPUT_KEYBOARD && !UML
 
 config KEYBOARD_ATKBD
 	tristate "AT keyboard" if !X86_PC
Index: linux-2.6.16-pre/drivers/input/mouse/Kconfig
===================================================================
--- linux-2.6.16-pre.orig/drivers/input/mouse/Kconfig	2006-01-23 12:43:55.000000000 +0100
+++ linux-2.6.16-pre/drivers/input/mouse/Kconfig	2006-01-23 12:44:58.000000000 +0100
@@ -10,7 +10,7 @@ menuconfig INPUT_MOUSE
 
 	  If unsure, say Y.
 
-if INPUT_MOUSE
+if INPUT_MOUSE && !UML
 
 config MOUSE_PS2
 	tristate "PS/2 mouse"
Index: linux-2.6.16-pre/drivers/input/serio/Kconfig
===================================================================
--- linux-2.6.16-pre.orig/drivers/input/serio/Kconfig	2006-01-03 04:21:10.000000000 +0100
+++ linux-2.6.16-pre/drivers/input/serio/Kconfig	2006-01-23 12:44:58.000000000 +0100
@@ -21,7 +21,7 @@ if SERIO
 config SERIO_I8042
 	tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86
 	default y
-	depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && !M68K
+	depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && !M68K && !UML
 	---help---
 	  i8042 is the chip over which the standard AT keyboard and PS/2
 	  mouse are connected to the computer. If you use these devices,
Index: linux-2.6.16-pre/drivers/char/Kconfig
===================================================================
--- linux-2.6.16-pre.orig/drivers/char/Kconfig	2006-01-23 12:43:54.000000000 +0100
+++ linux-2.6.16-pre/drivers/char/Kconfig	2006-01-23 12:44:58.000000000 +0100
@@ -59,11 +59,12 @@ config VT_CONSOLE
 
 config HW_CONSOLE
 	bool
-	depends on VT && !S390 && !UML
+	depends on VT && !S390
 	default y
 
 config SERIAL_NONSTANDARD
 	bool "Non-standard serial port support"
+	depends on !UML
 	---help---
 	  Say Y here if you have any non-standard serial boards -- boards
 	  which aren't supported using the standard "dumb" serial driver.
@@ -695,7 +696,7 @@ config NVRAM
 
 config RTC
 	tristate "Enhanced Real Time Clock Support"
-	depends on !PPC32 && !PARISC && !IA64 && !M68K && (!SPARC || PCI) && !FRV
+	depends on !PPC32 && !PARISC && !IA64 && !M68K && (!SPARC || PCI) && !FRV && !UML
 	---help---
 	  If you say Y here and create a character special file /dev/rtc with
 	  major number 10 and minor number 135 using mknod ("man mknod"), you
@@ -743,7 +744,7 @@ config SGI_IP27_RTC
 
 config GEN_RTC
 	tristate "Generic /dev/rtc emulation"
-	depends on RTC!=y && !IA64 && !ARM && !M32R && !SPARC && !FRV
+	depends on RTC!=y && !IA64 && !ARM && !M32R && !SPARC && !FRV && !UML
 	---help---
 	  If you say Y here and create a character special file /dev/rtc with
 	  major number 10 and minor number 135 using mknod ("man mknod"), you
@@ -800,6 +801,7 @@ config COBALT_LCD
 
 config DTLK
 	tristate "Double Talk PC internal speech card support"
+	depends on ISA
 	help
 	  This driver is for the DoubleTalk PC, a speech synthesizer
 	  manufactured by RC Systems (<http://www.rcsys.com/>).  It is also
Index: linux-2.6.16-pre/drivers/char/ipmi/Kconfig
===================================================================
--- linux-2.6.16-pre.orig/drivers/char/ipmi/Kconfig	2006-01-03 04:21:10.000000000 +0100
+++ linux-2.6.16-pre/drivers/char/ipmi/Kconfig	2006-01-23 12:44:59.000000000 +0100
@@ -5,6 +5,7 @@
 menu "IPMI"
 config IPMI_HANDLER
        tristate 'IPMI top-level message handler'
+       depends on !UML
        help
          This enables the central IPMI message handler, required for IPMI
 	 to work.
Index: linux-2.6.16-pre/drivers/char/tpm/Kconfig
===================================================================
--- linux-2.6.16-pre.orig/drivers/char/tpm/Kconfig	2006-01-03 04:21:10.000000000 +0100
+++ linux-2.6.16-pre/drivers/char/tpm/Kconfig	2006-01-23 12:44:59.000000000 +0100
@@ -6,7 +6,7 @@ menu "TPM devices"
 
 config TCG_TPM
 	tristate "TPM Hardware Support"
-	depends on EXPERIMENTAL
+	depends on EXPERIMENTAL && !UML
 	---help---
 	  If you have a TPM security chip in your system, which
 	  implements the Trusted Computing Group's specification,
Index: linux-2.6.16-pre/drivers/input/touchscreen/Kconfig
===================================================================
--- linux-2.6.16-pre.orig/drivers/input/touchscreen/Kconfig	2006-01-23 12:43:55.000000000 +0100
+++ linux-2.6.16-pre/drivers/input/touchscreen/Kconfig	2006-01-23 12:44:59.000000000 +0100
@@ -9,7 +9,7 @@ menuconfig INPUT_TOUCHSCREEN
 
 	  If unsure, say Y.
 
-if INPUT_TOUCHSCREEN
+if INPUT_TOUCHSCREEN && !UML
 
 config TOUCHSCREEN_ADS7846
 	tristate "ADS 7846 based touchscreens"
Index: linux-2.6.16-pre/drivers/serial/Kconfig
===================================================================
--- linux-2.6.16-pre.orig/drivers/serial/Kconfig	2006-01-23 12:44:53.000000000 +0100
+++ linux-2.6.16-pre/drivers/serial/Kconfig	2006-01-23 12:44:59.000000000 +0100
@@ -11,6 +11,7 @@ menu "Serial drivers"
 config SERIAL_8250
 	tristate "8250/16550 and compatible serial support"
 	depends on (BROKEN || !SPARC)
+	depends on !UML
 	select SERIAL_CORE
 	---help---
 	  This selects whether you want to include the driver for the standard
Index: linux-2.6.16-pre/drivers/video/Kconfig
===================================================================
--- linux-2.6.16-pre.orig/drivers/video/Kconfig	2006-01-23 12:44:06.000000000 +0100
+++ linux-2.6.16-pre/drivers/video/Kconfig	2006-01-23 12:44:59.000000000 +0100
@@ -602,7 +602,7 @@ config FB_EPSON1355
 
 config FB_S1D13XXX
 	tristate "Epson S1D13XXX framebuffer support"
-	depends on FB
+	depends on FB && !UML
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
Index: linux-2.6.16-pre/arch/um/Kconfig
===================================================================
--- linux-2.6.16-pre.orig/arch/um/Kconfig	2006-01-23 12:44:52.000000000 +0100
+++ linux-2.6.16-pre/arch/um/Kconfig	2006-01-23 12:44:59.000000000 +0100
@@ -288,6 +288,12 @@ source "drivers/net/Kconfig"
 
 source "drivers/connector/Kconfig"
 
+source "drivers/input/Kconfig"
+
+source "drivers/char/Kconfig"
+
+source "drivers/video/Kconfig"
+
 source "fs/Kconfig"
 
 source "security/Kconfig"
Index: linux-2.6.16-pre/arch/um/kernel/um_arch.c
===================================================================
--- linux-2.6.16-pre.orig/arch/um/kernel/um_arch.c	2006-01-23 12:43:53.000000000 +0100
+++ linux-2.6.16-pre/arch/um/kernel/um_arch.c	2006-01-23 12:44:59.000000000 +0100
@@ -18,6 +18,7 @@
 #include "linux/seq_file.h"
 #include "linux/delay.h"
 #include "linux/module.h"
+#include "linux/console.h"
 #include "asm/page.h"
 #include "asm/pgtable.h"
 #include "asm/ptrace.h"
@@ -464,6 +465,9 @@ void __init setup_arch(char **cmdline_p)
         strlcpy(saved_command_line, command_line, COMMAND_LINE_SIZE);
  	*cmdline_p = command_line;
 	setup_hostinfo();
+#if defined(CONFIG_DUMMY_CONSOLE)
+	console_use_vt = 0;
+#endif
 }
 
 void __init check_bugs(void)
Index: linux-2.6.16-pre/drivers/char/tty_io.c
===================================================================
--- linux-2.6.16-pre.orig/drivers/char/tty_io.c	2006-01-23 12:43:55.000000000 +0100
+++ linux-2.6.16-pre/drivers/char/tty_io.c	2006-01-23 12:44:59.000000000 +0100
@@ -132,6 +132,8 @@ LIST_HEAD(tty_drivers);			/* linked list
    vt.c for deeply disgusting hack reasons */
 DECLARE_MUTEX(tty_sem);
 
+int console_use_vt = 1;
+
 #ifdef CONFIG_UNIX98_PTYS
 extern struct tty_driver *ptm_driver;	/* Unix98 pty masters; for /dev/ptmx */
 extern int pty_limit;		/* Config limit on Unix98 ptys */
@@ -2033,7 +2035,7 @@ retry_open:
 		goto got_driver;
 	}
 #ifdef CONFIG_VT
-	if (device == MKDEV(TTY_MAJOR,0)) {
+	if (console_use_vt && device == MKDEV(TTY_MAJOR,0)) {
 		extern struct tty_driver *console_driver;
 		driver = console_driver;
 		index = fg_console;
@@ -3201,6 +3203,8 @@ static int __init tty_init(void)
 #endif
 
 #ifdef CONFIG_VT
+	if (!console_use_vt)
+		goto out_vt;
 	cdev_init(&vc0_cdev, &console_fops);
 	if (cdev_add(&vc0_cdev, MKDEV(TTY_MAJOR, 0), 1) ||
 	    register_chrdev_region(MKDEV(TTY_MAJOR, 0), 1, "/dev/vc/0") < 0)
@@ -3209,6 +3213,7 @@ static int __init tty_init(void)
 	class_device_create(tty_class, NULL, MKDEV(TTY_MAJOR, 0), NULL, "tty0");
 
 	vty_init();
+ out_vt:
 #endif
 	return 0;
 }
Index: linux-2.6.16-pre/include/linux/console.h
===================================================================
--- linux-2.6.16-pre.orig/include/linux/console.h	2006-01-03 04:21:10.000000000 +0100
+++ linux-2.6.16-pre/include/linux/console.h	2006-01-23 12:44:59.000000000 +0100
@@ -62,6 +62,7 @@ extern const struct consw dummy_con;	/* 
 extern const struct consw vga_con;	/* VGA text console */
 extern const struct consw newport_con;	/* SGI Newport console  */
 extern const struct consw prom_con;	/* SPARC PROM console */
+extern int console_use_vt;
 
 int take_over_console(const struct consw *sw, int first, int last, int deflt);
 void give_up_console(const struct consw *sw);
Index: linux-2.6.16-pre/drivers/video/console/Kconfig
===================================================================
--- linux-2.6.16-pre.orig/drivers/video/console/Kconfig	2006-01-23 12:44:06.000000000 +0100
+++ linux-2.6.16-pre/drivers/video/console/Kconfig	2006-01-23 12:44:59.000000000 +0100
@@ -6,7 +6,7 @@ menu "Console display driver support"
 
 config VGA_CONSOLE
 	bool "VGA text console" if EMBEDDED || !X86
-	depends on !ARCH_ACORN && !ARCH_EBSA110 && !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && !ARCH_VERSATILE
+	depends on !ARCH_ACORN && !ARCH_EBSA110 && !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && !ARCH_VERSATILE && !UML
 	default y
 	help
 	  Saying Y here will allow you to use Linux in text mode through a

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux