1
0
Fork 0

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>
hifive-unleashed-5.1
Joe Millenbach 2013-01-17 22:44:22 -08:00 committed by Greg Kroah-Hartman
parent a1bf958442
commit 4f73bc4dd3
55 changed files with 165 additions and 47 deletions

View File

@ -125,6 +125,7 @@ choice
config ALPHA_GENERIC config ALPHA_GENERIC
bool "Generic" bool "Generic"
depends on TTY
help help
A generic kernel will run on all supported Alpha hardware. A generic kernel will run on all supported Alpha hardware.
@ -491,6 +492,7 @@ config VGA_HOSE
config ALPHA_SRM config ALPHA_SRM
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 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
depends on TTY
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 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
---help--- ---help---
There are two different types of booting firmware on Alphas: SRM, There are two different types of booting firmware on Alphas: SRM,

View File

@ -8,6 +8,7 @@ config HP_SIMETH
config HP_SIMSERIAL config HP_SIMSERIAL
bool "Simulated serial driver support" bool "Simulated serial driver support"
depends on TTY
config HP_SIMSERIAL_CONSOLE config HP_SIMSERIAL_CONSOLE
bool "Console for HP simulator" bool "Console for HP simulator"

View File

@ -41,7 +41,7 @@ config NFBLOCK
config NFCON config NFCON
tristate "NatFeat console driver" tristate "NatFeat console driver"
depends on NATFEAT depends on TTY && NATFEAT
help help
Say Y to include support for the ARAnyM NatFeat console driver Say Y to include support for the ARAnyM NatFeat console driver
which allows the console output to be redirected to the stderr which allows the console output to be redirected to the stderr

View File

@ -23,6 +23,7 @@ config PARISC
select HAVE_MOD_ARCH_SPECIFIC select HAVE_MOD_ARCH_SPECIFIC
select MODULES_USE_ELF_RELA select MODULES_USE_ELF_RELA
select CLONE_BACKWARDS select CLONE_BACKWARDS
select TTY # Needed for pdc_cons.c
help help
The PA-RISC microprocessor is designed by Hewlett-Packard and used The PA-RISC microprocessor is designed by Hewlett-Packard and used

View File

@ -121,6 +121,7 @@ config DEBUG_COPY_FROM_USER
def_bool n def_bool n
config HVC_TILE config HVC_TILE
depends on TTY
select HVC_DRIVER select HVC_DRIVER
def_bool y def_bool y

View File

@ -12,6 +12,7 @@ config UML
select GENERIC_CPU_DEVICES select GENERIC_CPU_DEVICES
select GENERIC_IO select GENERIC_IO
select GENERIC_CLOCKEVENTS select GENERIC_CLOCKEVENTS
select TTY # Needed for line.c
config MMU config MMU
bool bool

View File

@ -132,6 +132,7 @@ choice
config XTENSA_PLATFORM_ISS config XTENSA_PLATFORM_ISS
bool "ISS" bool "ISS"
depends on TTY
select XTENSA_CALIBRATE_CCOUNT select XTENSA_CALIBRATE_CCOUNT
select SERIAL_CONSOLE select SERIAL_CONSOLE
select XTENSA_ISS_NETWORK select XTENSA_ISS_NETWORK

View File

@ -26,6 +26,7 @@ config BT_HCIBTSDIO
config BT_HCIUART config BT_HCIUART
tristate "HCI UART driver" tristate "HCI UART driver"
depends on TTY
help help
Bluetooth HCI UART driver. Bluetooth HCI UART driver.
This driver is required if you want to use Bluetooth devices with This driver is required if you want to use Bluetooth devices with

View File

@ -53,7 +53,7 @@ source "drivers/tty/serial/Kconfig"
config TTY_PRINTK config TTY_PRINTK
bool "TTY driver to output user messages via printk" bool "TTY driver to output user messages via printk"
depends on EXPERT depends on EXPERT && TTY
default n default n
---help--- ---help---
If you say Y here, the support for writing user messages (i.e. If you say Y here, the support for writing user messages (i.e.
@ -159,7 +159,7 @@ source "drivers/tty/hvc/Kconfig"
config VIRTIO_CONSOLE config VIRTIO_CONSOLE
tristate "Virtio console" tristate "Virtio console"
depends on VIRTIO depends on VIRTIO && TTY
select HVC_DRIVER select HVC_DRIVER
help help
Virtio console for use with lguest and other hypervisors. Virtio console for use with lguest and other hypervisors.
@ -392,6 +392,7 @@ config XILINX_HWICAP
config R3964 config R3964
tristate "Siemens R3964 line discipline" tristate "Siemens R3964 line discipline"
depends on TTY
---help--- ---help---
This driver allows synchronous communication with devices using the This driver allows synchronous communication with devices using the
Siemens R3964 packet protocol. Unless you are dealing with special Siemens R3964 packet protocol. Unless you are dealing with special
@ -439,7 +440,7 @@ source "drivers/char/pcmcia/Kconfig"
config MWAVE config MWAVE
tristate "ACP Modem (Mwave) support" tristate "ACP Modem (Mwave) support"
depends on X86 depends on X86 && TTY
select SERIAL_8250 select SERIAL_8250
---help--- ---help---
The ACP modem (Mwave) for Linux is a WinModem. It is composed of a The ACP modem (Mwave) for Linux is a WinModem. It is composed of a

View File

@ -7,7 +7,7 @@ menu "PCMCIA character devices"
config SYNCLINK_CS config SYNCLINK_CS
tristate "SyncLink PC Card support" tristate "SyncLink PC Card support"
depends on PCMCIA depends on PCMCIA && TTY
help help
Enable support for the SyncLink PC Card serial adapter, running Enable support for the SyncLink PC Card serial adapter, running
asynchronous and HDLC communications up to 512Kbps. The port is asynchronous and HDLC communications up to 512Kbps. The port is
@ -45,7 +45,7 @@ config CARDMAN_4040
config IPWIRELESS config IPWIRELESS
tristate "IPWireless 3G UMTS PCMCIA card support" tristate "IPWireless 3G UMTS PCMCIA card support"
depends on PCMCIA && NETDEVICES depends on PCMCIA && NETDEVICES && TTY
select PPP select PPP
help help
This is a driver for 3G UMTS PCMCIA card from IPWireless company. In This is a driver for 3G UMTS PCMCIA card from IPWireless company. In

View File

@ -803,7 +803,7 @@ config I2C_PARPORT_LIGHT
config I2C_TAOS_EVM config I2C_TAOS_EVM
tristate "TAOS evaluation module" tristate "TAOS evaluation module"
depends on EXPERIMENTAL depends on EXPERIMENTAL && TTY
select SERIO select SERIO
select SERIO_SERPORT select SERIO_SERPORT
default n default n

View File

@ -132,6 +132,8 @@ config JOYSTICK_TMDC
source "drivers/input/joystick/iforce/Kconfig" source "drivers/input/joystick/iforce/Kconfig"
if TTY
config JOYSTICK_WARRIOR config JOYSTICK_WARRIOR
tristate "Logitech WingMan Warrior joystick" tristate "Logitech WingMan Warrior joystick"
select SERIO select SERIO
@ -205,6 +207,8 @@ config JOYSTICK_ZHENHUA
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called zhenhua. module will be called zhenhua.
endif # TTY
config JOYSTICK_DB9 config JOYSTICK_DB9
tristate "Multisystem, Sega Genesis, Saturn joysticks and gamepads" tristate "Multisystem, Sega Genesis, Saturn joysticks and gamepads"
depends on PARPORT depends on PARPORT

View File

@ -69,6 +69,7 @@ config KEYBOARD_ATARI
config KEYBOARD_ATKBD config KEYBOARD_ATKBD
tristate "AT keyboard" if EXPERT || !X86 tristate "AT keyboard" if EXPERT || !X86
default y default y
depends on TTY
select SERIO select SERIO
select SERIO_LIBPS2 select SERIO_LIBPS2
select SERIO_I8042 if X86 select SERIO_I8042 if X86
@ -153,6 +154,7 @@ config KEYBOARD_BFIN
config KEYBOARD_LKKBD config KEYBOARD_LKKBD
tristate "DECstation/VAXstation LK201/LK401 keyboard" tristate "DECstation/VAXstation LK201/LK401 keyboard"
depends on TTY
select SERIO select SERIO
help help
Say Y here if you want to use a LK201 or LK401 style serial Say Y here if you want to use a LK201 or LK401 style serial
@ -268,7 +270,7 @@ config KEYBOARD_HIL_OLD
config KEYBOARD_HIL config KEYBOARD_HIL
tristate "HP HIL keyboard/pointer support" tristate "HP HIL keyboard/pointer support"
depends on GSC || HP300 depends on (GSC || HP300) && TTY
default y default y
select HP_SDC select HP_SDC
select HIL_MLC select HIL_MLC
@ -400,6 +402,7 @@ config KEYBOARD_IMX
config KEYBOARD_NEWTON config KEYBOARD_NEWTON
tristate "Newton keyboard" tristate "Newton keyboard"
depends on TTY
select SERIO select SERIO
help help
Say Y here if you have a Newton keyboard on a serial port. Say Y here if you have a Newton keyboard on a serial port.
@ -479,6 +482,8 @@ config KEYBOARD_SAMSUNG
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called samsung-keypad. module will be called samsung-keypad.
if TTY
config KEYBOARD_STOWAWAY config KEYBOARD_STOWAWAY
tristate "Stowaway keyboard" tristate "Stowaway keyboard"
select SERIO select SERIO
@ -501,6 +506,8 @@ config KEYBOARD_SUNKBD
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called sunkbd. module will be called sunkbd.
endif # TTY
config KEYBOARD_SH_KEYSC config KEYBOARD_SH_KEYSC
tristate "SuperH KEYSC keypad support" tristate "SuperH KEYSC keypad support"
depends on SUPERH || ARCH_SHMOBILE depends on SUPERH || ARCH_SHMOBILE
@ -597,6 +604,7 @@ config KEYBOARD_TWL4030
config KEYBOARD_XTKBD config KEYBOARD_XTKBD
tristate "XT keyboard" tristate "XT keyboard"
depends on TTY
select SERIO select SERIO
help help
Say Y here if you want to use the old IBM PC/XT keyboard (or Say Y here if you want to use the old IBM PC/XT keyboard (or

View File

@ -14,6 +14,7 @@ if INPUT_MOUSE
config MOUSE_PS2 config MOUSE_PS2
tristate "PS/2 mouse" tristate "PS/2 mouse"
depends on TTY
default y default y
select SERIO select SERIO
select SERIO_LIBPS2 select SERIO_LIBPS2
@ -138,6 +139,7 @@ config MOUSE_PS2_OLPC
config MOUSE_SERIAL config MOUSE_SERIAL
tristate "Serial mouse" tristate "Serial mouse"
depends on TTY
select SERIO select SERIO
help help
Say Y here if you have a serial (RS-232, COM port) mouse connected Say Y here if you have a serial (RS-232, COM port) mouse connected
@ -262,6 +264,7 @@ config MOUSE_RISCPC
config MOUSE_VSXXXAA config MOUSE_VSXXXAA
tristate "DEC VSXXX-AA/GA mouse and VSXXX-AB tablet" tristate "DEC VSXXX-AA/GA mouse and VSXXX-AB tablet"
depends on TTY
select SERIO select SERIO
help help
Say Y (or M) if you want to use a DEC VSXXX-AA (hockey Say Y (or M) if you want to use a DEC VSXXX-AA (hockey

View File

@ -4,6 +4,7 @@
config SERIO config SERIO
tristate "Serial I/O support" if EXPERT || !X86 tristate "Serial I/O support" if EXPERT || !X86
default y default y
depends on TTY
help help
Say Yes here if you have any input device that uses serial I/O to Say Yes here if you have any input device that uses serial I/O to
communicate with the system. This includes the communicate with the system. This includes the

View File

@ -192,6 +192,8 @@ config TOUCHSCREEN_DA9052
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called da9052_tsi. module will be called da9052_tsi.
if TTY
config TOUCHSCREEN_DYNAPRO config TOUCHSCREEN_DYNAPRO
tristate "Dynapro serial touchscreen" tristate "Dynapro serial touchscreen"
select SERIO select SERIO
@ -216,6 +218,8 @@ config TOUCHSCREEN_HAMPSHIRE
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called hampshire. module will be called hampshire.
endif # TTY
config TOUCHSCREEN_EETI config TOUCHSCREEN_EETI
tristate "EETI touchscreen panel support" tristate "EETI touchscreen panel support"
depends on I2C depends on I2C
@ -237,6 +241,7 @@ config TOUCHSCREEN_EGALAX
config TOUCHSCREEN_FUJITSU config TOUCHSCREEN_FUJITSU
tristate "Fujitsu serial touchscreen" tristate "Fujitsu serial touchscreen"
depends on TTY
select SERIO select SERIO
help help
Say Y here if you have the Fujitsu touchscreen (such as one Say Y here if you have the Fujitsu touchscreen (such as one
@ -275,6 +280,8 @@ config TOUCHSCREEN_S3C2410
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called s3c2410_ts. module will be called s3c2410_ts.
if TTY
config TOUCHSCREEN_GUNZE config TOUCHSCREEN_GUNZE
tristate "Gunze AHL-51S touchscreen" tristate "Gunze AHL-51S touchscreen"
select SERIO select SERIO
@ -311,6 +318,8 @@ config TOUCHSCREEN_WACOM_W8001
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called wacom_w8001. module will be called wacom_w8001.
endif # TTY
config TOUCHSCREEN_WACOM_I2C config TOUCHSCREEN_WACOM_I2C
tristate "Wacom Tablet support (I2C)" tristate "Wacom Tablet support (I2C)"
depends on I2C depends on I2C
@ -369,6 +378,8 @@ config TOUCHSCREEN_MMS114
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called mms114. module will be called mms114.
if TTY
config TOUCHSCREEN_MTOUCH config TOUCHSCREEN_MTOUCH
tristate "MicroTouch serial touchscreens" tristate "MicroTouch serial touchscreens"
select SERIO select SERIO
@ -393,6 +404,8 @@ config TOUCHSCREEN_INEXIO
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called inexio. module will be called inexio.
endif # TTY
config TOUCHSCREEN_INTEL_MID config TOUCHSCREEN_INTEL_MID
tristate "Intel MID platform resistive touchscreen" tristate "Intel MID platform resistive touchscreen"
depends on INTEL_SCU_IPC depends on INTEL_SCU_IPC
@ -450,6 +463,7 @@ config TOUCHSCREEN_HTCPEN
config TOUCHSCREEN_PENMOUNT config TOUCHSCREEN_PENMOUNT
tristate "Penmount serial touchscreen" tristate "Penmount serial touchscreen"
depends on TTY
select SERIO select SERIO
help help
Say Y here if you have a Penmount serial touchscreen connected to Say Y here if you have a Penmount serial touchscreen connected to
@ -493,6 +507,8 @@ config TOUCHSCREEN_TNETV107X
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called tnetv107x-ts. module will be called tnetv107x-ts.
if TTY
config TOUCHSCREEN_TOUCHRIGHT config TOUCHSCREEN_TOUCHRIGHT
tristate "Touchright serial touchscreen" tristate "Touchright serial touchscreen"
select SERIO select SERIO
@ -517,6 +533,8 @@ config TOUCHSCREEN_TOUCHWIN
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called touchwin. module will be called touchwin.
endif # TTY
config TOUCHSCREEN_TI_AM335X_TSC config TOUCHSCREEN_TI_AM335X_TSC
tristate "TI Touchscreen Interface" tristate "TI Touchscreen Interface"
depends on MFD_TI_AM335X_TSCADC depends on MFD_TI_AM335X_TSCADC
@ -790,6 +808,8 @@ config TOUCHSCREEN_USB_EASYTOUCH
Say Y here if you have an EasyTouch USB Touch controller. Say Y here if you have an EasyTouch USB Touch controller.
If unsure, say N. If unsure, say N.
if TTY
config TOUCHSCREEN_TOUCHIT213 config TOUCHSCREEN_TOUCHIT213
tristate "Sahara TouchIT-213 touchscreen" tristate "Sahara TouchIT-213 touchscreen"
select SERIO select SERIO
@ -813,6 +833,8 @@ config TOUCHSCREEN_TSC_SERIO
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called tsc40. module will be called tsc40.
endif # TTY
config TOUCHSCREEN_TSC2005 config TOUCHSCREEN_TSC2005
tristate "TSC2005 based touchscreens" tristate "TSC2005 based touchscreens"
depends on SPI_MASTER && GENERIC_HARDIRQS depends on SPI_MASTER && GENERIC_HARDIRQS

View File

@ -1,6 +1,6 @@
config SERIAL_IPOCTAL config SERIAL_IPOCTAL
tristate "IndustryPack IP-OCTAL uart support" tristate "IndustryPack IP-OCTAL uart support"
depends on IPACK_BUS depends on IPACK_BUS && TTY
help help
This driver supports the IPOCTAL serial port device for the IndustryPack bus. This driver supports the IPOCTAL serial port device for the IndustryPack bus.
default n default n

View File

@ -22,6 +22,7 @@ if ISDN
menuconfig ISDN_I4L menuconfig ISDN_I4L
tristate "Old ISDN4Linux (deprecated)" tristate "Old ISDN4Linux (deprecated)"
depends on TTY
---help--- ---help---
This driver allows you to use an ISDN adapter for networking This driver allows you to use an ISDN adapter for networking
connections and as dialin/out device. The isdn-tty's have a built connections and as dialin/out device. The isdn-tty's have a built

View File

@ -18,6 +18,7 @@ config CAPI_TRACE
config ISDN_CAPI_MIDDLEWARE config ISDN_CAPI_MIDDLEWARE
bool "CAPI2.0 Middleware support" bool "CAPI2.0 Middleware support"
depends on TTY
help help
This option will enhance the capabilities of the /dev/capi20 This option will enhance the capabilities of the /dev/capi20
interface. It will provide a means of moving a data connection, interface. It will provide a means of moving a data connection,

View File

@ -1,5 +1,6 @@
menuconfig ISDN_DRV_GIGASET menuconfig ISDN_DRV_GIGASET
tristate "Siemens Gigaset support" tristate "Siemens Gigaset support"
depends on TTY
select CRC_CCITT select CRC_CCITT
select BITREVERSE select BITREVERSE
help help

View File

@ -76,6 +76,7 @@ config MISDN_NETJET
tristate "Support for NETJet cards" tristate "Support for NETJet cards"
depends on MISDN depends on MISDN
depends on PCI depends on PCI
depends on TTY
select MISDN_IPAC select MISDN_IPAC
select ISDN_HDLC select ISDN_HDLC
select ISDN_I4L select ISDN_I4L

View File

@ -1,6 +1,6 @@
config LGUEST config LGUEST
tristate "Linux hypervisor example code" tristate "Linux hypervisor example code"
depends on X86_32 && EXPERIMENTAL && EVENTFD depends on X86_32 && EXPERIMENTAL && EVENTFD && TTY
select HVC_DRIVER select HVC_DRIVER
---help--- ---help---
This is a very simple module which allows you to run This is a very simple module which allows you to run

View File

@ -4,7 +4,7 @@
menu "Texas Instruments WL128x FM driver (ST based)" menu "Texas Instruments WL128x FM driver (ST based)"
config RADIO_WL128X config RADIO_WL128X
tristate "Texas Instruments WL128x FM Radio" tristate "Texas Instruments WL128x FM Radio"
depends on VIDEO_V4L2 && RFKILL && GPIOLIB depends on VIDEO_V4L2 && RFKILL && GPIOLIB && TTY
select TI_ST if NET select TI_ST if NET
help help
Choose Y here if you have this FM radio chip. Choose Y here if you have this FM radio chip.

View File

@ -127,7 +127,7 @@ config PHANTOM
config INTEL_MID_PTI config INTEL_MID_PTI
tristate "Parallel Trace Interface for MIPI P1149.7 cJTAG standard" tristate "Parallel Trace Interface for MIPI P1149.7 cJTAG standard"
depends on PCI depends on PCI && TTY
default n default n
help help
The PTI (Parallel Trace Interface) driver directs The PTI (Parallel Trace Interface) driver directs

View File

@ -5,7 +5,7 @@
menu "Texas Instruments shared transport line discipline" menu "Texas Instruments shared transport line discipline"
config TI_ST config TI_ST
tristate "Shared transport core driver" tristate "Shared transport core driver"
depends on NET && GPIOLIB depends on NET && GPIOLIB && TTY
select FW_LOADER select FW_LOADER
help help
This enables the shared transport core driver for TI This enables the shared transport core driver for TI

View File

@ -52,6 +52,7 @@ config MMC_BLOCK_BOUNCE
config SDIO_UART config SDIO_UART
tristate "SDIO UART/GPS class support" tristate "SDIO UART/GPS class support"
depends on TTY
help help
SDIO function driver for SDIO cards that implements the UART SDIO function driver for SDIO cards that implements the UART
class, as well as the GPS class which appears like a UART. class, as well as the GPS class which appears like a UART.

View File

@ -6,7 +6,7 @@ comment "CAIF transport drivers"
config CAIF_TTY config CAIF_TTY
tristate "CAIF TTY transport driver" tristate "CAIF TTY transport driver"
depends on CAIF depends on CAIF && TTY
default n default n
---help--- ---help---
The CAIF TTY transport driver is a Line Discipline (ldisc) The CAIF TTY transport driver is a Line Discipline (ldisc)

View File

@ -13,7 +13,7 @@ config CAN_VCAN
config CAN_SLCAN config CAN_SLCAN
tristate "Serial / USB serial CAN Adaptors (slcan)" tristate "Serial / USB serial CAN Adaptors (slcan)"
depends on CAN depends on CAN && TTY
---help--- ---help---
CAN driver for several 'low cost' CAN interfaces that are attached CAN driver for several 'low cost' CAN interfaces that are attached
via serial lines or via USB-to-serial adapters using the LAWICEL via serial lines or via USB-to-serial adapters using the LAWICEL

View File

@ -1,6 +1,6 @@
config MKISS config MKISS
tristate "Serial port KISS driver" tristate "Serial port KISS driver"
depends on AX25 depends on AX25 && TTY
select CRC16 select CRC16
---help--- ---help---
KISS is a protocol used for the exchange of data between a computer KISS is a protocol used for the exchange of data between a computer
@ -18,7 +18,7 @@ config MKISS
config 6PACK config 6PACK
tristate "Serial port 6PACK driver" tristate "Serial port 6PACK driver"
depends on AX25 depends on AX25 && TTY
---help--- ---help---
6pack is a transmission protocol for the data exchange between your 6pack is a transmission protocol for the data exchange between your
PC and your TNC (the Terminal Node Controller acts as a kind of PC and your TNC (the Terminal Node Controller acts as a kind of

View File

@ -5,7 +5,7 @@ comment "SIR device drivers"
config IRTTY_SIR config IRTTY_SIR
tristate "IrTTY (uses Linux serial driver)" tristate "IrTTY (uses Linux serial driver)"
depends on IRDA depends on IRDA && TTY
help help
Say Y here if you want to build support for the IrTTY line Say Y here if you want to build support for the IrTTY line
discipline. To compile it as a module, choose M here: the module discipline. To compile it as a module, choose M here: the module

View File

@ -147,6 +147,7 @@ config PPPOL2TP
Support for PPP-over-L2TP socket family. L2TP is a protocol Support for PPP-over-L2TP socket family. L2TP is a protocol
used by ISPs and enterprises to tunnel PPP traffic over UDP used by ISPs and enterprises to tunnel PPP traffic over UDP
tunnels. L2TP is replacing PPTP for VPN uses. tunnels. L2TP is replacing PPTP for VPN uses.
if TTY
config PPP_ASYNC config PPP_ASYNC
tristate "PPP support for async serial ports" tristate "PPP support for async serial ports"
@ -172,4 +173,6 @@ config PPP_SYNC_TTY
To compile this driver as a module, choose M here. To compile this driver as a module, choose M here.
endif # TTY
endif # PPP endif # PPP

View File

@ -4,6 +4,7 @@
config SLIP config SLIP
tristate "SLIP (serial line) support" tristate "SLIP (serial line) support"
depends on TTY
---help--- ---help---
Say Y if you intend to use SLIP or CSLIP (compressed SLIP) to Say Y if you intend to use SLIP or CSLIP (compressed SLIP) to
connect to your Internet service provider or to connect to some connect to your Internet service provider or to connect to some

View File

@ -445,7 +445,7 @@ config USB_NET_QMI_WWAN
config USB_HSO config USB_HSO
tristate "Option USB High Speed Mobile Devices" tristate "Option USB High Speed Mobile Devices"
depends on USB && RFKILL depends on USB && RFKILL && TTY
default n default n
help help
Choose this option if you have an Option HSDPA/HSUPA card. Choose this option if you have an Option HSDPA/HSUPA card.
@ -493,7 +493,7 @@ config USB_SIERRA_NET
config USB_VL600 config USB_VL600
tristate "LG VL600 modem dongle" tristate "LG VL600 modem dongle"
depends on USB_NET_CDCETHER depends on USB_NET_CDCETHER && TTY
select USB_ACM select USB_ACM
help help
Select this if you want to use an LG Electronics 4G/LTE usb modem Select this if you want to use an LG Electronics 4G/LTE usb modem

View File

@ -429,7 +429,7 @@ config LAPBETHER
config X25_ASY config X25_ASY
tristate "X.25 async driver (EXPERIMENTAL)" tristate "X.25 async driver (EXPERIMENTAL)"
depends on LAPB && X25 depends on LAPB && X25 && TTY
---help--- ---help---
Send and receive X.25 frames over regular asynchronous serial Send and receive X.25 frames over regular asynchronous serial
lines such as telephone lines equipped with ordinary modems. lines such as telephone lines equipped with ordinary modems.

View File

@ -17,7 +17,7 @@ config PPS_CLIENT_KTIMER
config PPS_CLIENT_LDISC config PPS_CLIENT_LDISC
tristate "PPS line discipline" tristate "PPS line discipline"
depends on PPS depends on PPS && TTY
help help
If you say yes here you get support for a PPS source connected If you say yes here you get support for a PPS source connected
with the CD (Carrier Detect) pin of your serial port. with the CD (Carrier Detect) pin of your serial port.

View File

@ -11,7 +11,7 @@ config TN3270
config TN3270_TTY config TN3270_TTY
def_tristate y def_tristate y
prompt "Support for tty input/output on 3270 terminals" prompt "Support for tty input/output on 3270 terminals"
depends on TN3270 depends on TN3270 && TTY
help help
Include support for using an IBM 3270 terminal as a Linux tty. Include support for using an IBM 3270 terminal as a Linux tty.
@ -33,7 +33,7 @@ config TN3270_CONSOLE
config TN3215 config TN3215
def_bool y def_bool y
prompt "Support for 3215 line mode terminal" prompt "Support for 3215 line mode terminal"
depends on CCW depends on CCW && TTY
help help
Include support for IBM 3215 line-mode terminals. Include support for IBM 3215 line-mode terminals.
@ -51,7 +51,7 @@ config CCW_CONSOLE
config SCLP_TTY config SCLP_TTY
def_bool y def_bool y
prompt "Support for SCLP line mode terminal" prompt "Support for SCLP line mode terminal"
depends on S390 depends on S390 && TTY
help help
Include support for IBM SCLP line-mode terminals. Include support for IBM SCLP line-mode terminals.
@ -66,7 +66,7 @@ config SCLP_CONSOLE
config SCLP_VT220_TTY config SCLP_VT220_TTY
def_bool y def_bool y
prompt "Support for SCLP VT220-compatible terminal" prompt "Support for SCLP VT220-compatible terminal"
depends on S390 depends on S390 && TTY
help help
Include support for an IBM SCLP VT220-compatible terminal. Include support for an IBM SCLP VT220-compatible terminal.

View File

@ -2,7 +2,7 @@ if USB_GADGET
config USB_G_CCG config USB_G_CCG
tristate "Configurable Composite Gadget (STAGING)" tristate "Configurable Composite Gadget (STAGING)"
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 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
help help
The Configurable Composite Gadget supports multiple USB The Configurable Composite Gadget supports multiple USB
functions: acm, mass storage, rndis and FunctionFS. functions: acm, mass storage, rndis and FunctionFS.

View File

@ -1,7 +1,7 @@
config DGRP config DGRP
tristate "Digi Realport driver" tristate "Digi Realport driver"
default n default n
depends on SYSFS depends on SYSFS && TTY
---help--- ---help---
Support for Digi Realport devices. These devices allow you to Support for Digi Realport devices. These devices allow you to
access remote serial ports as if they are local tty devices. This access remote serial ports as if they are local tty devices. This

View File

@ -1,6 +1,6 @@
config FIREWIRE_SERIAL config FIREWIRE_SERIAL
tristate "TTY over Firewire" tristate "TTY over Firewire"
depends on FIREWIRE depends on FIREWIRE && TTY
help help
This enables TTY over IEEE 1394, providing high-speed serial This enables TTY over IEEE 1394, providing high-speed serial
connectivity to cabled peers. connectivity to cabled peers.

View File

@ -1,7 +1,7 @@
config SB105X config SB105X
tristate "SystemBase PCI Multiport UART" tristate "SystemBase PCI Multiport UART"
select SERIAL_CORE select SERIAL_CORE
depends on PCI && BROKEN depends on PCI && TTY && BROKEN
help help
A driver for the SystemBase Multi-2/PCI serial card A driver for the SystemBase Multi-2/PCI serial card

View File

@ -1,3 +1,14 @@
config TTY
bool "Enable TTY" if EXPERT
default y
---help---
Allows you to remove TTY support which can save space, and
blocks features that require TTY from inclusion in the kernel.
TTY is required for any text terminals or serial port
communication. Most users should leave this enabled.
if TTY
config VT config VT
bool "Virtual terminal" if EXPERT bool "Virtual terminal" if EXPERT
depends on !S390 && !UML depends on !S390 && !UML
@ -388,3 +399,5 @@ config PPC_EARLY_DEBUG_EHV_BC_HANDLE
If the number you specify is not a valid byte channel handle, then If the number you specify is not a valid byte channel handle, then
there simply will be no early console output. This is true also there simply will be no early console output. This is true also
if you don't boot under a hypervisor at all. if you don't boot under a hypervisor at all.
endif # TTY

View File

@ -1,4 +1,4 @@
obj-y += tty_io.o n_tty.o tty_ioctl.o tty_ldisc.o \ obj-$(CONFIG_TTY) += tty_io.o n_tty.o tty_ioctl.o tty_ldisc.o \
tty_buffer.o tty_port.o tty_mutex.o tty_buffer.o tty_port.o tty_mutex.o
obj-$(CONFIG_LEGACY_PTYS) += pty.o obj-$(CONFIG_LEGACY_PTYS) += pty.o
obj-$(CONFIG_UNIX98_PTYS) += pty.o obj-$(CONFIG_UNIX98_PTYS) += pty.o

View File

@ -1,3 +1,5 @@
if TTY
config HVC_DRIVER config HVC_DRIVER
bool bool
help help
@ -119,3 +121,4 @@ config HVCS
which will also be compiled when this driver is built as a which will also be compiled when this driver is built as a
module. module.
endif # TTY

View File

@ -2,6 +2,8 @@
# Serial device configuration # Serial device configuration
# #
if TTY
menu "Serial drivers" menu "Serial drivers"
depends on HAS_IOMEM depends on HAS_IOMEM
@ -1483,3 +1485,5 @@ config SERIAL_RP2_NR_UARTS
need to be increased. need to be increased.
endmenu endmenu
endif # TTY

View File

@ -6,7 +6,7 @@ comment "USB Device Class drivers"
config USB_ACM config USB_ACM
tristate "USB Modem (CDC ACM) support" tristate "USB Modem (CDC ACM) support"
depends on USB depends on USB && TTY
---help--- ---help---
This driver supports USB modems and ISDN adapters which support the This driver supports USB modems and ISDN adapters which support the
Communication Device Class Abstract Control Model interface. Communication Device Class Abstract Control Model interface.

View File

@ -750,6 +750,7 @@ config USB_GADGET_TARGET
config USB_G_SERIAL config USB_G_SERIAL
tristate "Serial Gadget (with CDC ACM and CDC OBEX support)" tristate "Serial Gadget (with CDC ACM and CDC OBEX support)"
depends on TTY
select USB_LIBCOMPOSITE select USB_LIBCOMPOSITE
help help
The Serial Gadget talks to the Linux-USB generic serial driver. The Serial Gadget talks to the Linux-USB generic serial driver.
@ -799,6 +800,8 @@ config USB_G_PRINTER
For more information, see Documentation/usb/gadget_printer.txt For more information, see Documentation/usb/gadget_printer.txt
which includes sample code for accessing the device file. which includes sample code for accessing the device file.
if TTY
config USB_CDC_COMPOSITE config USB_CDC_COMPOSITE
tristate "CDC Composite Device (Ethernet and ACM)" tristate "CDC Composite Device (Ethernet and ACM)"
depends on NET depends on NET
@ -879,6 +882,8 @@ config USB_G_MULTI_CDC
If unsure, say "y". If unsure, say "y".
endif # TTY
config USB_G_HID config USB_G_HID
tristate "HID Gadget" tristate "HID Gadget"
select USB_LIBCOMPOSITE select USB_LIBCOMPOSITE
@ -895,6 +900,7 @@ config USB_G_HID
# Standalone / single function gadgets # Standalone / single function gadgets
config USB_G_DBGP config USB_G_DBGP
tristate "EHCI Debug Device Gadget" tristate "EHCI Debug Device Gadget"
depends on TTY
select USB_LIBCOMPOSITE select USB_LIBCOMPOSITE
help help
This gadget emulates an EHCI Debug device. This is useful when you want This gadget emulates an EHCI Debug device. This is useful when you want

View File

@ -4,7 +4,7 @@
menuconfig USB_SERIAL menuconfig USB_SERIAL
tristate "USB Serial Converter support" tristate "USB Serial Converter support"
depends on USB depends on USB && TTY
---help--- ---help---
Say Y here if you have a USB device that provides normal serial Say Y here if you have a USB device that provides normal serial
ports, or acts like a serial device, and you want to connect it to ports, or acts like a serial device, and you want to connect it to

View File

@ -8,7 +8,8 @@ proc-y := nommu.o task_nommu.o
proc-$(CONFIG_MMU) := mmu.o task_mmu.o proc-$(CONFIG_MMU) := mmu.o task_mmu.o
proc-y += inode.o root.o base.o generic.o array.o \ proc-y += inode.o root.o base.o generic.o array.o \
proc_tty.o fd.o fd.o
proc-$(CONFIG_TTY) += proc_tty.o
proc-y += cmdline.o proc-y += cmdline.o
proc-y += consoles.o proc-y += consoles.o
proc-y += cpuinfo.o proc-y += cpuinfo.o

View File

@ -157,7 +157,12 @@ extern int is_console_locked(void);
extern int braille_register_console(struct console *, int index, extern int braille_register_console(struct console *, int index,
char *console_options, char *braille_options); char *console_options, char *braille_options);
extern int braille_unregister_console(struct console *); extern int braille_unregister_console(struct console *);
#ifdef CONFIG_TTY
extern void console_sysfs_notify(void); extern void console_sysfs_notify(void);
#else
static inline void console_sysfs_notify(void)
{ }
#endif
extern bool console_suspend_enabled; extern bool console_suspend_enabled;
/* Suspend and resume console messages over PM events */ /* Suspend and resume console messages over PM events */

View File

@ -127,7 +127,12 @@ extern void pid_ns_release_proc(struct pid_namespace *ns);
* proc_tty.c * proc_tty.c
*/ */
struct tty_driver; struct tty_driver;
#ifdef CONFIG_TTY
extern void proc_tty_init(void); extern void proc_tty_init(void);
#else
static inline void proc_tty_init(void)
{ }
#endif
extern void proc_tty_register_driver(struct tty_driver *driver); extern void proc_tty_register_driver(struct tty_driver *driver);
extern void proc_tty_unregister_driver(struct tty_driver *driver); extern void proc_tty_unregister_driver(struct tty_driver *driver);

View File

@ -318,11 +318,43 @@ struct tty_file_private {
#define TTY_WRITE_FLUSH(tty) tty_write_flush((tty)) #define TTY_WRITE_FLUSH(tty) tty_write_flush((tty))
#ifdef CONFIG_TTY
extern void console_init(void);
extern void tty_kref_put(struct tty_struct *tty);
extern struct pid *tty_get_pgrp(struct tty_struct *tty);
extern void tty_vhangup_self(void);
extern void disassociate_ctty(int priv);
extern dev_t tty_devnum(struct tty_struct *tty);
extern void proc_clear_tty(struct task_struct *p);
extern struct tty_struct *get_current_tty(void);
/* tty_io.c */
extern int __init tty_init(void);
#else
static inline void console_init(void)
{ }
static inline void tty_kref_put(struct tty_struct *tty)
{ }
static inline struct pid *tty_get_pgrp(struct tty_struct *tty)
{ return NULL; }
static inline void tty_vhangup_self(void)
{ }
static inline void disassociate_ctty(int priv)
{ }
static inline dev_t tty_devnum(struct tty_struct *tty)
{ return 0; }
static inline void proc_clear_tty(struct task_struct *p)
{ }
static inline struct tty_struct *get_current_tty(void)
{ return NULL; }
/* tty_io.c */
static inline int __init tty_init(void)
{ return 0; }
#endif
extern void tty_write_flush(struct tty_struct *); extern void tty_write_flush(struct tty_struct *);
extern struct ktermios tty_std_termios; extern struct ktermios tty_std_termios;
extern void console_init(void);
extern int vcs_init(void); extern int vcs_init(void);
extern struct class *tty_class; extern struct class *tty_class;
@ -342,7 +374,6 @@ static inline struct tty_struct *tty_kref_get(struct tty_struct *tty)
kref_get(&tty->kref); kref_get(&tty->kref);
return tty; return tty;
} }
extern void tty_kref_put(struct tty_struct *tty);
extern int tty_paranoia_check(struct tty_struct *tty, struct inode *inode, extern int tty_paranoia_check(struct tty_struct *tty, struct inode *inode,
const char *routine); const char *routine);
@ -374,18 +405,15 @@ extern void tty_driver_remove_tty(struct tty_driver *driver,
struct tty_struct *tty); struct tty_struct *tty);
extern void tty_free_termios(struct tty_struct *tty); extern void tty_free_termios(struct tty_struct *tty);
extern int is_current_pgrp_orphaned(void); extern int is_current_pgrp_orphaned(void);
extern struct pid *tty_get_pgrp(struct tty_struct *tty);
extern int is_ignored(int sig); extern int is_ignored(int sig);
extern int tty_signal(int sig, struct tty_struct *tty); extern int tty_signal(int sig, struct tty_struct *tty);
extern void tty_hangup(struct tty_struct *tty); extern void tty_hangup(struct tty_struct *tty);
extern void tty_vhangup(struct tty_struct *tty); extern void tty_vhangup(struct tty_struct *tty);
extern void tty_vhangup_locked(struct tty_struct *tty); extern void tty_vhangup_locked(struct tty_struct *tty);
extern void tty_vhangup_self(void);
extern void tty_unhangup(struct file *filp); extern void tty_unhangup(struct file *filp);
extern int tty_hung_up_p(struct file *filp); extern int tty_hung_up_p(struct file *filp);
extern void do_SAK(struct tty_struct *tty); extern void do_SAK(struct tty_struct *tty);
extern void __do_SAK(struct tty_struct *tty); extern void __do_SAK(struct tty_struct *tty);
extern void disassociate_ctty(int priv);
extern void no_tty(void); extern void no_tty(void);
extern void tty_flush_to_ldisc(struct tty_struct *tty); extern void tty_flush_to_ldisc(struct tty_struct *tty);
extern void tty_buffer_free_all(struct tty_port *port); extern 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);
extern int tty_mode_ioctl(struct tty_struct *tty, struct file *file, extern int tty_mode_ioctl(struct tty_struct *tty, struct file *file,
unsigned int cmd, unsigned long arg); unsigned int cmd, unsigned long arg);
extern int tty_perform_flush(struct tty_struct *tty, unsigned long arg); extern int tty_perform_flush(struct tty_struct *tty, unsigned long arg);
extern dev_t tty_devnum(struct tty_struct *tty);
extern void proc_clear_tty(struct task_struct *p);
extern struct tty_struct *get_current_tty(void);
extern void tty_default_fops(struct file_operations *fops); extern void tty_default_fops(struct file_operations *fops);
extern struct tty_struct *alloc_tty_struct(void); extern struct tty_struct *alloc_tty_struct(void);
extern int tty_alloc_file(struct file *file); extern int tty_alloc_file(struct file *file);
@ -543,9 +568,6 @@ static inline int tty_audit_push_task(struct task_struct *tsk,
} }
#endif #endif
/* tty_io.c */
extern int __init tty_init(void);
/* tty_ioctl.c */ /* tty_ioctl.c */
extern int n_tty_ioctl_helper(struct tty_struct *tty, struct file *file, extern int n_tty_ioctl_helper(struct tty_struct *tty, struct file *file,
unsigned int cmd, unsigned long arg); unsigned int cmd, unsigned long arg);

View File

@ -22,6 +22,7 @@ config KGDB_SERIAL_CONSOLE
tristate "KGDB: use kgdb over the serial console" tristate "KGDB: use kgdb over the serial console"
select CONSOLE_POLL select CONSOLE_POLL
select MAGIC_SYSRQ select MAGIC_SYSRQ
depends on TTY
default y default y
help help
Share a serial console with kgdb. Sysrq-g must be used Share a serial console with kgdb. Sysrq-g must be used

View File

@ -12,6 +12,7 @@ config BT_RFCOMM
config BT_RFCOMM_TTY config BT_RFCOMM_TTY
bool "RFCOMM TTY support" bool "RFCOMM TTY support"
depends on BT_RFCOMM depends on BT_RFCOMM
depends on TTY
help help
This option enables TTY emulation support for RFCOMM channels. This option enables TTY emulation support for RFCOMM channels.

View File

@ -1,6 +1,6 @@
config IRCOMM config IRCOMM
tristate "IrCOMM protocol" tristate "IrCOMM protocol"
depends on IRDA depends on IRDA && TTY
help help
Say Y here if you want to build support for the IrCOMM protocol. Say Y here if you want to build support for the IrCOMM protocol.
To compile it as modules, choose M here: the modules will be To compile it as modules, choose M here: the modules will be

View File

@ -34,7 +34,7 @@ config SND_SOC_ALL_CODECS
select SND_SOC_CS42L73 if I2C select SND_SOC_CS42L73 if I2C
select SND_SOC_CS4270 if I2C select SND_SOC_CS4270 if I2C
select SND_SOC_CS4271 if SND_SOC_I2C_AND_SPI select SND_SOC_CS4271 if SND_SOC_I2C_AND_SPI
select SND_SOC_CX20442 select SND_SOC_CX20442 if TTY
select SND_SOC_DA7210 if I2C select SND_SOC_DA7210 if I2C
select SND_SOC_DA732X if I2C select SND_SOC_DA732X if I2C
select SND_SOC_DA9055 if I2C select SND_SOC_DA9055 if I2C
@ -236,6 +236,7 @@ config SND_SOC_CS4271
config SND_SOC_CX20442 config SND_SOC_CX20442
tristate tristate
depends on TTY
config SND_SOC_JZ4740_CODEC config SND_SOC_JZ4740_CODEC
select REGMAP_MMIO select REGMAP_MMIO