Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Joe Millenbach and committed by
Greg Kroah-Hartman
4f73bc4d a1bf9584

+165 -47
+2
arch/alpha/Kconfig
··· 125 125 126 126 config ALPHA_GENERIC 127 127 bool "Generic" 128 + depends on TTY 128 129 help 129 130 A generic kernel will run on all supported Alpha hardware. 130 131 ··· 492 491 493 492 config ALPHA_SRM 494 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 + depends on TTY 495 495 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 496 ---help--- 497 497 There are two different types of booting firmware on Alphas: SRM,
+1
arch/ia64/hp/sim/Kconfig
··· 8 8 9 9 config HP_SIMSERIAL 10 10 bool "Simulated serial driver support" 11 + depends on TTY 11 12 12 13 config HP_SIMSERIAL_CONSOLE 13 14 bool "Console for HP simulator"
+1 -1
arch/m68k/Kconfig.devices
··· 41 41 42 42 config NFCON 43 43 tristate "NatFeat console driver" 44 - depends on NATFEAT 44 + depends on TTY && NATFEAT 45 45 help 46 46 Say Y to include support for the ARAnyM NatFeat console driver 47 47 which allows the console output to be redirected to the stderr
+1
arch/parisc/Kconfig
··· 23 23 select HAVE_MOD_ARCH_SPECIFIC 24 24 select MODULES_USE_ELF_RELA 25 25 select CLONE_BACKWARDS 26 + select TTY # Needed for pdc_cons.c 26 27 27 28 help 28 29 The PA-RISC microprocessor is designed by Hewlett-Packard and used
+1
arch/tile/Kconfig
··· 121 121 def_bool n 122 122 123 123 config HVC_TILE 124 + depends on TTY 124 125 select HVC_DRIVER 125 126 def_bool y 126 127
+1
arch/um/Kconfig.common
··· 12 12 select GENERIC_CPU_DEVICES 13 13 select GENERIC_IO 14 14 select GENERIC_CLOCKEVENTS 15 + select TTY # Needed for line.c 15 16 16 17 config MMU 17 18 bool
+1
arch/xtensa/Kconfig
··· 132 132 133 133 config XTENSA_PLATFORM_ISS 134 134 bool "ISS" 135 + depends on TTY 135 136 select XTENSA_CALIBRATE_CCOUNT 136 137 select SERIAL_CONSOLE 137 138 select XTENSA_ISS_NETWORK
+1
drivers/bluetooth/Kconfig
··· 26 26 27 27 config BT_HCIUART 28 28 tristate "HCI UART driver" 29 + depends on TTY 29 30 help 30 31 Bluetooth HCI UART driver. 31 32 This driver is required if you want to use Bluetooth devices with
+4 -3
drivers/char/Kconfig
··· 53 53 54 54 config TTY_PRINTK 55 55 bool "TTY driver to output user messages via printk" 56 - depends on EXPERT 56 + depends on EXPERT && TTY 57 57 default n 58 58 ---help--- 59 59 If you say Y here, the support for writing user messages (i.e. ··· 159 159 160 160 config VIRTIO_CONSOLE 161 161 tristate "Virtio console" 162 - depends on VIRTIO 162 + depends on VIRTIO && TTY 163 163 select HVC_DRIVER 164 164 help 165 165 Virtio console for use with lguest and other hypervisors. ··· 392 392 393 393 config R3964 394 394 tristate "Siemens R3964 line discipline" 395 + depends on TTY 395 396 ---help--- 396 397 This driver allows synchronous communication with devices using the 397 398 Siemens R3964 packet protocol. Unless you are dealing with special ··· 440 439 441 440 config MWAVE 442 441 tristate "ACP Modem (Mwave) support" 443 - depends on X86 442 + depends on X86 && TTY 444 443 select SERIAL_8250 445 444 ---help--- 446 445 The ACP modem (Mwave) for Linux is a WinModem. It is composed of a
+2 -2
drivers/char/pcmcia/Kconfig
··· 7 7 8 8 config SYNCLINK_CS 9 9 tristate "SyncLink PC Card support" 10 - depends on PCMCIA 10 + depends on PCMCIA && TTY 11 11 help 12 12 Enable support for the SyncLink PC Card serial adapter, running 13 13 asynchronous and HDLC communications up to 512Kbps. The port is ··· 45 45 46 46 config IPWIRELESS 47 47 tristate "IPWireless 3G UMTS PCMCIA card support" 48 - depends on PCMCIA && NETDEVICES 48 + depends on PCMCIA && NETDEVICES && TTY 49 49 select PPP 50 50 help 51 51 This is a driver for 3G UMTS PCMCIA card from IPWireless company. In
+1 -1
drivers/i2c/busses/Kconfig
··· 803 803 804 804 config I2C_TAOS_EVM 805 805 tristate "TAOS evaluation module" 806 - depends on EXPERIMENTAL 806 + depends on EXPERIMENTAL && TTY 807 807 select SERIO 808 808 select SERIO_SERPORT 809 809 default n
+4
drivers/input/joystick/Kconfig
··· 132 132 133 133 source "drivers/input/joystick/iforce/Kconfig" 134 134 135 + if TTY 136 + 135 137 config JOYSTICK_WARRIOR 136 138 tristate "Logitech WingMan Warrior joystick" 137 139 select SERIO ··· 206 204 207 205 To compile this driver as a module, choose M here: the 208 206 module will be called zhenhua. 207 + 208 + endif # TTY 209 209 210 210 config JOYSTICK_DB9 211 211 tristate "Multisystem, Sega Genesis, Saturn joysticks and gamepads"
+9 -1
drivers/input/keyboard/Kconfig
··· 69 69 config KEYBOARD_ATKBD 70 70 tristate "AT keyboard" if EXPERT || !X86 71 71 default y 72 + depends on TTY 72 73 select SERIO 73 74 select SERIO_LIBPS2 74 75 select SERIO_I8042 if X86 ··· 154 153 155 154 config KEYBOARD_LKKBD 156 155 tristate "DECstation/VAXstation LK201/LK401 keyboard" 156 + depends on TTY 157 157 select SERIO 158 158 help 159 159 Say Y here if you want to use a LK201 or LK401 style serial ··· 270 268 271 269 config KEYBOARD_HIL 272 270 tristate "HP HIL keyboard/pointer support" 273 - depends on GSC || HP300 271 + depends on (GSC || HP300) && TTY 274 272 default y 275 273 select HP_SDC 276 274 select HIL_MLC ··· 402 400 403 401 config KEYBOARD_NEWTON 404 402 tristate "Newton keyboard" 403 + depends on TTY 405 404 select SERIO 406 405 help 407 406 Say Y here if you have a Newton keyboard on a serial port. ··· 482 479 To compile this driver as a module, choose M here: the 483 480 module will be called samsung-keypad. 484 481 482 + if TTY 483 + 485 484 config KEYBOARD_STOWAWAY 486 485 tristate "Stowaway keyboard" 487 486 select SERIO ··· 505 500 506 501 To compile this driver as a module, choose M here: the 507 502 module will be called sunkbd. 503 + 504 + endif # TTY 508 505 509 506 config KEYBOARD_SH_KEYSC 510 507 tristate "SuperH KEYSC keypad support" ··· 604 597 605 598 config KEYBOARD_XTKBD 606 599 tristate "XT keyboard" 600 + depends on TTY 607 601 select SERIO 608 602 help 609 603 Say Y here if you want to use the old IBM PC/XT keyboard (or
+3
drivers/input/mouse/Kconfig
··· 14 14 15 15 config MOUSE_PS2 16 16 tristate "PS/2 mouse" 17 + depends on TTY 17 18 default y 18 19 select SERIO 19 20 select SERIO_LIBPS2 ··· 139 138 140 139 config MOUSE_SERIAL 141 140 tristate "Serial mouse" 141 + depends on TTY 142 142 select SERIO 143 143 help 144 144 Say Y here if you have a serial (RS-232, COM port) mouse connected ··· 264 262 265 263 config MOUSE_VSXXXAA 266 264 tristate "DEC VSXXX-AA/GA mouse and VSXXX-AB tablet" 265 + depends on TTY 267 266 select SERIO 268 267 help 269 268 Say Y (or M) if you want to use a DEC VSXXX-AA (hockey
+1
drivers/input/serio/Kconfig
··· 4 4 config SERIO 5 5 tristate "Serial I/O support" if EXPERT || !X86 6 6 default y 7 + depends on TTY 7 8 help 8 9 Say Yes here if you have any input device that uses serial I/O to 9 10 communicate with the system. This includes the
+22
drivers/input/touchscreen/Kconfig
··· 192 192 To compile this driver as a module, choose M here: the 193 193 module will be called da9052_tsi. 194 194 195 + if TTY 196 + 195 197 config TOUCHSCREEN_DYNAPRO 196 198 tristate "Dynapro serial touchscreen" 197 199 select SERIO ··· 218 216 To compile this driver as a module, choose M here: the 219 217 module will be called hampshire. 220 218 219 + endif # TTY 220 + 221 221 config TOUCHSCREEN_EETI 222 222 tristate "EETI touchscreen panel support" 223 223 depends on I2C ··· 241 237 242 238 config TOUCHSCREEN_FUJITSU 243 239 tristate "Fujitsu serial touchscreen" 240 + depends on TTY 244 241 select SERIO 245 242 help 246 243 Say Y here if you have the Fujitsu touchscreen (such as one ··· 280 275 To compile this driver as a module, choose M here: the 281 276 module will be called s3c2410_ts. 282 277 278 + if TTY 279 + 283 280 config TOUCHSCREEN_GUNZE 284 281 tristate "Gunze AHL-51S touchscreen" 285 282 select SERIO ··· 317 310 318 311 To compile this driver as a module, choose M here: the 319 312 module will be called wacom_w8001. 313 + 314 + endif # TTY 320 315 321 316 config TOUCHSCREEN_WACOM_I2C 322 317 tristate "Wacom Tablet support (I2C)" ··· 378 369 To compile this driver as a module, choose M here: the 379 370 module will be called mms114. 380 371 372 + if TTY 373 + 381 374 config TOUCHSCREEN_MTOUCH 382 375 tristate "MicroTouch serial touchscreens" 383 376 select SERIO ··· 403 392 404 393 To compile this driver as a module, choose M here: the 405 394 module will be called inexio. 395 + 396 + endif # TTY 406 397 407 398 config TOUCHSCREEN_INTEL_MID 408 399 tristate "Intel MID platform resistive touchscreen" ··· 463 450 464 451 config TOUCHSCREEN_PENMOUNT 465 452 tristate "Penmount serial touchscreen" 453 + depends on TTY 466 454 select SERIO 467 455 help 468 456 Say Y here if you have a Penmount serial touchscreen connected to ··· 507 493 To compile this driver as a module, choose M here: the 508 494 module will be called tnetv107x-ts. 509 495 496 + if TTY 497 + 510 498 config TOUCHSCREEN_TOUCHRIGHT 511 499 tristate "Touchright serial touchscreen" 512 500 select SERIO ··· 532 516 533 517 To compile this driver as a module, choose M here: the 534 518 module will be called touchwin. 519 + 520 + endif # TTY 535 521 536 522 config TOUCHSCREEN_TI_AM335X_TSC 537 523 tristate "TI Touchscreen Interface" ··· 808 790 Say Y here if you have an EasyTouch USB Touch controller. 809 791 If unsure, say N. 810 792 793 + if TTY 794 + 811 795 config TOUCHSCREEN_TOUCHIT213 812 796 tristate "Sahara TouchIT-213 touchscreen" 813 797 select SERIO ··· 832 812 833 813 To compile this driver as a module, choose M here: the 834 814 module will be called tsc40. 815 + 816 + endif # TTY 835 817 836 818 config TOUCHSCREEN_TSC2005 837 819 tristate "TSC2005 based touchscreens"
+1 -1
drivers/ipack/devices/Kconfig
··· 1 1 config SERIAL_IPOCTAL 2 2 tristate "IndustryPack IP-OCTAL uart support" 3 - depends on IPACK_BUS 3 + depends on IPACK_BUS && TTY 4 4 help 5 5 This driver supports the IPOCTAL serial port device for the IndustryPack bus. 6 6 default n
+1
drivers/isdn/Kconfig
··· 22 22 23 23 menuconfig ISDN_I4L 24 24 tristate "Old ISDN4Linux (deprecated)" 25 + depends on TTY 25 26 ---help--- 26 27 This driver allows you to use an ISDN adapter for networking 27 28 connections and as dialin/out device. The isdn-tty's have a built
+1
drivers/isdn/capi/Kconfig
··· 18 18 19 19 config ISDN_CAPI_MIDDLEWARE 20 20 bool "CAPI2.0 Middleware support" 21 + depends on TTY 21 22 help 22 23 This option will enhance the capabilities of the /dev/capi20 23 24 interface. It will provide a means of moving a data connection,
+1
drivers/isdn/gigaset/Kconfig
··· 1 1 menuconfig ISDN_DRV_GIGASET 2 2 tristate "Siemens Gigaset support" 3 + depends on TTY 3 4 select CRC_CCITT 4 5 select BITREVERSE 5 6 help
+1
drivers/isdn/hardware/mISDN/Kconfig
··· 76 76 tristate "Support for NETJet cards" 77 77 depends on MISDN 78 78 depends on PCI 79 + depends on TTY 79 80 select MISDN_IPAC 80 81 select ISDN_HDLC 81 82 select ISDN_I4L
+1 -1
drivers/lguest/Kconfig
··· 1 1 config LGUEST 2 2 tristate "Linux hypervisor example code" 3 - depends on X86_32 && EXPERIMENTAL && EVENTFD 3 + depends on X86_32 && EXPERIMENTAL && EVENTFD && TTY 4 4 select HVC_DRIVER 5 5 ---help--- 6 6 This is a very simple module which allows you to run
+1 -1
drivers/media/radio/wl128x/Kconfig
··· 4 4 menu "Texas Instruments WL128x FM driver (ST based)" 5 5 config RADIO_WL128X 6 6 tristate "Texas Instruments WL128x FM Radio" 7 - depends on VIDEO_V4L2 && RFKILL && GPIOLIB 7 + depends on VIDEO_V4L2 && RFKILL && GPIOLIB && TTY 8 8 select TI_ST if NET 9 9 help 10 10 Choose Y here if you have this FM radio chip.
+1 -1
drivers/misc/Kconfig
··· 127 127 128 128 config INTEL_MID_PTI 129 129 tristate "Parallel Trace Interface for MIPI P1149.7 cJTAG standard" 130 - depends on PCI 130 + depends on PCI && TTY 131 131 default n 132 132 help 133 133 The PTI (Parallel Trace Interface) driver directs
+1 -1
drivers/misc/ti-st/Kconfig
··· 5 5 menu "Texas Instruments shared transport line discipline" 6 6 config TI_ST 7 7 tristate "Shared transport core driver" 8 - depends on NET && GPIOLIB 8 + depends on NET && GPIOLIB && TTY 9 9 select FW_LOADER 10 10 help 11 11 This enables the shared transport core driver for TI
+1
drivers/mmc/card/Kconfig
··· 52 52 53 53 config SDIO_UART 54 54 tristate "SDIO UART/GPS class support" 55 + depends on TTY 55 56 help 56 57 SDIO function driver for SDIO cards that implements the UART 57 58 class, as well as the GPS class which appears like a UART.
+1 -1
drivers/net/caif/Kconfig
··· 6 6 7 7 config CAIF_TTY 8 8 tristate "CAIF TTY transport driver" 9 - depends on CAIF 9 + depends on CAIF && TTY 10 10 default n 11 11 ---help--- 12 12 The CAIF TTY transport driver is a Line Discipline (ldisc)
+1 -1
drivers/net/can/Kconfig
··· 13 13 14 14 config CAN_SLCAN 15 15 tristate "Serial / USB serial CAN Adaptors (slcan)" 16 - depends on CAN 16 + depends on CAN && TTY 17 17 ---help--- 18 18 CAN driver for several 'low cost' CAN interfaces that are attached 19 19 via serial lines or via USB-to-serial adapters using the LAWICEL
+2 -2
drivers/net/hamradio/Kconfig
··· 1 1 config MKISS 2 2 tristate "Serial port KISS driver" 3 - depends on AX25 3 + depends on AX25 && TTY 4 4 select CRC16 5 5 ---help--- 6 6 KISS is a protocol used for the exchange of data between a computer ··· 18 18 19 19 config 6PACK 20 20 tristate "Serial port 6PACK driver" 21 - depends on AX25 21 + depends on AX25 && TTY 22 22 ---help--- 23 23 6pack is a transmission protocol for the data exchange between your 24 24 PC and your TNC (the Terminal Node Controller acts as a kind of
+1 -1
drivers/net/irda/Kconfig
··· 5 5 6 6 config IRTTY_SIR 7 7 tristate "IrTTY (uses Linux serial driver)" 8 - depends on IRDA 8 + depends on IRDA && TTY 9 9 help 10 10 Say Y here if you want to build support for the IrTTY line 11 11 discipline. To compile it as a module, choose M here: the module
+3
drivers/net/ppp/Kconfig
··· 147 147 Support for PPP-over-L2TP socket family. L2TP is a protocol 148 148 used by ISPs and enterprises to tunnel PPP traffic over UDP 149 149 tunnels. L2TP is replacing PPTP for VPN uses. 150 + if TTY 150 151 151 152 config PPP_ASYNC 152 153 tristate "PPP support for async serial ports" ··· 172 171 are often used for high-speed leased lines like T1/E1. 173 172 174 173 To compile this driver as a module, choose M here. 174 + 175 + endif # TTY 175 176 176 177 endif # PPP
+1
drivers/net/slip/Kconfig
··· 4 4 5 5 config SLIP 6 6 tristate "SLIP (serial line) support" 7 + depends on TTY 7 8 ---help--- 8 9 Say Y if you intend to use SLIP or CSLIP (compressed SLIP) to 9 10 connect to your Internet service provider or to connect to some
+2 -2
drivers/net/usb/Kconfig
··· 445 445 446 446 config USB_HSO 447 447 tristate "Option USB High Speed Mobile Devices" 448 - depends on USB && RFKILL 448 + depends on USB && RFKILL && TTY 449 449 default n 450 450 help 451 451 Choose this option if you have an Option HSDPA/HSUPA card. ··· 493 493 494 494 config USB_VL600 495 495 tristate "LG VL600 modem dongle" 496 - depends on USB_NET_CDCETHER 496 + depends on USB_NET_CDCETHER && TTY 497 497 select USB_ACM 498 498 help 499 499 Select this if you want to use an LG Electronics 4G/LTE usb modem
+1 -1
drivers/net/wan/Kconfig
··· 429 429 430 430 config X25_ASY 431 431 tristate "X.25 async driver (EXPERIMENTAL)" 432 - depends on LAPB && X25 432 + depends on LAPB && X25 && TTY 433 433 ---help--- 434 434 Send and receive X.25 frames over regular asynchronous serial 435 435 lines such as telephone lines equipped with ordinary modems.
+1 -1
drivers/pps/clients/Kconfig
··· 17 17 18 18 config PPS_CLIENT_LDISC 19 19 tristate "PPS line discipline" 20 - depends on PPS 20 + depends on PPS && TTY 21 21 help 22 22 If you say yes here you get support for a PPS source connected 23 23 with the CD (Carrier Detect) pin of your serial port.
+4 -4
drivers/s390/char/Kconfig
··· 11 11 config TN3270_TTY 12 12 def_tristate y 13 13 prompt "Support for tty input/output on 3270 terminals" 14 - depends on TN3270 14 + depends on TN3270 && TTY 15 15 help 16 16 Include support for using an IBM 3270 terminal as a Linux tty. 17 17 ··· 33 33 config TN3215 34 34 def_bool y 35 35 prompt "Support for 3215 line mode terminal" 36 - depends on CCW 36 + depends on CCW && TTY 37 37 help 38 38 Include support for IBM 3215 line-mode terminals. 39 39 ··· 51 51 config SCLP_TTY 52 52 def_bool y 53 53 prompt "Support for SCLP line mode terminal" 54 - depends on S390 54 + depends on S390 && TTY 55 55 help 56 56 Include support for IBM SCLP line-mode terminals. 57 57 ··· 66 66 config SCLP_VT220_TTY 67 67 def_bool y 68 68 prompt "Support for SCLP VT220-compatible terminal" 69 - depends on S390 69 + depends on S390 && TTY 70 70 help 71 71 Include support for an IBM SCLP VT220-compatible terminal. 72 72
+1 -1
drivers/staging/ccg/Kconfig
··· 2 2 3 3 config USB_G_CCG 4 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 6 help 7 7 The Configurable Composite Gadget supports multiple USB 8 8 functions: acm, mass storage, rndis and FunctionFS.
+1 -1
drivers/staging/dgrp/Kconfig
··· 1 1 config DGRP 2 2 tristate "Digi Realport driver" 3 3 default n 4 - depends on SYSFS 4 + depends on SYSFS && TTY 5 5 ---help--- 6 6 Support for Digi Realport devices. These devices allow you to 7 7 access remote serial ports as if they are local tty devices. This
+1 -1
drivers/staging/fwserial/Kconfig
··· 1 1 config FIREWIRE_SERIAL 2 2 tristate "TTY over Firewire" 3 - depends on FIREWIRE 3 + depends on FIREWIRE && TTY 4 4 help 5 5 This enables TTY over IEEE 1394, providing high-speed serial 6 6 connectivity to cabled peers.
+1 -1
drivers/staging/sb105x/Kconfig
··· 1 1 config SB105X 2 2 tristate "SystemBase PCI Multiport UART" 3 3 select SERIAL_CORE 4 - depends on PCI && BROKEN 4 + depends on PCI && TTY && BROKEN 5 5 help 6 6 A driver for the SystemBase Multi-2/PCI serial card 7 7
+13
drivers/tty/Kconfig
··· 1 + config 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 + 10 + if TTY 11 + 1 12 config VT 2 13 bool "Virtual terminal" if EXPERT 3 14 depends on !S390 && !UML ··· 399 388 If the number you specify is not a valid byte channel handle, then 400 389 there simply will be no early console output. This is true also 401 390 if you don't boot under a hypervisor at all. 391 + 392 + endif # TTY
+1 -1
drivers/tty/Makefile
··· 1 - obj-y += tty_io.o n_tty.o tty_ioctl.o tty_ldisc.o \ 1 + obj-$(CONFIG_TTY) += tty_io.o n_tty.o tty_ioctl.o tty_ldisc.o \ 2 2 tty_buffer.o tty_port.o tty_mutex.o 3 3 obj-$(CONFIG_LEGACY_PTYS) += pty.o 4 4 obj-$(CONFIG_UNIX98_PTYS) += pty.o
+3
drivers/tty/hvc/Kconfig
··· 1 + if TTY 2 + 1 3 config HVC_DRIVER 2 4 bool 3 5 help ··· 121 119 which will also be compiled when this driver is built as a 122 120 module. 123 121 122 + endif # TTY
+4
drivers/tty/serial/Kconfig
··· 2 2 # Serial device configuration 3 3 # 4 4 5 + if TTY 6 + 5 7 menu "Serial drivers" 6 8 depends on HAS_IOMEM 7 9 ··· 1485 1483 need to be increased. 1486 1484 1487 1485 endmenu 1486 + 1487 + endif # TTY
+1 -1
drivers/usb/class/Kconfig
··· 6 6 7 7 config USB_ACM 8 8 tristate "USB Modem (CDC ACM) support" 9 - depends on USB 9 + depends on USB && TTY 10 10 ---help--- 11 11 This driver supports USB modems and ISDN adapters which support the 12 12 Communication Device Class Abstract Control Model interface.
+6
drivers/usb/gadget/Kconfig
··· 750 750 751 751 config USB_G_SERIAL 752 752 tristate "Serial Gadget (with CDC ACM and CDC OBEX support)" 753 + depends on TTY 753 754 select USB_LIBCOMPOSITE 754 755 help 755 756 The Serial Gadget talks to the Linux-USB generic serial driver. ··· 799 798 800 799 For more information, see Documentation/usb/gadget_printer.txt 801 800 which includes sample code for accessing the device file. 801 + 802 + if TTY 802 803 803 804 config USB_CDC_COMPOSITE 804 805 tristate "CDC Composite Device (Ethernet and ACM)" ··· 882 879 883 880 If unsure, say "y". 884 881 882 + endif # TTY 883 + 885 884 config USB_G_HID 886 885 tristate "HID Gadget" 887 886 select USB_LIBCOMPOSITE ··· 900 895 # Standalone / single function gadgets 901 896 config USB_G_DBGP 902 897 tristate "EHCI Debug Device Gadget" 898 + depends on TTY 903 899 select USB_LIBCOMPOSITE 904 900 help 905 901 This gadget emulates an EHCI Debug device. This is useful when you want
+1 -1
drivers/usb/serial/Kconfig
··· 4 4 5 5 menuconfig USB_SERIAL 6 6 tristate "USB Serial Converter support" 7 - depends on USB 7 + depends on USB && TTY 8 8 ---help--- 9 9 Say Y here if you have a USB device that provides normal serial 10 10 ports, or acts like a serial device, and you want to connect it to
+2 -1
fs/proc/Makefile
··· 8 8 proc-$(CONFIG_MMU) := mmu.o task_mmu.o 9 9 10 10 proc-y += inode.o root.o base.o generic.o array.o \ 11 - proc_tty.o fd.o 11 + fd.o 12 + proc-$(CONFIG_TTY) += proc_tty.o 12 13 proc-y += cmdline.o 13 14 proc-y += consoles.o 14 15 proc-y += cpuinfo.o
+5
include/linux/console.h
··· 157 157 extern int braille_register_console(struct console *, int index, 158 158 char *console_options, char *braille_options); 159 159 extern int braille_unregister_console(struct console *); 160 + #ifdef CONFIG_TTY 160 161 extern void console_sysfs_notify(void); 162 + #else 163 + static inline void console_sysfs_notify(void) 164 + { } 165 + #endif 161 166 extern bool console_suspend_enabled; 162 167 163 168 /* Suspend and resume console messages over PM events */
+5
include/linux/proc_fs.h
··· 127 127 * proc_tty.c 128 128 */ 129 129 struct tty_driver; 130 + #ifdef CONFIG_TTY 130 131 extern void proc_tty_init(void); 132 + #else 133 + static inline void proc_tty_init(void) 134 + { } 135 + #endif 131 136 extern void proc_tty_register_driver(struct tty_driver *driver); 132 137 extern void proc_tty_unregister_driver(struct tty_driver *driver); 133 138
+33 -11
include/linux/tty.h
··· 318 318 319 319 #define TTY_WRITE_FLUSH(tty) tty_write_flush((tty)) 320 320 321 + #ifdef CONFIG_TTY 322 + extern void console_init(void); 323 + extern void tty_kref_put(struct tty_struct *tty); 324 + extern struct pid *tty_get_pgrp(struct tty_struct *tty); 325 + extern void tty_vhangup_self(void); 326 + extern void disassociate_ctty(int priv); 327 + extern dev_t tty_devnum(struct tty_struct *tty); 328 + extern void proc_clear_tty(struct task_struct *p); 329 + extern struct tty_struct *get_current_tty(void); 330 + /* tty_io.c */ 331 + extern int __init tty_init(void); 332 + #else 333 + static inline void console_init(void) 334 + { } 335 + static inline void tty_kref_put(struct tty_struct *tty) 336 + { } 337 + static inline struct pid *tty_get_pgrp(struct tty_struct *tty) 338 + { return NULL; } 339 + static inline void tty_vhangup_self(void) 340 + { } 341 + static inline void disassociate_ctty(int priv) 342 + { } 343 + static inline dev_t tty_devnum(struct tty_struct *tty) 344 + { return 0; } 345 + static inline void proc_clear_tty(struct task_struct *p) 346 + { } 347 + static inline struct tty_struct *get_current_tty(void) 348 + { return NULL; } 349 + /* tty_io.c */ 350 + static inline int __init tty_init(void) 351 + { return 0; } 352 + #endif 353 + 321 354 extern void tty_write_flush(struct tty_struct *); 322 355 323 356 extern struct ktermios tty_std_termios; 324 357 325 - extern void console_init(void); 326 358 extern int vcs_init(void); 327 359 328 360 extern struct class *tty_class; ··· 374 342 kref_get(&tty->kref); 375 343 return tty; 376 344 } 377 - extern void tty_kref_put(struct tty_struct *tty); 378 345 379 346 extern int tty_paranoia_check(struct tty_struct *tty, struct inode *inode, 380 347 const char *routine); ··· 405 374 struct tty_struct *tty); 406 375 extern void tty_free_termios(struct tty_struct *tty); 407 376 extern int is_current_pgrp_orphaned(void); 408 - extern struct pid *tty_get_pgrp(struct tty_struct *tty); 409 377 extern int is_ignored(int sig); 410 378 extern int tty_signal(int sig, struct tty_struct *tty); 411 379 extern void tty_hangup(struct tty_struct *tty); 412 380 extern void tty_vhangup(struct tty_struct *tty); 413 381 extern void tty_vhangup_locked(struct tty_struct *tty); 414 - extern void tty_vhangup_self(void); 415 382 extern void tty_unhangup(struct file *filp); 416 383 extern int tty_hung_up_p(struct file *filp); 417 384 extern void do_SAK(struct tty_struct *tty); 418 385 extern void __do_SAK(struct tty_struct *tty); 419 - extern void disassociate_ctty(int priv); 420 386 extern void no_tty(void); 421 387 extern void tty_flush_to_ldisc(struct tty_struct *tty); 422 388 extern void tty_buffer_free_all(struct tty_port *port); ··· 443 415 extern int tty_mode_ioctl(struct tty_struct *tty, struct file *file, 444 416 unsigned int cmd, unsigned long arg); 445 417 extern int tty_perform_flush(struct tty_struct *tty, unsigned long arg); 446 - extern dev_t tty_devnum(struct tty_struct *tty); 447 - extern void proc_clear_tty(struct task_struct *p); 448 - extern struct tty_struct *get_current_tty(void); 449 418 extern void tty_default_fops(struct file_operations *fops); 450 419 extern struct tty_struct *alloc_tty_struct(void); 451 420 extern int tty_alloc_file(struct file *file); ··· 567 542 return 0; 568 543 } 569 544 #endif 570 - 571 - /* tty_io.c */ 572 - extern int __init tty_init(void); 573 545 574 546 /* tty_ioctl.c */ 575 547 extern int n_tty_ioctl_helper(struct tty_struct *tty, struct file *file,
+1
lib/Kconfig.kgdb
··· 22 22 tristate "KGDB: use kgdb over the serial console" 23 23 select CONSOLE_POLL 24 24 select MAGIC_SYSRQ 25 + depends on TTY 25 26 default y 26 27 help 27 28 Share a serial console with kgdb. Sysrq-g must be used
+1
net/bluetooth/rfcomm/Kconfig
··· 12 12 config BT_RFCOMM_TTY 13 13 bool "RFCOMM TTY support" 14 14 depends on BT_RFCOMM 15 + depends on TTY 15 16 help 16 17 This option enables TTY emulation support for RFCOMM channels. 17 18
+1 -1
net/irda/ircomm/Kconfig
··· 1 1 config IRCOMM 2 2 tristate "IrCOMM protocol" 3 - depends on IRDA 3 + depends on IRDA && TTY 4 4 help 5 5 Say Y here if you want to build support for the IrCOMM protocol. 6 6 To compile it as modules, choose M here: the modules will be
+2 -1
sound/soc/codecs/Kconfig
··· 34 34 select SND_SOC_CS42L73 if I2C 35 35 select SND_SOC_CS4270 if I2C 36 36 select SND_SOC_CS4271 if SND_SOC_I2C_AND_SPI 37 - select SND_SOC_CX20442 37 + select SND_SOC_CX20442 if TTY 38 38 select SND_SOC_DA7210 if I2C 39 39 select SND_SOC_DA732X if I2C 40 40 select SND_SOC_DA9055 if I2C ··· 236 236 237 237 config SND_SOC_CX20442 238 238 tristate 239 + depends on TTY 239 240 240 241 config SND_SOC_JZ4740_CODEC 241 242 select REGMAP_MMIO