aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoe Millenbach <jmillenbach@gmail.com>2013-01-18 01:44:22 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-01-18 19:15:27 -0500
commit4f73bc4dd3e8563ef4109f293a092820dff66d92 (patch)
tree8ebd5d01abaceb70da1932db1a5e7219630b0fd3
parenta1bf9584429d61b7096f93ae09325e1ba538e9e8 (diff)
tty: Added a CONFIG_TTY option to allow removal of TTY
The option allows you to remove TTY and compile without errors. This saves space on systems that won't support TTY interfaces anyway. bloat-o-meter output is below. The bulk of this patch consists of Kconfig changes adding "depends on TTY" to various serial devices and similar drivers that require the TTY layer. Ideally, these dependencies would occur on a common intermediate symbol such as SERIO, but most drivers "select SERIO" rather than "depends on SERIO", and "select" does not respect dependencies. bloat-o-meter output comparing our previous minimal to new minimal by removing TTY. The list is filtered to not show removed entries with awk '$3 != "-"' as the list was very long. add/remove: 0/226 grow/shrink: 2/14 up/down: 6/-35356 (-35350) function old new delta chr_dev_init 166 170 +4 allow_signal 80 82 +2 static.__warned 143 142 -1 disallow_signal 63 62 -1 __set_special_pids 95 94 -1 unregister_console 126 121 -5 start_kernel 546 541 -5 register_console 593 588 -5 copy_from_user 45 40 -5 sys_setsid 128 120 -8 sys_vhangup 32 19 -13 do_exit 1543 1526 -17 bitmap_zero 60 40 -20 arch_local_irq_save 137 117 -20 release_task 674 652 -22 static.spin_unlock_irqrestore 308 260 -48 Signed-off-by: Joe Millenbach <jmillenbach@gmail.com> Reviewed-by: Jamey Sharp <jamey@minilop.net> Reviewed-by: Josh Triplett <josh@joshtriplett.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--arch/alpha/Kconfig2
-rw-r--r--arch/ia64/hp/sim/Kconfig1
-rw-r--r--arch/m68k/Kconfig.devices2
-rw-r--r--arch/parisc/Kconfig1
-rw-r--r--arch/tile/Kconfig1
-rw-r--r--arch/um/Kconfig.common1
-rw-r--r--arch/xtensa/Kconfig1
-rw-r--r--drivers/bluetooth/Kconfig1
-rw-r--r--drivers/char/Kconfig7
-rw-r--r--drivers/char/pcmcia/Kconfig4
-rw-r--r--drivers/i2c/busses/Kconfig2
-rw-r--r--drivers/input/joystick/Kconfig4
-rw-r--r--drivers/input/keyboard/Kconfig10
-rw-r--r--drivers/input/mouse/Kconfig3
-rw-r--r--drivers/input/serio/Kconfig1
-rw-r--r--drivers/input/touchscreen/Kconfig22
-rw-r--r--drivers/ipack/devices/Kconfig2
-rw-r--r--drivers/isdn/Kconfig1
-rw-r--r--drivers/isdn/capi/Kconfig1
-rw-r--r--drivers/isdn/gigaset/Kconfig1
-rw-r--r--drivers/isdn/hardware/mISDN/Kconfig1
-rw-r--r--drivers/lguest/Kconfig2
-rw-r--r--drivers/media/radio/wl128x/Kconfig2
-rw-r--r--drivers/misc/Kconfig2
-rw-r--r--drivers/misc/ti-st/Kconfig2
-rw-r--r--drivers/mmc/card/Kconfig1
-rw-r--r--drivers/net/caif/Kconfig2
-rw-r--r--drivers/net/can/Kconfig2
-rw-r--r--drivers/net/hamradio/Kconfig4
-rw-r--r--drivers/net/irda/Kconfig2
-rw-r--r--drivers/net/ppp/Kconfig3
-rw-r--r--drivers/net/slip/Kconfig1
-rw-r--r--drivers/net/usb/Kconfig4
-rw-r--r--drivers/net/wan/Kconfig2
-rw-r--r--drivers/pps/clients/Kconfig2
-rw-r--r--drivers/s390/char/Kconfig8
-rw-r--r--drivers/staging/ccg/Kconfig2
-rw-r--r--drivers/staging/dgrp/Kconfig2
-rw-r--r--drivers/staging/fwserial/Kconfig2
-rw-r--r--drivers/staging/sb105x/Kconfig2
-rw-r--r--drivers/tty/Kconfig13
-rw-r--r--drivers/tty/Makefile2
-rw-r--r--drivers/tty/hvc/Kconfig3
-rw-r--r--drivers/tty/serial/Kconfig4
-rw-r--r--drivers/usb/class/Kconfig2
-rw-r--r--drivers/usb/gadget/Kconfig6
-rw-r--r--drivers/usb/serial/Kconfig2
-rw-r--r--fs/proc/Makefile3
-rw-r--r--include/linux/console.h5
-rw-r--r--include/linux/proc_fs.h5
-rw-r--r--include/linux/tty.h44
-rw-r--r--lib/Kconfig.kgdb1
-rw-r--r--net/bluetooth/rfcomm/Kconfig1
-rw-r--r--net/irda/ircomm/Kconfig2
-rw-r--r--sound/soc/codecs/Kconfig3
55 files changed, 165 insertions, 47 deletions
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
index 9d5904cc7712..1ef196ddadeb 100644
--- a/arch/alpha/Kconfig
+++ b/arch/alpha/Kconfig
@@ -125,6 +125,7 @@ choice
125 125
126config ALPHA_GENERIC 126config ALPHA_GENERIC
127 bool "Generic" 127 bool "Generic"
128 depends on TTY
128 help 129 help
129 A generic kernel will run on all supported Alpha hardware. 130 A generic kernel will run on all supported Alpha hardware.
130 131
@@ -491,6 +492,7 @@ config VGA_HOSE
491 492
492config ALPHA_SRM 493config ALPHA_SRM
493 bool "Use SRM as bootloader" if ALPHA_CABRIOLET || ALPHA_AVANTI_CH || ALPHA_EB64P || ALPHA_PC164 || ALPHA_TAKARA || ALPHA_EB164 || ALPHA_ALCOR || ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_NAUTILUS || ALPHA_NONAME 494 bool "Use SRM as bootloader" if ALPHA_CABRIOLET || ALPHA_AVANTI_CH || ALPHA_EB64P || ALPHA_PC164 || ALPHA_TAKARA || ALPHA_EB164 || ALPHA_ALCOR || ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_NAUTILUS || ALPHA_NONAME
495 depends on TTY
494 default y if ALPHA_JENSEN || ALPHA_MIKASA || ALPHA_SABLE || ALPHA_LYNX || ALPHA_NORITAKE || ALPHA_DP264 || ALPHA_RAWHIDE || ALPHA_EIGER || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_SHARK || ALPHA_MARVEL 496 default y if ALPHA_JENSEN || ALPHA_MIKASA || ALPHA_SABLE || ALPHA_LYNX || ALPHA_NORITAKE || ALPHA_DP264 || ALPHA_RAWHIDE || ALPHA_EIGER || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_SHARK || ALPHA_MARVEL
495 ---help--- 497 ---help---
496 There are two different types of booting firmware on Alphas: SRM, 498 There are two different types of booting firmware on Alphas: SRM,
diff --git a/arch/ia64/hp/sim/Kconfig b/arch/ia64/hp/sim/Kconfig
index 8d513a8c5266..d84707d55203 100644
--- a/arch/ia64/hp/sim/Kconfig
+++ b/arch/ia64/hp/sim/Kconfig
@@ -8,6 +8,7 @@ config HP_SIMETH
8 8
9config HP_SIMSERIAL 9config HP_SIMSERIAL
10 bool "Simulated serial driver support" 10 bool "Simulated serial driver support"
11 depends on TTY
11 12
12config HP_SIMSERIAL_CONSOLE 13config HP_SIMSERIAL_CONSOLE
13 bool "Console for HP simulator" 14 bool "Console for HP simulator"
diff --git a/arch/m68k/Kconfig.devices b/arch/m68k/Kconfig.devices
index c4cdfe444c64..4bc945dfe467 100644
--- a/arch/m68k/Kconfig.devices
+++ b/arch/m68k/Kconfig.devices
@@ -41,7 +41,7 @@ config NFBLOCK
41 41
42config NFCON 42config NFCON
43 tristate "NatFeat console driver" 43 tristate "NatFeat console driver"
44 depends on NATFEAT 44 depends on TTY && NATFEAT
45 help 45 help
46 Say Y to include support for the ARAnyM NatFeat console driver 46 Say Y to include support for the ARAnyM NatFeat console driver
47 which allows the console output to be redirected to the stderr 47 which allows the console output to be redirected to the stderr
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index b77feffbadea..df5beb639760 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -23,6 +23,7 @@ config PARISC
23 select HAVE_MOD_ARCH_SPECIFIC 23 select HAVE_MOD_ARCH_SPECIFIC
24 select MODULES_USE_ELF_RELA 24 select MODULES_USE_ELF_RELA
25 select CLONE_BACKWARDS 25 select CLONE_BACKWARDS
26 select TTY # Needed for pdc_cons.c
26 27
27 help 28 help
28 The PA-RISC microprocessor is designed by Hewlett-Packard and used 29 The PA-RISC microprocessor is designed by Hewlett-Packard and used
diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig
index 875d008828b8..ae8a7ca67fa4 100644
--- a/arch/tile/Kconfig
+++ b/arch/tile/Kconfig
@@ -121,6 +121,7 @@ config DEBUG_COPY_FROM_USER
121 def_bool n 121 def_bool n
122 122
123config HVC_TILE 123config HVC_TILE
124 depends on TTY
124 select HVC_DRIVER 125 select HVC_DRIVER
125 def_bool y 126 def_bool y
126 127
diff --git a/arch/um/Kconfig.common b/arch/um/Kconfig.common
index 648121b037d5..bceee6623b00 100644
--- a/arch/um/Kconfig.common
+++ b/arch/um/Kconfig.common
@@ -12,6 +12,7 @@ config UML
12 select GENERIC_CPU_DEVICES 12 select GENERIC_CPU_DEVICES
13 select GENERIC_IO 13 select GENERIC_IO
14 select GENERIC_CLOCKEVENTS 14 select GENERIC_CLOCKEVENTS
15 select TTY # Needed for line.c
15 16
16config MMU 17config MMU
17 bool 18 bool
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig
index 5aab1acabf1c..ad64c73b8675 100644
--- a/arch/xtensa/Kconfig
+++ b/arch/xtensa/Kconfig
@@ -132,6 +132,7 @@ choice
132 132
133config XTENSA_PLATFORM_ISS 133config XTENSA_PLATFORM_ISS
134 bool "ISS" 134 bool "ISS"
135 depends on TTY
135 select XTENSA_CALIBRATE_CCOUNT 136 select XTENSA_CALIBRATE_CCOUNT
136 select SERIAL_CONSOLE 137 select SERIAL_CONSOLE
137 select XTENSA_ISS_NETWORK 138 select XTENSA_ISS_NETWORK
diff --git a/drivers/bluetooth/Kconfig b/drivers/bluetooth/Kconfig
index e9f203eadb1f..fdfd61a2d523 100644
--- a/drivers/bluetooth/Kconfig
+++ b/drivers/bluetooth/Kconfig
@@ -26,6 +26,7 @@ config BT_HCIBTSDIO
26 26
27config BT_HCIUART 27config BT_HCIUART
28 tristate "HCI UART driver" 28 tristate "HCI UART driver"
29 depends on TTY
29 help 30 help
30 Bluetooth HCI UART driver. 31 Bluetooth HCI UART driver.
31 This driver is required if you want to use Bluetooth devices with 32 This driver is required if you want to use Bluetooth devices with
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
index 72bedad6bf8c..3bb6fa3930be 100644
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
@@ -53,7 +53,7 @@ source "drivers/tty/serial/Kconfig"
53 53
54config TTY_PRINTK 54config TTY_PRINTK
55 bool "TTY driver to output user messages via printk" 55 bool "TTY driver to output user messages via printk"
56 depends on EXPERT 56 depends on EXPERT && TTY
57 default n 57 default n
58 ---help--- 58 ---help---
59 If you say Y here, the support for writing user messages (i.e. 59 If you say Y here, the support for writing user messages (i.e.
@@ -159,7 +159,7 @@ source "drivers/tty/hvc/Kconfig"
159 159
160config VIRTIO_CONSOLE 160config VIRTIO_CONSOLE
161 tristate "Virtio console" 161 tristate "Virtio console"
162 depends on VIRTIO 162 depends on VIRTIO && TTY
163 select HVC_DRIVER 163 select HVC_DRIVER
164 help 164 help
165 Virtio console for use with lguest and other hypervisors. 165 Virtio console for use with lguest and other hypervisors.
@@ -392,6 +392,7 @@ config XILINX_HWICAP
392 392
393config R3964 393config R3964
394 tristate "Siemens R3964 line discipline" 394 tristate "Siemens R3964 line discipline"
395 depends on TTY
395 ---help--- 396 ---help---
396 This driver allows synchronous communication with devices using the 397 This driver allows synchronous communication with devices using the
397 Siemens R3964 packet protocol. Unless you are dealing with special 398 Siemens R3964 packet protocol. Unless you are dealing with special
@@ -439,7 +440,7 @@ source "drivers/char/pcmcia/Kconfig"
439 440
440config MWAVE 441config MWAVE
441 tristate "ACP Modem (Mwave) support" 442 tristate "ACP Modem (Mwave) support"
442 depends on X86 443 depends on X86 && TTY
443 select SERIAL_8250 444 select SERIAL_8250
444 ---help--- 445 ---help---
445 The ACP modem (Mwave) for Linux is a WinModem. It is composed of a 446 The ACP modem (Mwave) for Linux is a WinModem. It is composed of a
diff --git a/drivers/char/pcmcia/Kconfig b/drivers/char/pcmcia/Kconfig
index 6614416a8623..2a166d56738a 100644
--- a/drivers/char/pcmcia/Kconfig
+++ b/drivers/char/pcmcia/Kconfig
@@ -7,7 +7,7 @@ menu "PCMCIA character devices"
7 7
8config SYNCLINK_CS 8config SYNCLINK_CS
9 tristate "SyncLink PC Card support" 9 tristate "SyncLink PC Card support"
10 depends on PCMCIA 10 depends on PCMCIA && TTY
11 help 11 help
12 Enable support for the SyncLink PC Card serial adapter, running 12 Enable support for the SyncLink PC Card serial adapter, running
13 asynchronous and HDLC communications up to 512Kbps. The port is 13 asynchronous and HDLC communications up to 512Kbps. The port is
@@ -45,7 +45,7 @@ config CARDMAN_4040
45 45
46config IPWIRELESS 46config IPWIRELESS
47 tristate "IPWireless 3G UMTS PCMCIA card support" 47 tristate "IPWireless 3G UMTS PCMCIA card support"
48 depends on PCMCIA && NETDEVICES 48 depends on PCMCIA && NETDEVICES && TTY
49 select PPP 49 select PPP
50 help 50 help
51 This is a driver for 3G UMTS PCMCIA card from IPWireless company. In 51 This is a driver for 3G UMTS PCMCIA card from IPWireless company. In
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index bdca5111eb9d..cf474b2df4ae 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -803,7 +803,7 @@ config I2C_PARPORT_LIGHT
803 803
804config I2C_TAOS_EVM 804config I2C_TAOS_EVM
805 tristate "TAOS evaluation module" 805 tristate "TAOS evaluation module"
806 depends on EXPERIMENTAL 806 depends on EXPERIMENTAL && TTY
807 select SERIO 807 select SERIO
808 select SERIO_SERPORT 808 select SERIO_SERPORT
809 default n 809 default n
diff --git a/drivers/input/joystick/Kconfig b/drivers/input/joystick/Kconfig
index 56eb471b5576..055bcaba774c 100644
--- a/drivers/input/joystick/Kconfig
+++ b/drivers/input/joystick/Kconfig
@@ -132,6 +132,8 @@ config JOYSTICK_TMDC
132 132
133source "drivers/input/joystick/iforce/Kconfig" 133source "drivers/input/joystick/iforce/Kconfig"
134 134
135if TTY
136
135config JOYSTICK_WARRIOR 137config JOYSTICK_WARRIOR
136 tristate "Logitech WingMan Warrior joystick" 138 tristate "Logitech WingMan Warrior joystick"
137 select SERIO 139 select SERIO
@@ -205,6 +207,8 @@ config JOYSTICK_ZHENHUA
205 To compile this driver as a module, choose M here: the 207 To compile this driver as a module, choose M here: the
206 module will be called zhenhua. 208 module will be called zhenhua.
207 209
210endif # TTY
211
208config JOYSTICK_DB9 212config JOYSTICK_DB9
209 tristate "Multisystem, Sega Genesis, Saturn joysticks and gamepads" 213 tristate "Multisystem, Sega Genesis, Saturn joysticks and gamepads"
210 depends on PARPORT 214 depends on PARPORT
diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
index 5a240c60342d..008f96aaf19e 100644
--- a/drivers/input/keyboard/Kconfig
+++ b/drivers/input/keyboard/Kconfig
@@ -69,6 +69,7 @@ config KEYBOARD_ATARI
69config KEYBOARD_ATKBD 69config KEYBOARD_ATKBD
70 tristate "AT keyboard" if EXPERT || !X86 70 tristate "AT keyboard" if EXPERT || !X86
71 default y 71 default y
72 depends on TTY
72 select SERIO 73 select SERIO
73 select SERIO_LIBPS2 74 select SERIO_LIBPS2
74 select SERIO_I8042 if X86 75 select SERIO_I8042 if X86
@@ -153,6 +154,7 @@ config KEYBOARD_BFIN
153 154
154config KEYBOARD_LKKBD 155config KEYBOARD_LKKBD
155 tristate "DECstation/VAXstation LK201/LK401 keyboard" 156 tristate "DECstation/VAXstation LK201/LK401 keyboard"
157 depends on TTY
156 select SERIO 158 select SERIO
157 help 159 help
158 Say Y here if you want to use a LK201 or LK401 style serial 160 Say Y here if you want to use a LK201 or LK401 style serial
@@ -268,7 +270,7 @@ config KEYBOARD_HIL_OLD
268 270
269config KEYBOARD_HIL 271config KEYBOARD_HIL
270 tristate "HP HIL keyboard/pointer support" 272 tristate "HP HIL keyboard/pointer support"
271 depends on GSC || HP300 273 depends on (GSC || HP300) && TTY
272 default y 274 default y
273 select HP_SDC 275 select HP_SDC
274 select HIL_MLC 276 select HIL_MLC
@@ -400,6 +402,7 @@ config KEYBOARD_IMX
400 402
401config KEYBOARD_NEWTON 403config KEYBOARD_NEWTON
402 tristate "Newton keyboard" 404 tristate "Newton keyboard"
405 depends on TTY
403 select SERIO 406 select SERIO
404 help 407 help
405 Say Y here if you have a Newton keyboard on a serial port. 408 Say Y here if you have a Newton keyboard on a serial port.
@@ -479,6 +482,8 @@ config KEYBOARD_SAMSUNG
479 To compile this driver as a module, choose M here: the 482 To compile this driver as a module, choose M here: the
480 module will be called samsung-keypad. 483 module will be called samsung-keypad.
481 484
485if TTY
486
482config KEYBOARD_STOWAWAY 487config KEYBOARD_STOWAWAY
483 tristate "Stowaway keyboard" 488 tristate "Stowaway keyboard"
484 select SERIO 489 select SERIO
@@ -501,6 +506,8 @@ config KEYBOARD_SUNKBD
501 To compile this driver as a module, choose M here: the 506 To compile this driver as a module, choose M here: the
502 module will be called sunkbd. 507 module will be called sunkbd.
503 508
509endif # TTY
510
504config KEYBOARD_SH_KEYSC 511config KEYBOARD_SH_KEYSC
505 tristate "SuperH KEYSC keypad support" 512 tristate "SuperH KEYSC keypad support"
506 depends on SUPERH || ARCH_SHMOBILE 513 depends on SUPERH || ARCH_SHMOBILE
@@ -597,6 +604,7 @@ config KEYBOARD_TWL4030
597 604
598config KEYBOARD_XTKBD 605config KEYBOARD_XTKBD
599 tristate "XT keyboard" 606 tristate "XT keyboard"
607 depends on TTY
600 select SERIO 608 select SERIO
601 help 609 help
602 Say Y here if you want to use the old IBM PC/XT keyboard (or 610 Say Y here if you want to use the old IBM PC/XT keyboard (or
diff --git a/drivers/input/mouse/Kconfig b/drivers/input/mouse/Kconfig
index cd6268cf7cd5..fc160f72dc4e 100644
--- a/drivers/input/mouse/Kconfig
+++ b/drivers/input/mouse/Kconfig
@@ -14,6 +14,7 @@ if INPUT_MOUSE
14 14
15config MOUSE_PS2 15config MOUSE_PS2
16 tristate "PS/2 mouse" 16 tristate "PS/2 mouse"
17 depends on TTY
17 default y 18 default y
18 select SERIO 19 select SERIO
19 select SERIO_LIBPS2 20 select SERIO_LIBPS2
@@ -138,6 +139,7 @@ config MOUSE_PS2_OLPC
138 139
139config MOUSE_SERIAL 140config MOUSE_SERIAL
140 tristate "Serial mouse" 141 tristate "Serial mouse"
142 depends on TTY
141 select SERIO 143 select SERIO
142 help 144 help
143 Say Y here if you have a serial (RS-232, COM port) mouse connected 145 Say Y here if you have a serial (RS-232, COM port) mouse connected
@@ -262,6 +264,7 @@ config MOUSE_RISCPC
262 264
263config MOUSE_VSXXXAA 265config MOUSE_VSXXXAA
264 tristate "DEC VSXXX-AA/GA mouse and VSXXX-AB tablet" 266 tristate "DEC VSXXX-AA/GA mouse and VSXXX-AB tablet"
267 depends on TTY
265 select SERIO 268 select SERIO
266 help 269 help
267 Say Y (or M) if you want to use a DEC VSXXX-AA (hockey 270 Say Y (or M) if you want to use a DEC VSXXX-AA (hockey
diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig
index 4a4e182c33e7..81ee7551148e 100644
--- a/drivers/input/serio/Kconfig
+++ b/drivers/input/serio/Kconfig
@@ -4,6 +4,7 @@
4config SERIO 4config SERIO
5 tristate "Serial I/O support" if EXPERT || !X86 5 tristate "Serial I/O support" if EXPERT || !X86
6 default y 6 default y
7 depends on TTY
7 help 8 help
8 Say Yes here if you have any input device that uses serial I/O to 9 Say Yes here if you have any input device that uses serial I/O to
9 communicate with the system. This includes the 10 communicate with the system. This includes the
diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig
index 515cfe790543..3d6f548dd3d4 100644
--- a/drivers/input/touchscreen/Kconfig
+++ b/drivers/input/touchscreen/Kconfig
@@ -192,6 +192,8 @@ config TOUCHSCREEN_DA9052
192 To compile this driver as a module, choose M here: the 192 To compile this driver as a module, choose M here: the
193 module will be called da9052_tsi. 193 module will be called da9052_tsi.
194 194
195if TTY
196
195config TOUCHSCREEN_DYNAPRO 197config TOUCHSCREEN_DYNAPRO
196 tristate "Dynapro serial touchscreen" 198 tristate "Dynapro serial touchscreen"
197 select SERIO 199 select SERIO
@@ -216,6 +218,8 @@ config TOUCHSCREEN_HAMPSHIRE
216 To compile this driver as a module, choose M here: the 218 To compile this driver as a module, choose M here: the
217 module will be called hampshire. 219 module will be called hampshire.
218 220
221endif # TTY
222
219config TOUCHSCREEN_EETI 223config TOUCHSCREEN_EETI
220 tristate "EETI touchscreen panel support" 224 tristate "EETI touchscreen panel support"
221 depends on I2C 225 depends on I2C
@@ -237,6 +241,7 @@ config TOUCHSCREEN_EGALAX
237 241
238config TOUCHSCREEN_FUJITSU 242config TOUCHSCREEN_FUJITSU
239 tristate "Fujitsu serial touchscreen" 243 tristate "Fujitsu serial touchscreen"
244 depends on TTY
240 select SERIO 245 select SERIO
241 help 246 help
242 Say Y here if you have the Fujitsu touchscreen (such as one 247 Say Y here if you have the Fujitsu touchscreen (such as one
@@ -275,6 +280,8 @@ config TOUCHSCREEN_S3C2410
275 To compile this driver as a module, choose M here: the 280 To compile this driver as a module, choose M here: the
276 module will be called s3c2410_ts. 281 module will be called s3c2410_ts.
277 282
283if TTY
284
278config TOUCHSCREEN_GUNZE 285config TOUCHSCREEN_GUNZE
279 tristate "Gunze AHL-51S touchscreen" 286 tristate "Gunze AHL-51S touchscreen"
280 select SERIO 287 select SERIO
@@ -311,6 +318,8 @@ config TOUCHSCREEN_WACOM_W8001
311 To compile this driver as a module, choose M here: the 318 To compile this driver as a module, choose M here: the
312 module will be called wacom_w8001. 319 module will be called wacom_w8001.
313 320
321endif # TTY
322
314config TOUCHSCREEN_WACOM_I2C 323config TOUCHSCREEN_WACOM_I2C
315 tristate "Wacom Tablet support (I2C)" 324 tristate "Wacom Tablet support (I2C)"
316 depends on I2C 325 depends on I2C
@@ -369,6 +378,8 @@ config TOUCHSCREEN_MMS114
369 To compile this driver as a module, choose M here: the 378 To compile this driver as a module, choose M here: the
370 module will be called mms114. 379 module will be called mms114.
371 380
381if TTY
382
372config TOUCHSCREEN_MTOUCH 383config TOUCHSCREEN_MTOUCH
373 tristate "MicroTouch serial touchscreens" 384 tristate "MicroTouch serial touchscreens"
374 select SERIO 385 select SERIO
@@ -393,6 +404,8 @@ config TOUCHSCREEN_INEXIO
393 To compile this driver as a module, choose M here: the 404 To compile this driver as a module, choose M here: the
394 module will be called inexio. 405 module will be called inexio.
395 406
407endif # TTY
408
396config TOUCHSCREEN_INTEL_MID 409config TOUCHSCREEN_INTEL_MID
397 tristate "Intel MID platform resistive touchscreen" 410 tristate "Intel MID platform resistive touchscreen"
398 depends on INTEL_SCU_IPC 411 depends on INTEL_SCU_IPC
@@ -450,6 +463,7 @@ config TOUCHSCREEN_HTCPEN
450 463
451config TOUCHSCREEN_PENMOUNT 464config TOUCHSCREEN_PENMOUNT
452 tristate "Penmount serial touchscreen" 465 tristate "Penmount serial touchscreen"
466 depends on TTY
453 select SERIO 467 select SERIO
454 help 468 help
455 Say Y here if you have a Penmount serial touchscreen connected to 469 Say Y here if you have a Penmount serial touchscreen connected to
@@ -493,6 +507,8 @@ config TOUCHSCREEN_TNETV107X
493 To compile this driver as a module, choose M here: the 507 To compile this driver as a module, choose M here: the
494 module will be called tnetv107x-ts. 508 module will be called tnetv107x-ts.
495 509
510if TTY
511
496config TOUCHSCREEN_TOUCHRIGHT 512config TOUCHSCREEN_TOUCHRIGHT
497 tristate "Touchright serial touchscreen" 513 tristate "Touchright serial touchscreen"
498 select SERIO 514 select SERIO
@@ -517,6 +533,8 @@ config TOUCHSCREEN_TOUCHWIN
517 To compile this driver as a module, choose M here: the 533 To compile this driver as a module, choose M here: the
518 module will be called touchwin. 534 module will be called touchwin.
519 535
536endif # TTY
537
520config TOUCHSCREEN_TI_AM335X_TSC 538config TOUCHSCREEN_TI_AM335X_TSC
521 tristate "TI Touchscreen Interface" 539 tristate "TI Touchscreen Interface"
522 depends on MFD_TI_AM335X_TSCADC 540 depends on MFD_TI_AM335X_TSCADC
@@ -790,6 +808,8 @@ config TOUCHSCREEN_USB_EASYTOUCH
790 Say Y here if you have an EasyTouch USB Touch controller. 808 Say Y here if you have an EasyTouch USB Touch controller.
791 If unsure, say N. 809 If unsure, say N.
792 810
811if TTY
812
793config TOUCHSCREEN_TOUCHIT213 813config TOUCHSCREEN_TOUCHIT213
794 tristate "Sahara TouchIT-213 touchscreen" 814 tristate "Sahara TouchIT-213 touchscreen"
795 select SERIO 815 select SERIO
@@ -813,6 +833,8 @@ config TOUCHSCREEN_TSC_SERIO
813 To compile this driver as a module, choose M here: the 833 To compile this driver as a module, choose M here: the
814 module will be called tsc40. 834 module will be called tsc40.
815 835
836endif # TTY
837
816config TOUCHSCREEN_TSC2005 838config TOUCHSCREEN_TSC2005
817 tristate "TSC2005 based touchscreens" 839 tristate "TSC2005 based touchscreens"
818 depends on SPI_MASTER && GENERIC_HARDIRQS 840 depends on SPI_MASTER && GENERIC_HARDIRQS
diff --git a/drivers/ipack/devices/Kconfig b/drivers/ipack/devices/Kconfig
index 0b82fdc198c0..907a8cb48f2a 100644
--- a/drivers/ipack/devices/Kconfig
+++ b/drivers/ipack/devices/Kconfig
@@ -1,6 +1,6 @@
1config SERIAL_IPOCTAL 1config SERIAL_IPOCTAL
2 tristate "IndustryPack IP-OCTAL uart support" 2 tristate "IndustryPack IP-OCTAL uart support"
3 depends on IPACK_BUS 3 depends on IPACK_BUS && TTY
4 help 4 help
5 This driver supports the IPOCTAL serial port device for the IndustryPack bus. 5 This driver supports the IPOCTAL serial port device for the IndustryPack bus.
6 default n 6 default n
diff --git a/drivers/isdn/Kconfig b/drivers/isdn/Kconfig
index 86cd75a0e84d..ef661acdda17 100644
--- a/drivers/isdn/Kconfig
+++ b/drivers/isdn/Kconfig
@@ -22,6 +22,7 @@ if ISDN
22 22
23menuconfig ISDN_I4L 23menuconfig ISDN_I4L
24 tristate "Old ISDN4Linux (deprecated)" 24 tristate "Old ISDN4Linux (deprecated)"
25 depends on TTY
25 ---help--- 26 ---help---
26 This driver allows you to use an ISDN adapter for networking 27 This driver allows you to use an ISDN adapter for networking
27 connections and as dialin/out device. The isdn-tty's have a built 28 connections and as dialin/out device. The isdn-tty's have a built
diff --git a/drivers/isdn/capi/Kconfig b/drivers/isdn/capi/Kconfig
index 15c3ffd9d860..f04686580040 100644
--- a/drivers/isdn/capi/Kconfig
+++ b/drivers/isdn/capi/Kconfig
@@ -18,6 +18,7 @@ config CAPI_TRACE
18 18
19config ISDN_CAPI_MIDDLEWARE 19config ISDN_CAPI_MIDDLEWARE
20 bool "CAPI2.0 Middleware support" 20 bool "CAPI2.0 Middleware support"
21 depends on TTY
21 help 22 help
22 This option will enhance the capabilities of the /dev/capi20 23 This option will enhance the capabilities of the /dev/capi20
23 interface. It will provide a means of moving a data connection, 24 interface. It will provide a means of moving a data connection,
diff --git a/drivers/isdn/gigaset/Kconfig b/drivers/isdn/gigaset/Kconfig
index b18a92c32184..dde5e09e6267 100644
--- a/drivers/isdn/gigaset/Kconfig
+++ b/drivers/isdn/gigaset/Kconfig
@@ -1,5 +1,6 @@
1menuconfig ISDN_DRV_GIGASET 1menuconfig ISDN_DRV_GIGASET
2 tristate "Siemens Gigaset support" 2 tristate "Siemens Gigaset support"
3 depends on TTY
3 select CRC_CCITT 4 select CRC_CCITT
4 select BITREVERSE 5 select BITREVERSE
5 help 6 help
diff --git a/drivers/isdn/hardware/mISDN/Kconfig b/drivers/isdn/hardware/mISDN/Kconfig
index eadc1cd34a20..b8611e3e5e74 100644
--- a/drivers/isdn/hardware/mISDN/Kconfig
+++ b/drivers/isdn/hardware/mISDN/Kconfig
@@ -76,6 +76,7 @@ config MISDN_NETJET
76 tristate "Support for NETJet cards" 76 tristate "Support for NETJet cards"
77 depends on MISDN 77 depends on MISDN
78 depends on PCI 78 depends on PCI
79 depends on TTY
79 select MISDN_IPAC 80 select MISDN_IPAC
80 select ISDN_HDLC 81 select ISDN_HDLC
81 select ISDN_I4L 82 select ISDN_I4L
diff --git a/drivers/lguest/Kconfig b/drivers/lguest/Kconfig
index 34ae49dc557c..f9c43145a611 100644
--- a/drivers/lguest/Kconfig
+++ b/drivers/lguest/Kconfig
@@ -1,6 +1,6 @@
1config LGUEST 1config LGUEST
2 tristate "Linux hypervisor example code" 2 tristate "Linux hypervisor example code"
3 depends on X86_32 && EXPERIMENTAL && EVENTFD 3 depends on X86_32 && EXPERIMENTAL && EVENTFD && TTY
4 select HVC_DRIVER 4 select HVC_DRIVER
5 ---help--- 5 ---help---
6 This is a very simple module which allows you to run 6 This is a very simple module which allows you to run
diff --git a/drivers/media/radio/wl128x/Kconfig b/drivers/media/radio/wl128x/Kconfig
index ea1e6545df36..f359be7e9dd9 100644
--- a/drivers/media/radio/wl128x/Kconfig
+++ b/drivers/media/radio/wl128x/Kconfig
@@ -4,7 +4,7 @@
4menu "Texas Instruments WL128x FM driver (ST based)" 4menu "Texas Instruments WL128x FM driver (ST based)"
5config RADIO_WL128X 5config RADIO_WL128X
6 tristate "Texas Instruments WL128x FM Radio" 6 tristate "Texas Instruments WL128x FM Radio"
7 depends on VIDEO_V4L2 && RFKILL && GPIOLIB 7 depends on VIDEO_V4L2 && RFKILL && GPIOLIB && TTY
8 select TI_ST if NET 8 select TI_ST if NET
9 help 9 help
10 Choose Y here if you have this FM radio chip. 10 Choose Y here if you have this FM radio chip.
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index b151b7c1bd59..4b2bb939dde1 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -127,7 +127,7 @@ config PHANTOM
127 127
128config INTEL_MID_PTI 128config INTEL_MID_PTI
129 tristate "Parallel Trace Interface for MIPI P1149.7 cJTAG standard" 129 tristate "Parallel Trace Interface for MIPI P1149.7 cJTAG standard"
130 depends on PCI 130 depends on PCI && TTY
131 default n 131 default n
132 help 132 help
133 The PTI (Parallel Trace Interface) driver directs 133 The PTI (Parallel Trace Interface) driver directs
diff --git a/drivers/misc/ti-st/Kconfig b/drivers/misc/ti-st/Kconfig
index abb5de1afce3..f34dcc514730 100644
--- a/drivers/misc/ti-st/Kconfig
+++ b/drivers/misc/ti-st/Kconfig
@@ -5,7 +5,7 @@
5menu "Texas Instruments shared transport line discipline" 5menu "Texas Instruments shared transport line discipline"
6config TI_ST 6config TI_ST
7 tristate "Shared transport core driver" 7 tristate "Shared transport core driver"
8 depends on NET && GPIOLIB 8 depends on NET && GPIOLIB && TTY
9 select FW_LOADER 9 select FW_LOADER
10 help 10 help
11 This enables the shared transport core driver for TI 11 This enables the shared transport core driver for TI
diff --git a/drivers/mmc/card/Kconfig b/drivers/mmc/card/Kconfig
index 3b1f783bf924..5562308699bc 100644
--- a/drivers/mmc/card/Kconfig
+++ b/drivers/mmc/card/Kconfig
@@ -52,6 +52,7 @@ config MMC_BLOCK_BOUNCE
52 52
53config SDIO_UART 53config SDIO_UART
54 tristate "SDIO UART/GPS class support" 54 tristate "SDIO UART/GPS class support"
55 depends on TTY
55 help 56 help
56 SDIO function driver for SDIO cards that implements the UART 57 SDIO function driver for SDIO cards that implements the UART
57 class, as well as the GPS class which appears like a UART. 58 class, as well as the GPS class which appears like a UART.
diff --git a/drivers/net/caif/Kconfig b/drivers/net/caif/Kconfig
index abf4d7a9dcce..60c2142373c9 100644
--- a/drivers/net/caif/Kconfig
+++ b/drivers/net/caif/Kconfig
@@ -6,7 +6,7 @@ comment "CAIF transport drivers"
6 6
7config CAIF_TTY 7config CAIF_TTY
8 tristate "CAIF TTY transport driver" 8 tristate "CAIF TTY transport driver"
9 depends on CAIF 9 depends on CAIF && TTY
10 default n 10 default n
11 ---help--- 11 ---help---
12 The CAIF TTY transport driver is a Line Discipline (ldisc) 12 The CAIF TTY transport driver is a Line Discipline (ldisc)
diff --git a/drivers/net/can/Kconfig b/drivers/net/can/Kconfig
index b56bd9e80957..72df3a306a08 100644
--- a/drivers/net/can/Kconfig
+++ b/drivers/net/can/Kconfig
@@ -13,7 +13,7 @@ config CAN_VCAN
13 13
14config CAN_SLCAN 14config CAN_SLCAN
15 tristate "Serial / USB serial CAN Adaptors (slcan)" 15 tristate "Serial / USB serial CAN Adaptors (slcan)"
16 depends on CAN 16 depends on CAN && TTY
17 ---help--- 17 ---help---
18 CAN driver for several 'low cost' CAN interfaces that are attached 18 CAN driver for several 'low cost' CAN interfaces that are attached
19 via serial lines or via USB-to-serial adapters using the LAWICEL 19 via serial lines or via USB-to-serial adapters using the LAWICEL
diff --git a/drivers/net/hamradio/Kconfig b/drivers/net/hamradio/Kconfig
index 95dbcfdf131d..bf5e59687680 100644
--- a/drivers/net/hamradio/Kconfig
+++ b/drivers/net/hamradio/Kconfig
@@ -1,6 +1,6 @@
1config MKISS 1config MKISS
2 tristate "Serial port KISS driver" 2 tristate "Serial port KISS driver"
3 depends on AX25 3 depends on AX25 && TTY
4 select CRC16 4 select CRC16
5 ---help--- 5 ---help---
6 KISS is a protocol used for the exchange of data between a computer 6 KISS is a protocol used for the exchange of data between a computer
@@ -18,7 +18,7 @@ config MKISS
18 18
19config 6PACK 19config 6PACK
20 tristate "Serial port 6PACK driver" 20 tristate "Serial port 6PACK driver"
21 depends on AX25 21 depends on AX25 && TTY
22 ---help--- 22 ---help---
23 6pack is a transmission protocol for the data exchange between your 23 6pack is a transmission protocol for the data exchange between your
24 PC and your TNC (the Terminal Node Controller acts as a kind of 24 PC and your TNC (the Terminal Node Controller acts as a kind of
diff --git a/drivers/net/irda/Kconfig b/drivers/net/irda/Kconfig
index 595205406d73..e1454cdec14b 100644
--- a/drivers/net/irda/Kconfig
+++ b/drivers/net/irda/Kconfig
@@ -5,7 +5,7 @@ comment "SIR device drivers"
5 5
6config IRTTY_SIR 6config IRTTY_SIR
7 tristate "IrTTY (uses Linux serial driver)" 7 tristate "IrTTY (uses Linux serial driver)"
8 depends on IRDA 8 depends on IRDA && TTY
9 help 9 help
10 Say Y here if you want to build support for the IrTTY line 10 Say Y here if you want to build support for the IrTTY line
11 discipline. To compile it as a module, choose M here: the module 11 discipline. To compile it as a module, choose M here: the module
diff --git a/drivers/net/ppp/Kconfig b/drivers/net/ppp/Kconfig
index 872df3ef07a6..3d9ef4f1e600 100644
--- a/drivers/net/ppp/Kconfig
+++ b/drivers/net/ppp/Kconfig
@@ -147,6 +147,7 @@ config PPPOL2TP
147 Support for PPP-over-L2TP socket family. L2TP is a protocol 147 Support for PPP-over-L2TP socket family. L2TP is a protocol
148 used by ISPs and enterprises to tunnel PPP traffic over UDP 148 used by ISPs and enterprises to tunnel PPP traffic over UDP
149 tunnels. L2TP is replacing PPTP for VPN uses. 149 tunnels. L2TP is replacing PPTP for VPN uses.
150if TTY
150 151
151config PPP_ASYNC 152config PPP_ASYNC
152 tristate "PPP support for async serial ports" 153 tristate "PPP support for async serial ports"
@@ -172,4 +173,6 @@ config PPP_SYNC_TTY
172 173
173 To compile this driver as a module, choose M here. 174 To compile this driver as a module, choose M here.
174 175
176endif # TTY
177
175endif # PPP 178endif # PPP
diff --git a/drivers/net/slip/Kconfig b/drivers/net/slip/Kconfig
index 211b160e4e9c..48e68714eef3 100644
--- a/drivers/net/slip/Kconfig
+++ b/drivers/net/slip/Kconfig
@@ -4,6 +4,7 @@
4 4
5config SLIP 5config SLIP
6 tristate "SLIP (serial line) support" 6 tristate "SLIP (serial line) support"
7 depends on TTY
7 ---help--- 8 ---help---
8 Say Y if you intend to use SLIP or CSLIP (compressed SLIP) to 9 Say Y if you intend to use SLIP or CSLIP (compressed SLIP) to
9 connect to your Internet service provider or to connect to some 10 connect to your Internet service provider or to connect to some
diff --git a/drivers/net/usb/Kconfig b/drivers/net/usb/Kconfig
index ef976215b649..bd33153261ce 100644
--- a/drivers/net/usb/Kconfig
+++ b/drivers/net/usb/Kconfig
@@ -445,7 +445,7 @@ config USB_NET_QMI_WWAN
445 445
446config USB_HSO 446config USB_HSO
447 tristate "Option USB High Speed Mobile Devices" 447 tristate "Option USB High Speed Mobile Devices"
448 depends on USB && RFKILL 448 depends on USB && RFKILL && TTY
449 default n 449 default n
450 help 450 help
451 Choose this option if you have an Option HSDPA/HSUPA card. 451 Choose this option if you have an Option HSDPA/HSUPA card.
@@ -493,7 +493,7 @@ config USB_SIERRA_NET
493 493
494config USB_VL600 494config USB_VL600
495 tristate "LG VL600 modem dongle" 495 tristate "LG VL600 modem dongle"
496 depends on USB_NET_CDCETHER 496 depends on USB_NET_CDCETHER && TTY
497 select USB_ACM 497 select USB_ACM
498 help 498 help
499 Select this if you want to use an LG Electronics 4G/LTE usb modem 499 Select this if you want to use an LG Electronics 4G/LTE usb modem
diff --git a/drivers/net/wan/Kconfig b/drivers/net/wan/Kconfig
index d58431e99f73..61eb8994b34f 100644
--- a/drivers/net/wan/Kconfig
+++ b/drivers/net/wan/Kconfig
@@ -429,7 +429,7 @@ config LAPBETHER
429 429
430config X25_ASY 430config X25_ASY
431 tristate "X.25 async driver (EXPERIMENTAL)" 431 tristate "X.25 async driver (EXPERIMENTAL)"
432 depends on LAPB && X25 432 depends on LAPB && X25 && TTY
433 ---help--- 433 ---help---
434 Send and receive X.25 frames over regular asynchronous serial 434 Send and receive X.25 frames over regular asynchronous serial
435 lines such as telephone lines equipped with ordinary modems. 435 lines such as telephone lines equipped with ordinary modems.
diff --git a/drivers/pps/clients/Kconfig b/drivers/pps/clients/Kconfig
index 445197d4a8c4..6efd9b60d8ff 100644
--- a/drivers/pps/clients/Kconfig
+++ b/drivers/pps/clients/Kconfig
@@ -17,7 +17,7 @@ config PPS_CLIENT_KTIMER
17 17
18config PPS_CLIENT_LDISC 18config PPS_CLIENT_LDISC
19 tristate "PPS line discipline" 19 tristate "PPS line discipline"
20 depends on PPS 20 depends on PPS && TTY
21 help 21 help
22 If you say yes here you get support for a PPS source connected 22 If you say yes here you get support for a PPS source connected
23 with the CD (Carrier Detect) pin of your serial port. 23 with the CD (Carrier Detect) pin of your serial port.
diff --git a/drivers/s390/char/Kconfig b/drivers/s390/char/Kconfig
index 2c9a776bd63c..71bf959732fe 100644
--- a/drivers/s390/char/Kconfig
+++ b/drivers/s390/char/Kconfig
@@ -11,7 +11,7 @@ config TN3270
11config TN3270_TTY 11config TN3270_TTY
12 def_tristate y 12 def_tristate y
13 prompt "Support for tty input/output on 3270 terminals" 13 prompt "Support for tty input/output on 3270 terminals"
14 depends on TN3270 14 depends on TN3270 && TTY
15 help 15 help
16 Include support for using an IBM 3270 terminal as a Linux tty. 16 Include support for using an IBM 3270 terminal as a Linux tty.
17 17
@@ -33,7 +33,7 @@ config TN3270_CONSOLE
33config TN3215 33config TN3215
34 def_bool y 34 def_bool y
35 prompt "Support for 3215 line mode terminal" 35 prompt "Support for 3215 line mode terminal"
36 depends on CCW 36 depends on CCW && TTY
37 help 37 help
38 Include support for IBM 3215 line-mode terminals. 38 Include support for IBM 3215 line-mode terminals.
39 39
@@ -51,7 +51,7 @@ config CCW_CONSOLE
51config SCLP_TTY 51config SCLP_TTY
52 def_bool y 52 def_bool y
53 prompt "Support for SCLP line mode terminal" 53 prompt "Support for SCLP line mode terminal"
54 depends on S390 54 depends on S390 && TTY
55 help 55 help
56 Include support for IBM SCLP line-mode terminals. 56 Include support for IBM SCLP line-mode terminals.
57 57
@@ -66,7 +66,7 @@ config SCLP_CONSOLE
66config SCLP_VT220_TTY 66config SCLP_VT220_TTY
67 def_bool y 67 def_bool y
68 prompt "Support for SCLP VT220-compatible terminal" 68 prompt "Support for SCLP VT220-compatible terminal"
69 depends on S390 69 depends on S390 && TTY
70 help 70 help
71 Include support for an IBM SCLP VT220-compatible terminal. 71 Include support for an IBM SCLP VT220-compatible terminal.
72 72
diff --git a/drivers/staging/ccg/Kconfig b/drivers/staging/ccg/Kconfig
index 8997a8c757aa..7ed5bc6caadb 100644
--- a/drivers/staging/ccg/Kconfig
+++ b/drivers/staging/ccg/Kconfig
@@ -2,7 +2,7 @@ if USB_GADGET
2 2
3config USB_G_CCG 3config USB_G_CCG
4 tristate "Configurable Composite Gadget (STAGING)" 4 tristate "Configurable Composite Gadget (STAGING)"
5 depends on STAGING && BLOCK && NET && !USB_ZERO && !USB_ZERO_HNPTEST && !USB_AUDIO && !GADGET_UAC1 && !USB_ETH && !USB_ETH_RNDIS && !USB_ETH_EEM && !USB_G_NCM && !USB_GADGETFS && !USB_FUNCTIONFS && !USB_FUNCTIONFS_ETH && !USB_FUNCTIONFS_RNDIS && !USB_FUNCTIONFS_GENERIC && !USB_FILE_STORAGE && !USB_FILE_STORAGE_TEST && !USB_MASS_STORAGE && !USB_G_SERIAL && !USB_MIDI_GADGET && !USB_G_PRINTER && !USB_CDC_COMPOSITE && !USB_G_NOKIA && !USB_G_ACM_MS && !USB_G_MULTI && !USB_G_MULTI_RNDIS && !USB_G_MULTI_CDC && !USB_G_HID && !USB_G_DBGP && !USB_G_WEBCAM 5 depends on STAGING && BLOCK && NET && !USB_ZERO && !USB_ZERO_HNPTEST && !USB_AUDIO && !GADGET_UAC1 && !USB_ETH && !USB_ETH_RNDIS && !USB_ETH_EEM && !USB_G_NCM && !USB_GADGETFS && !USB_FUNCTIONFS && !USB_FUNCTIONFS_ETH && !USB_FUNCTIONFS_RNDIS && !USB_FUNCTIONFS_GENERIC && !USB_FILE_STORAGE && !USB_FILE_STORAGE_TEST && !USB_MASS_STORAGE && !USB_G_SERIAL && !USB_MIDI_GADGET && !USB_G_PRINTER && !USB_CDC_COMPOSITE && !USB_G_NOKIA && !USB_G_ACM_MS && !USB_G_MULTI && !USB_G_MULTI_RNDIS && !USB_G_MULTI_CDC && !USB_G_HID && !USB_G_DBGP && !USB_G_WEBCAM && TTY
6 help 6 help
7 The Configurable Composite Gadget supports multiple USB 7 The Configurable Composite Gadget supports multiple USB
8 functions: acm, mass storage, rndis and FunctionFS. 8 functions: acm, mass storage, rndis and FunctionFS.
diff --git a/drivers/staging/dgrp/Kconfig b/drivers/staging/dgrp/Kconfig
index 39f4bb65ec83..e4c41552923a 100644
--- a/drivers/staging/dgrp/Kconfig
+++ b/drivers/staging/dgrp/Kconfig
@@ -1,7 +1,7 @@
1config DGRP 1config DGRP
2 tristate "Digi Realport driver" 2 tristate "Digi Realport driver"
3 default n 3 default n
4 depends on SYSFS 4 depends on SYSFS && TTY
5 ---help--- 5 ---help---
6 Support for Digi Realport devices. These devices allow you to 6 Support for Digi Realport devices. These devices allow you to
7 access remote serial ports as if they are local tty devices. This 7 access remote serial ports as if they are local tty devices. This
diff --git a/drivers/staging/fwserial/Kconfig b/drivers/staging/fwserial/Kconfig
index 580406cb1808..9cdb3cdc4b66 100644
--- a/drivers/staging/fwserial/Kconfig
+++ b/drivers/staging/fwserial/Kconfig
@@ -1,6 +1,6 @@
1config FIREWIRE_SERIAL 1config FIREWIRE_SERIAL
2 tristate "TTY over Firewire" 2 tristate "TTY over Firewire"
3 depends on FIREWIRE 3 depends on FIREWIRE && TTY
4 help 4 help
5 This enables TTY over IEEE 1394, providing high-speed serial 5 This enables TTY over IEEE 1394, providing high-speed serial
6 connectivity to cabled peers. 6 connectivity to cabled peers.
diff --git a/drivers/staging/sb105x/Kconfig b/drivers/staging/sb105x/Kconfig
index 3d0d0eb95b8c..6a2e1b78e844 100644
--- a/drivers/staging/sb105x/Kconfig
+++ b/drivers/staging/sb105x/Kconfig
@@ -1,7 +1,7 @@
1config SB105X 1config SB105X
2 tristate "SystemBase PCI Multiport UART" 2 tristate "SystemBase PCI Multiport UART"
3 select SERIAL_CORE 3 select SERIAL_CORE
4 depends on PCI && BROKEN 4 depends on PCI && TTY && BROKEN
5 help 5 help
6 A driver for the SystemBase Multi-2/PCI serial card 6 A driver for the SystemBase Multi-2/PCI serial card
7 7
diff --git a/drivers/tty/Kconfig b/drivers/tty/Kconfig
index 0ecf22b6a38e..a79fd8ebd56e 100644
--- a/drivers/tty/Kconfig
+++ b/drivers/tty/Kconfig
@@ -1,3 +1,14 @@
1config TTY
2 bool "Enable TTY" if EXPERT
3 default y
4 ---help---
5 Allows you to remove TTY support which can save space, and
6 blocks features that require TTY from inclusion in the kernel.
7 TTY is required for any text terminals or serial port
8 communication. Most users should leave this enabled.
9
10if TTY
11
1config VT 12config VT
2 bool "Virtual terminal" if EXPERT 13 bool "Virtual terminal" if EXPERT
3 depends on !S390 && !UML 14 depends on !S390 && !UML
@@ -388,3 +399,5 @@ config PPC_EARLY_DEBUG_EHV_BC_HANDLE
388 If the number you specify is not a valid byte channel handle, then 399 If the number you specify is not a valid byte channel handle, then
389 there simply will be no early console output. This is true also 400 there simply will be no early console output. This is true also
390 if you don't boot under a hypervisor at all. 401 if you don't boot under a hypervisor at all.
402
403endif # TTY
diff --git a/drivers/tty/Makefile b/drivers/tty/Makefile
index 2953059530e4..df5663d0d55e 100644
--- a/drivers/tty/Makefile
+++ b/drivers/tty/Makefile
@@ -1,4 +1,4 @@
1obj-y += tty_io.o n_tty.o tty_ioctl.o tty_ldisc.o \ 1obj-$(CONFIG_TTY) += tty_io.o n_tty.o tty_ioctl.o tty_ldisc.o \
2 tty_buffer.o tty_port.o tty_mutex.o 2 tty_buffer.o tty_port.o tty_mutex.o
3obj-$(CONFIG_LEGACY_PTYS) += pty.o 3obj-$(CONFIG_LEGACY_PTYS) += pty.o
4obj-$(CONFIG_UNIX98_PTYS) += pty.o 4obj-$(CONFIG_UNIX98_PTYS) += pty.o
diff --git a/drivers/tty/hvc/Kconfig b/drivers/tty/hvc/Kconfig
index f47b734c6a7a..8902f9b4df71 100644
--- a/drivers/tty/hvc/Kconfig
+++ b/drivers/tty/hvc/Kconfig
@@ -1,3 +1,5 @@
1if TTY
2
1config HVC_DRIVER 3config HVC_DRIVER
2 bool 4 bool
3 help 5 help
@@ -119,3 +121,4 @@ config HVCS
119 which will also be compiled when this driver is built as a 121 which will also be compiled when this driver is built as a
120 module. 122 module.
121 123
124endif # TTY
diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index 2dc429357fe3..e9aeccdfbe35 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -2,6 +2,8 @@
2# Serial device configuration 2# Serial device configuration
3# 3#
4 4
5if TTY
6
5menu "Serial drivers" 7menu "Serial drivers"
6 depends on HAS_IOMEM 8 depends on HAS_IOMEM
7 9
@@ -1483,3 +1485,5 @@ config SERIAL_RP2_NR_UARTS
1483 need to be increased. 1485 need to be increased.
1484 1486
1485endmenu 1487endmenu
1488
1489endif # TTY
diff --git a/drivers/usb/class/Kconfig b/drivers/usb/class/Kconfig
index 2519e320098f..316aac8e4ca1 100644
--- a/drivers/usb/class/Kconfig
+++ b/drivers/usb/class/Kconfig
@@ -6,7 +6,7 @@ comment "USB Device Class drivers"
6 6
7config USB_ACM 7config USB_ACM
8 tristate "USB Modem (CDC ACM) support" 8 tristate "USB Modem (CDC ACM) support"
9 depends on USB 9 depends on USB && TTY
10 ---help--- 10 ---help---
11 This driver supports USB modems and ISDN adapters which support the 11 This driver supports USB modems and ISDN adapters which support the
12 Communication Device Class Abstract Control Model interface. 12 Communication Device Class Abstract Control Model interface.
diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index 14625fd2cecd..a1bd951f9cb7 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -750,6 +750,7 @@ config USB_GADGET_TARGET
750 750
751config USB_G_SERIAL 751config USB_G_SERIAL
752 tristate "Serial Gadget (with CDC ACM and CDC OBEX support)" 752 tristate "Serial Gadget (with CDC ACM and CDC OBEX support)"
753 depends on TTY
753 select USB_LIBCOMPOSITE 754 select USB_LIBCOMPOSITE
754 help 755 help
755 The Serial Gadget talks to the Linux-USB generic serial driver. 756 The Serial Gadget talks to the Linux-USB generic serial driver.
@@ -799,6 +800,8 @@ config USB_G_PRINTER
799 For more information, see Documentation/usb/gadget_printer.txt 800 For more information, see Documentation/usb/gadget_printer.txt
800 which includes sample code for accessing the device file. 801 which includes sample code for accessing the device file.
801 802
803if TTY
804
802config USB_CDC_COMPOSITE 805config USB_CDC_COMPOSITE
803 tristate "CDC Composite Device (Ethernet and ACM)" 806 tristate "CDC Composite Device (Ethernet and ACM)"
804 depends on NET 807 depends on NET
@@ -879,6 +882,8 @@ config USB_G_MULTI_CDC
879 882
880 If unsure, say "y". 883 If unsure, say "y".
881 884
885endif # TTY
886
882config USB_G_HID 887config USB_G_HID
883 tristate "HID Gadget" 888 tristate "HID Gadget"
884 select USB_LIBCOMPOSITE 889 select USB_LIBCOMPOSITE
@@ -895,6 +900,7 @@ config USB_G_HID
895# Standalone / single function gadgets 900# Standalone / single function gadgets
896config USB_G_DBGP 901config USB_G_DBGP
897 tristate "EHCI Debug Device Gadget" 902 tristate "EHCI Debug Device Gadget"
903 depends on TTY
898 select USB_LIBCOMPOSITE 904 select USB_LIBCOMPOSITE
899 help 905 help
900 This gadget emulates an EHCI Debug device. This is useful when you want 906 This gadget emulates an EHCI Debug device. This is useful when you want
diff --git a/drivers/usb/serial/Kconfig b/drivers/usb/serial/Kconfig
index 76f462241738..d8e35fe30b0c 100644
--- a/drivers/usb/serial/Kconfig
+++ b/drivers/usb/serial/Kconfig
@@ -4,7 +4,7 @@
4 4
5menuconfig USB_SERIAL 5menuconfig USB_SERIAL
6 tristate "USB Serial Converter support" 6 tristate "USB Serial Converter support"
7 depends on USB 7 depends on USB && TTY
8 ---help--- 8 ---help---
9 Say Y here if you have a USB device that provides normal serial 9 Say Y here if you have a USB device that provides normal serial
10 ports, or acts like a serial device, and you want to connect it to 10 ports, or acts like a serial device, and you want to connect it to
diff --git a/fs/proc/Makefile b/fs/proc/Makefile
index 981b05601931..712f24db9600 100644
--- a/fs/proc/Makefile
+++ b/fs/proc/Makefile
@@ -8,7 +8,8 @@ proc-y := nommu.o task_nommu.o
8proc-$(CONFIG_MMU) := mmu.o task_mmu.o 8proc-$(CONFIG_MMU) := mmu.o task_mmu.o
9 9
10proc-y += inode.o root.o base.o generic.o array.o \ 10proc-y += inode.o root.o base.o generic.o array.o \
11 proc_tty.o fd.o 11 fd.o
12proc-$(CONFIG_TTY) += proc_tty.o
12proc-y += cmdline.o 13proc-y += cmdline.o
13proc-y += consoles.o 14proc-y += consoles.o
14proc-y += cpuinfo.o 15proc-y += cpuinfo.o
diff --git a/include/linux/console.h b/include/linux/console.h
index dedb082fe50f..3b709da1786e 100644
--- a/include/linux/console.h
+++ b/include/linux/console.h
@@ -157,7 +157,12 @@ extern int is_console_locked(void);
157extern int braille_register_console(struct console *, int index, 157extern int braille_register_console(struct console *, int index,
158 char *console_options, char *braille_options); 158 char *console_options, char *braille_options);
159extern int braille_unregister_console(struct console *); 159extern int braille_unregister_console(struct console *);
160#ifdef CONFIG_TTY
160extern void console_sysfs_notify(void); 161extern void console_sysfs_notify(void);
162#else
163static inline void console_sysfs_notify(void)
164{ }
165#endif
161extern bool console_suspend_enabled; 166extern bool console_suspend_enabled;
162 167
163/* Suspend and resume console messages over PM events */ 168/* Suspend and resume console messages over PM events */
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
index 32676b35d2f5..3c22538aab66 100644
--- a/include/linux/proc_fs.h
+++ b/include/linux/proc_fs.h
@@ -127,7 +127,12 @@ extern void pid_ns_release_proc(struct pid_namespace *ns);
127 * proc_tty.c 127 * proc_tty.c
128 */ 128 */
129struct tty_driver; 129struct tty_driver;
130#ifdef CONFIG_TTY
130extern void proc_tty_init(void); 131extern void proc_tty_init(void);
132#else
133static inline void proc_tty_init(void)
134{ }
135#endif
131extern void proc_tty_register_driver(struct tty_driver *driver); 136extern void proc_tty_register_driver(struct tty_driver *driver);
132extern void proc_tty_unregister_driver(struct tty_driver *driver); 137extern void proc_tty_unregister_driver(struct tty_driver *driver);
133 138
diff --git a/include/linux/tty.h b/include/linux/tty.h
index f89acd1ed6d3..c75d886b0307 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -318,11 +318,43 @@ struct tty_file_private {
318 318
319#define TTY_WRITE_FLUSH(tty) tty_write_flush((tty)) 319#define TTY_WRITE_FLUSH(tty) tty_write_flush((tty))
320 320
321#ifdef CONFIG_TTY
322extern void console_init(void);
323extern void tty_kref_put(struct tty_struct *tty);
324extern struct pid *tty_get_pgrp(struct tty_struct *tty);
325extern void tty_vhangup_self(void);
326extern void disassociate_ctty(int priv);
327extern dev_t tty_devnum(struct tty_struct *tty);
328extern void proc_clear_tty(struct task_struct *p);
329extern struct tty_struct *get_current_tty(void);
330/* tty_io.c */
331extern int __init tty_init(void);
332#else
333static inline void console_init(void)
334{ }
335static inline void tty_kref_put(struct tty_struct *tty)
336{ }
337static inline struct pid *tty_get_pgrp(struct tty_struct *tty)
338{ return NULL; }
339static inline void tty_vhangup_self(void)
340{ }
341static inline void disassociate_ctty(int priv)
342{ }
343static inline dev_t tty_devnum(struct tty_struct *tty)
344{ return 0; }
345static inline void proc_clear_tty(struct task_struct *p)
346{ }
347static inline struct tty_struct *get_current_tty(void)
348{ return NULL; }
349/* tty_io.c */
350static inline int __init tty_init(void)
351{ return 0; }
352#endif
353
321extern void tty_write_flush(struct tty_struct *); 354extern void tty_write_flush(struct tty_struct *);
322 355
323extern struct ktermios tty_std_termios; 356extern struct ktermios tty_std_termios;
324 357
325extern void console_init(void);
326extern int vcs_init(void); 358extern int vcs_init(void);
327 359
328extern struct class *tty_class; 360extern struct class *tty_class;
@@ -342,7 +374,6 @@ static inline struct tty_struct *tty_kref_get(struct tty_struct *tty)
342 kref_get(&tty->kref); 374 kref_get(&tty->kref);
343 return tty; 375 return tty;
344} 376}
345extern void tty_kref_put(struct tty_struct *tty);
346 377
347extern int tty_paranoia_check(struct tty_struct *tty, struct inode *inode, 378extern int tty_paranoia_check(struct tty_struct *tty, struct inode *inode,
348 const char *routine); 379 const char *routine);
@@ -374,18 +405,15 @@ extern void tty_driver_remove_tty(struct tty_driver *driver,
374 struct tty_struct *tty); 405 struct tty_struct *tty);
375extern void tty_free_termios(struct tty_struct *tty); 406extern void tty_free_termios(struct tty_struct *tty);
376extern int is_current_pgrp_orphaned(void); 407extern int is_current_pgrp_orphaned(void);
377extern struct pid *tty_get_pgrp(struct tty_struct *tty);
378extern int is_ignored(int sig); 408extern int is_ignored(int sig);
379extern int tty_signal(int sig, struct tty_struct *tty); 409extern int tty_signal(int sig, struct tty_struct *tty);
380extern void tty_hangup(struct tty_struct *tty); 410extern void tty_hangup(struct tty_struct *tty);
381extern void tty_vhangup(struct tty_struct *tty); 411extern void tty_vhangup(struct tty_struct *tty);
382extern void tty_vhangup_locked(struct tty_struct *tty); 412extern void tty_vhangup_locked(struct tty_struct *tty);
383extern void tty_vhangup_self(void);
384extern void tty_unhangup(struct file *filp); 413extern void tty_unhangup(struct file *filp);
385extern int tty_hung_up_p(struct file *filp); 414extern int tty_hung_up_p(struct file *filp);
386extern void do_SAK(struct tty_struct *tty); 415extern void do_SAK(struct tty_struct *tty);
387extern void __do_SAK(struct tty_struct *tty); 416extern void __do_SAK(struct tty_struct *tty);
388extern void disassociate_ctty(int priv);
389extern void no_tty(void); 417extern void no_tty(void);
390extern void tty_flush_to_ldisc(struct tty_struct *tty); 418extern void tty_flush_to_ldisc(struct tty_struct *tty);
391extern void tty_buffer_free_all(struct tty_port *port); 419extern void tty_buffer_free_all(struct tty_port *port);
@@ -415,9 +443,6 @@ extern long tty_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
415extern int tty_mode_ioctl(struct tty_struct *tty, struct file *file, 443extern int tty_mode_ioctl(struct tty_struct *tty, struct file *file,
416 unsigned int cmd, unsigned long arg); 444 unsigned int cmd, unsigned long arg);
417extern int tty_perform_flush(struct tty_struct *tty, unsigned long arg); 445extern int tty_perform_flush(struct tty_struct *tty, unsigned long arg);
418extern dev_t tty_devnum(struct tty_struct *tty);
419extern void proc_clear_tty(struct task_struct *p);
420extern struct tty_struct *get_current_tty(void);
421extern void tty_default_fops(struct file_operations *fops); 446extern void tty_default_fops(struct file_operations *fops);
422extern struct tty_struct *alloc_tty_struct(void); 447extern struct tty_struct *alloc_tty_struct(void);
423extern int tty_alloc_file(struct file *file); 448extern int tty_alloc_file(struct file *file);
@@ -543,9 +568,6 @@ static inline int tty_audit_push_task(struct task_struct *tsk,
543} 568}
544#endif 569#endif
545 570
546/* tty_io.c */
547extern int __init tty_init(void);
548
549/* tty_ioctl.c */ 571/* tty_ioctl.c */
550extern int n_tty_ioctl_helper(struct tty_struct *tty, struct file *file, 572extern int n_tty_ioctl_helper(struct tty_struct *tty, struct file *file,
551 unsigned int cmd, unsigned long arg); 573 unsigned int cmd, unsigned long arg);
diff --git a/lib/Kconfig.kgdb b/lib/Kconfig.kgdb
index 43cb93fa2651..30894fab84d6 100644
--- a/lib/Kconfig.kgdb
+++ b/lib/Kconfig.kgdb
@@ -22,6 +22,7 @@ config KGDB_SERIAL_CONSOLE
22 tristate "KGDB: use kgdb over the serial console" 22 tristate "KGDB: use kgdb over the serial console"
23 select CONSOLE_POLL 23 select CONSOLE_POLL
24 select MAGIC_SYSRQ 24 select MAGIC_SYSRQ
25 depends on TTY
25 default y 26 default y
26 help 27 help
27 Share a serial console with kgdb. Sysrq-g must be used 28 Share a serial console with kgdb. Sysrq-g must be used
diff --git a/net/bluetooth/rfcomm/Kconfig b/net/bluetooth/rfcomm/Kconfig
index 22e718b554e4..18d352ea2bc7 100644
--- a/net/bluetooth/rfcomm/Kconfig
+++ b/net/bluetooth/rfcomm/Kconfig
@@ -12,6 +12,7 @@ config BT_RFCOMM
12config BT_RFCOMM_TTY 12config BT_RFCOMM_TTY
13 bool "RFCOMM TTY support" 13 bool "RFCOMM TTY support"
14 depends on BT_RFCOMM 14 depends on BT_RFCOMM
15 depends on TTY
15 help 16 help
16 This option enables TTY emulation support for RFCOMM channels. 17 This option enables TTY emulation support for RFCOMM channels.
17 18
diff --git a/net/irda/ircomm/Kconfig b/net/irda/ircomm/Kconfig
index 2d4c6b4a78d6..19492c1707b7 100644
--- a/net/irda/ircomm/Kconfig
+++ b/net/irda/ircomm/Kconfig
@@ -1,6 +1,6 @@
1config IRCOMM 1config IRCOMM
2 tristate "IrCOMM protocol" 2 tristate "IrCOMM protocol"
3 depends on IRDA 3 depends on IRDA && TTY
4 help 4 help
5 Say Y here if you want to build support for the IrCOMM protocol. 5 Say Y here if you want to build support for the IrCOMM protocol.
6 To compile it as modules, choose M here: the modules will be 6 To compile it as modules, choose M here: the modules will be
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index 3a847828932a..298822c0ad65 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -34,7 +34,7 @@ config SND_SOC_ALL_CODECS
34 select SND_SOC_CS42L73 if I2C 34 select SND_SOC_CS42L73 if I2C
35 select SND_SOC_CS4270 if I2C 35 select SND_SOC_CS4270 if I2C
36 select SND_SOC_CS4271 if SND_SOC_I2C_AND_SPI 36 select SND_SOC_CS4271 if SND_SOC_I2C_AND_SPI
37 select SND_SOC_CX20442 37 select SND_SOC_CX20442 if TTY
38 select SND_SOC_DA7210 if I2C 38 select SND_SOC_DA7210 if I2C
39 select SND_SOC_DA732X if I2C 39 select SND_SOC_DA732X if I2C
40 select SND_SOC_DA9055 if I2C 40 select SND_SOC_DA9055 if I2C
@@ -236,6 +236,7 @@ config SND_SOC_CS4271
236 236
237config SND_SOC_CX20442 237config SND_SOC_CX20442
238 tristate 238 tristate
239 depends on TTY
239 240
240config SND_SOC_JZ4740_CODEC 241config SND_SOC_JZ4740_CODEC
241 select REGMAP_MMIO 242 select REGMAP_MMIO