Skip to contentSkip to conversation

fix the -test3 input config damages

PATCH In review Christoph Hellwig 6 participants 11 messages Aug 22, 2003 – Aug 29, 2003

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

PATCH 1/1 fix the -test3 input config damages

There's really no point in forcing in support for all kinds of optional input devices unless CONFIG_EMBEDDED. Also some of the selections really broke configs that worked fine before as indicated by the reports on lkml. Instead select CONFIG_INPUT if CONFIG_VT is selected so people upgrading from 2.4 using make oldconfig have a chance to see it if they didn't need CONFIG_INPUT before.

Btw, could we please get a consensus on what CONFIG_EMBEDDED is supposed to mean? It was introduced to allow compiling code out for special cases that normal userspace should be able to rely on like epoll and futexes but people seem to use it as an Aunt Tillie guard these days..

drivers/char/Kconfig +3 -3
@@ -5,8 +5,8 @@
 menu "Character devices"
 
 config VT
-	bool "Virtual terminal" if EMBEDDED
-	requires INPUT=y
+	bool "Virtual terminal"
+	select INPUT
 	default y
 	---help---
 	  If you say Y here, you will get support for terminal devices with
@@ -36,7 +36,7 @@
 	  shiny Linux system :-)
 
 config VT_CONSOLE
-	bool "Support for console on virtual terminal" if EMBEDDED
+	bool "Support for console on virtual terminal"
 	depends on VT
 	default y
 	---help---
drivers/input/Kconfig +3 -3
@@ -5,7 +5,7 @@
 menu "Input device support"
 
 config INPUT
-	tristate "Input devices (needed for keyboard, mouse, ...)" if EMBEDDED
+	tristate "Input devices (needed for keyboard, mouse, ...)"
 	default y
 	---help---
 	  Say Y here if you have any input device (mouse, keyboard, tablet,
@@ -27,8 +27,8 @@
 comment "Userland interfaces"
 
 config INPUT_MOUSEDEV
-	tristate "Mouse interface" if EMBEDDED
+	tristate "Mouse interface"
 	default y
 	depends on INPUT
 	---help---
 	  Say Y here if you want your mouse to be accessible as char devices
@@ -45,8 +45,8 @@
 	  a module, say M here and read <file:Documentation/modules.txt>.
 
 config INPUT_MOUSEDEV_PSAUX
-	bool "Provide legacy /dev/psaux device" if EMBEDDED
+	bool "Provide legacy /dev/psaux device"
 	default y
 	depends on INPUT_MOUSEDEV
 
 config INPUT_MOUSEDEV_SCREEN_X

===== drivers/input/keyboard/Kconfig 1.6 vs edited =====

drivers/input/keyboard/Kconfig +2 -2
@@ -2,7 +2,7 @@
 # Input core configuration
 #
 config INPUT_KEYBOARD
-	bool "Keyboards" if EMBEDDED || !X86
+	bool "Keyboards"
 	default y
 	depends on INPUT
 	help
@@ -12,8 +12,8 @@
 	  If unsure, say Y.
 
 config KEYBOARD_ATKBD
-	tristate "AT keyboard support" if EMBEDDED || !X86 
+	tristate "AT keyboard support"
 	default y
 	depends on INPUT && INPUT_KEYBOARD && SERIO
 	help
 	  Say Y here if you want to use a standard AT or PS/2 keyboard. Usually

===== drivers/input/serio/Kconfig 1.9 vs edited =====

drivers/input/serio/Kconfig +1 -1
@@ -19,8 +19,8 @@
 	  as a module, say M here and read <file:Documentation/modules.txt>.
 
 config SERIO_I8042
-	tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86
+	tristate "i8042 PC Keyboard controller"
 	default y
 	depends on SERIO
 	---help---
 	  i8042 is the chip over which the standard AT keyboard and PS/2
#1 lore raw
Quoted 3 lines · Christoph Hellwig

There's really no point in forcing in support for all kinds of optional input devices unless CONFIG_EMBEDDED.

I disagree. We've had too many totally unnecessary bug-reports from people, and it's just not worth it not having the keyboard and mouse controller driver.

However, we can certainly improve on it, and the "select INPUT if VT" part makes fine sense.

Linus

#2 lore raw
Quoted 9 lines · Linus Torvalds
Quoted 3 lines · Christoph Hellwig

There's really no point in forcing in support for all kinds of optional input devices unless CONFIG_EMBEDDED.

I disagree. We've had too many totally unnecessary bug-reports from people, and it's just not worth it not having the keyboard and mouse controller driver.

That's because we didn't have the "select INPUT if VT" yet..

Anyone, can we at least get a different option for this thingy then? CONFIG_EMBEDEDDED is even more wrong in this context than in the old one.

What about two new options to replace the old CONFIG_EMBEDDED?

- CONFIG_AUNT_TILLIE - for this kind of shoot yourself in the foot protection

and

- CONFIG_NONSTD_ABI - for the original sense of a kernel so limited that parts of the usual userland ABI may disappear

#3 lore raw
Quoted 2 lines · Christoph Hellwig

What about two new options to replace the old CONFIG_EMBEDDED?

If it's just a naming issue for you, then yes, we could change the current EXPERIMENTAL/BROKEN/EMBEDDED questions around a bit.

So we could split the EMBEDDED question into "STANDARD" (which implies VT, INPUT layer, PS/2 ATKBD) and "FEATURECOMPLETE" (FUTEX, EPOLL, NET).

Is it worth it? I see EMBEDDED as more of a "STANDARD" thing - for people who don't care or know, that's a slight safety-net saying "this selects the things you take for grated".

Linus

#4 lore raw
Quoted 8 lines · Linus Torvalds
Quoted 2 lines · Christoph Hellwig

What about two new options to replace the old CONFIG_EMBEDDED?

If it's just a naming issue for you, then yes, we could change the current EXPERIMENTAL/BROKEN/EMBEDDED questions around a bit.

Quoted 6 lines

So we could split the EMBEDDED question into "STANDARD" (which implies VT, INPUT layer, PS/2 ATKBD) and "FEATURECOMPLETE" (FUTEX, EPOLL, NET).

Is it worth it? I see EMBEDDED as more of a "STANDARD" thing - for people who don't care or know, that's a slight safety-net saying "this selects the things you take for grated".

So lets give it a shot then. This might clash with Christoph's patch, if you've already applied it, but it otherwise applies to the current bk.

===== arch/i386/defconfig 1.101 vs edited =====

arch/i386/defconfig +2 -1
@@ -20,7 +20,8 @@
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=15
-# CONFIG_EMBEDDED is not set
+CONFIG_STANDARD=y
+# CONFIG_NONSTD_ABI is not set
 CONFIG_KALLSYMS=y
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y

===== drivers/char/Kconfig 1.16 vs edited =====

drivers/char/Kconfig +3 -2
@@ -5,8 +5,9 @@
 menu "Character devices"
 
 config VT
-	bool "Virtual terminal" if EMBEDDED
+	bool "Virtual terminal" if !STANDARD
 	select INPUT
+	select VT_CONSOLE if STANDARD
 	default y
 	---help---
 	  If you say Y here, you will get support for terminal devices with
@@ -36,7 +37,7 @@
 	  shiny Linux system :-)
 
 config VT_CONSOLE
-	bool "Support for console on virtual terminal" if EMBEDDED
+	bool "Support for console on virtual terminal"
 	depends on VT
 	default y
 	---help---

===== drivers/input/Kconfig 1.5 vs edited =====

drivers/input/Kconfig +7 -3
@@ -5,7 +5,10 @@
 menu "Input device support"
 
 config INPUT
-	tristate "Input devices (needed for keyboard, mouse, ...)" if EMBEDDED
+	tristate "Input devices (needed for keyboard, mouse, ...)"
+	select INPUT_MOUSEDEV if STANDARD
+	select INPUT_KEYBDEV if STANDARD && X86
+	select SERIO if STANDARD && X86
 	default y
 	---help---
 	  Say Y here if you have any input device (mouse, keyboard, tablet,
@@ -27,8 +29,9 @@
 comment "Userland interfaces"
 
 config INPUT_MOUSEDEV
-	tristate "Mouse interface" if EMBEDDED
+	tristate "Mouse interface"
 	default y
+	select INPUT_MOUSEDEV_PSAUX if STANDARD
 	depends on INPUT
 	---help---
 	  Say Y here if you want your mouse to be accessible as char devices
@@ -45,7 +48,7 @@
 	  a module, say M here and read <file:Documentation/modules.txt>.
 
 config INPUT_MOUSEDEV_PSAUX
-	bool "Provide legacy /dev/psaux device" if EMBEDDED
+	bool "Provide legacy /dev/psaux device"
 	default y
 	depends on INPUT_MOUSEDEV
 

===== drivers/input/keyboard/Kconfig 1.6 vs edited =====

drivers/input/keyboard/Kconfig +3 -2
@@ -2,8 +2,9 @@
 # Input core configuration
 #
 config INPUT_KEYBOARD
-	bool "Keyboards" if EMBEDDED || !X86
+	bool "Keyboards"
 	default y
+	select KEYBOARD_ATKBD if STANDARD && X86
 	depends on INPUT
 	help
 	  Say Y here, and a list of supported keyboards will be displayed.
@@ -12,7 +13,7 @@
 	  If unsure, say Y.
 
 config KEYBOARD_ATKBD
-	tristate "AT keyboard support" if EMBEDDED || !X86 
+	tristate "AT keyboard support"
 	default y
 	depends on INPUT && INPUT_KEYBOARD && SERIO
 	help

===== drivers/input/serio/Kconfig 1.9 vs edited =====

drivers/input/serio/Kconfig +2 -1
@@ -2,7 +2,8 @@
 # Input core configuration
 #
 config SERIO
 	tristate "Serial i/o support (needed for keyboard and mouse)"
+	select SERIO_I8042 if STANDARD && X86
 	default y
 	---help---
 	  Say Yes here if you have any input device that uses serial I/O to
@@ -19,7 +20,7 @@
 	  as a module, say M here and read <file:Documentation/modules.txt>.
 
 config SERIO_I8042
-	tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86
+	tristate "i8042 PC Keyboard controller"
 	default y
 	depends on SERIO
 	---help---

===== drivers/video/console/Kconfig 1.18 vs edited =====

drivers/video/console/Kconfig +1 -1
@@ -5,7 +5,7 @@
 menu "Console display driver support"
 
 config VGA_CONSOLE
-	bool "VGA text console" if EMBEDDED || !X86
+	bool "VGA text console" if STANDARD && X86
 	depends on !ARCH_ACORN && !ARCH_EBSA110 || !4xx && !8xx
 	default y
 	help

===== init/Kconfig 1.22 vs edited =====

init/Kconfig +10 -4
@@ -145,8 +145,14 @@
 	  This option enables access to kernel configuration file and build
 	  information through /proc/ikconfig.
 
+config STANDARD
+	bool "Enable standard kernel features"
+	default y
+	help
+	  This option will automatically select some standard kernel
+	  features that you almost certainly want.
 
-menuconfig EMBEDDED
+menuconfig NONSTD_ABI
 	bool "Remove kernel features (for embedded systems)"
 	help
 	  This option allows certain base kernel features to be removed from
@@ -155,7 +161,7 @@
 	  are doing.
 
 config KALLSYMS
-	 bool "Load all symbols for debugging/kksymoops" if EMBEDDED
+	 bool "Load all symbols for debugging/kksymoops" if NONSTD_ABI
 	 default y
 	 help
 	   Say Y here to let the kernel print out symbolic crash information and
@@ -163,7 +169,7 @@
 	   somewhat, as all symbols have to be loaded into the kernel image.
 
 config FUTEX
-	bool "Enable futex support" if EMBEDDED
+	bool "Enable futex support" if NONSTD_ABI
 	default y
 	help
 	  Disabling this option will cause the kernel to be built without
@@ -171,7 +177,7 @@
 	  run glibc-based applications correctly.
 
 config EPOLL
-	bool "Enable eventpoll support" if EMBEDDED
+	bool "Enable eventpoll support" if NONSTD_ABI
 	default y
 	help
 	  Disabling this option will cause the kernel to be built without
Signature · 2 lines
Tom Rini
http://gate.crashing.org/~trini/
#5 lore raw

drivers/video/console/Kconfig line 11

Quoted 11 lines · Tom Rini
drivers/video/console/Kconfig +1 -1
@@ -5,7 +5,7 @@
 menu "Console display driver support"
 
 config VGA_CONSOLE
-	bool "VGA text console" if EMBEDDED || !X86
+	bool "VGA text console" if STANDARD && X86
 	depends on !ARCH_ACORN && !ARCH_EBSA110 || !4xx && !8xx
 	default y
 	help

Ugh, this makes VGA_CONSOLE default to yes if X86 is not set, right? Don't you want

    bool "VGA text console" if !STANDARD || X86

?

Or do I need an update course on Kconfig syntax?

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

#6 lore raw
Quoted 16 lines · Geert Uytterhoeven

drivers/video/console/Kconfig line 11

Quoted 11 lines · Tom Rini
drivers/video/console/Kconfig +1 -1
@@ -5,7 +5,7 @@
 menu "Console display driver support"
 
 config VGA_CONSOLE
-	bool "VGA text console" if EMBEDDED || !X86
+	bool "VGA text console" if STANDARD && X86
 	depends on !ARCH_ACORN && !ARCH_EBSA110 || !4xx && !8xx
 	default y
 	help

Ugh, this makes VGA_CONSOLE default to yes if X86 is not set, right? Don't you want

Quoted 5 lines
    bool "VGA text console" if !STANDARD || X86

?

Or do I need an update course on Kconfig syntax?

No, I think that's a logic error on my part. What I intended was default to Y on (STANDARD && X86), otherwise ask. So it should have been:
bool "VGA text console" if !(STANDARD && X86)

Signature · 2 lines
Tom Rini
http://gate.crashing.org/~trini/
#7 lore raw
Quoted 17 lines · Tom Rini
Quoted 16 lines · Geert Uytterhoeven

drivers/video/console/Kconfig line 11

Quoted 11 lines · Tom Rini
drivers/video/console/Kconfig +1 -1
@@ -5,7 +5,7 @@
 menu "Console display driver support"
 
 config VGA_CONSOLE
-	bool "VGA text console" if EMBEDDED || !X86
+	bool "VGA text console" if STANDARD && X86
 	depends on !ARCH_ACORN && !ARCH_EBSA110 || !4xx && !8xx
 	default y
 	help

Ugh, this makes VGA_CONSOLE default to yes if X86 is not set, right? Don't you want

Quoted 1 line
Quoted 1 line
    bool "VGA text console" if !STANDARD || X86

Oops, and I meant !X86, of course.

Quoted 8 lines
Quoted 3 lines

?

Or do I need an update course on Kconfig syntax?

No, I think that's a logic error on my part. What I intended was default to Y on (STANDARD && X86), otherwise ask. So it should have been:
bool "VGA text console" if !(STANDARD && X86)

OK, that's equivalent to what I had in mind :-)

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

#8 lore raw

BTW, what about adding a `suggests' keyword to Kconfig, cfr. Debian package dependencies?

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

#9 lore raw
In reply to Linus Torvalds
Quoted 10 lines
Quoted 3 lines

There's really no point in forcing in support for all kinds of optional input devices unless CONFIG_EMBEDDED.

I disagree. We've had too many totally unnecessary bug-reports from people, and it's just not worth it not having the keyboard and mouse controller driver.

However, we can certainly improve on it, and the "select INPUT if VT" part makes fine sense.

One thing I like to ask is that you removed the if EMBEDDED | !X86 from
VGA_CONSOLE. To my knowledge no one had problems with enabling vga console before the EMBEDDED changes. The reason I ask is because as it stands the configuration is forcing everyone on intel to enable the vga console. Even when you want to just run framebuffer console. Most newbie users will not know that they have to go back and enable "Embedded" support on a desktop machine just to disable vgacon.
This is important because on the intel platform people are moving to
framebuffer console. Also it would not shock me to see in one or two generations graphics card not supporting VGA cores anymore. For example I have several newer graphics cards for intel with DVI ports instead of VGA. Once the market is flooded with DVI monitors and graphics cards there is no need for VGA core support anymore.

#10 lore raw
In reply to Christoph Hellwig
Quoted 7 lines · Christoph Hellwig

There's really no point in forcing in support for all kinds of optional input devices unless CONFIG_EMBEDDED. Also some of the selections really broke configs that worked fine before as indicated by the reports on lkml. Instead select CONFIG_INPUT if CONFIG_VT is selected so people upgrading from 2.4 using make oldconfig have a chance to see it if they didn't need CONFIG_INPUT before.

Quoted 5 lines

Btw, could we please get a consensus on what CONFIG_EMBEDDED is supposed to mean? It was introduced to allow compiling code out for special cases that normal userspace should be able to rely on like epoll and futexes but people seem to use it as an Aunt Tillie guard these days..

I think this is the way to go. I'm merging this into my tree now.

Quoted 22 lines
drivers/char/Kconfig +3 -3
@@ -5,8 +5,8 @@
 menu "Character devices"
 
 config VT
-	bool "Virtual terminal" if EMBEDDED
-	requires INPUT=y
+	bool "Virtual terminal"
+	select INPUT
 	default y
 	---help---
 	  If you say Y here, you will get support for terminal devices with
@@ -36,7 +36,7 @@
 	  shiny Linux system :-)
 
 config VT_CONSOLE
-	bool "Support for console on virtual terminal" if EMBEDDED
+	bool "Support for console on virtual terminal"
 	depends on VT
 	default y
 	---help---

[snip]

Signature · 2 lines
Vojtech Pavlik
SuSE Labs, SuSE CR