Skip to content

Commit

Permalink
tty: Added a CONFIG_TTY option to allow removal of TTY
Browse files Browse the repository at this point in the history
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 <[email protected]>
Reviewed-by: Jamey Sharp <[email protected]>
Reviewed-by: Josh Triplett <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
OneOfMany07 authored and gregkh committed Jan 19, 2013
1 parent a1bf958 commit 4f73bc4
Show file tree
Hide file tree
Showing 55 changed files with 165 additions and 47 deletions.
2 changes: 2 additions & 0 deletions arch/alpha/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ choice

config ALPHA_GENERIC
bool "Generic"
depends on TTY
help
A generic kernel will run on all supported Alpha hardware.

Expand Down Expand Up @@ -491,6 +492,7 @@ config VGA_HOSE

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
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
---help---
There are two different types of booting firmware on Alphas: SRM,
Expand Down
1 change: 1 addition & 0 deletions arch/ia64/hp/sim/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ config HP_SIMETH

config HP_SIMSERIAL
bool "Simulated serial driver support"
depends on TTY

config HP_SIMSERIAL_CONSOLE
bool "Console for HP simulator"
Expand Down
2 changes: 1 addition & 1 deletion arch/m68k/Kconfig.devices
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ config NFBLOCK

config NFCON
tristate "NatFeat console driver"
depends on NATFEAT
depends on TTY && NATFEAT
help
Say Y to include support for the ARAnyM NatFeat console driver
which allows the console output to be redirected to the stderr
Expand Down
1 change: 1 addition & 0 deletions arch/parisc/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ config PARISC
select HAVE_MOD_ARCH_SPECIFIC
select MODULES_USE_ELF_RELA
select CLONE_BACKWARDS
select TTY # Needed for pdc_cons.c

help
The PA-RISC microprocessor is designed by Hewlett-Packard and used
Expand Down
1 change: 1 addition & 0 deletions arch/tile/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ config DEBUG_COPY_FROM_USER
def_bool n

config HVC_TILE
depends on TTY
select HVC_DRIVER
def_bool y

Expand Down
1 change: 1 addition & 0 deletions arch/um/Kconfig.common
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ config UML
select GENERIC_CPU_DEVICES
select GENERIC_IO
select GENERIC_CLOCKEVENTS
select TTY # Needed for line.c

config MMU
bool
Expand Down
1 change: 1 addition & 0 deletions arch/xtensa/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ choice

config XTENSA_PLATFORM_ISS
bool "ISS"
depends on TTY
select XTENSA_CALIBRATE_CCOUNT
select SERIAL_CONSOLE
select XTENSA_ISS_NETWORK
Expand Down
1 change: 1 addition & 0 deletions drivers/bluetooth/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ config BT_HCIBTSDIO

config BT_HCIUART
tristate "HCI UART driver"
depends on TTY
help
Bluetooth HCI UART driver.
This driver is required if you want to use Bluetooth devices with
Expand Down
7 changes: 4 additions & 3 deletions drivers/char/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ source "drivers/tty/serial/Kconfig"

config TTY_PRINTK
bool "TTY driver to output user messages via printk"
depends on EXPERT
depends on EXPERT && TTY
default n
---help---
If you say Y here, the support for writing user messages (i.e.
Expand Down Expand Up @@ -159,7 +159,7 @@ source "drivers/tty/hvc/Kconfig"

config VIRTIO_CONSOLE
tristate "Virtio console"
depends on VIRTIO
depends on VIRTIO && TTY
select HVC_DRIVER
help
Virtio console for use with lguest and other hypervisors.
Expand Down Expand Up @@ -392,6 +392,7 @@ config XILINX_HWICAP

config R3964
tristate "Siemens R3964 line discipline"
depends on TTY
---help---
This driver allows synchronous communication with devices using the
Siemens R3964 packet protocol. Unless you are dealing with special
Expand Down Expand Up @@ -439,7 +440,7 @@ source "drivers/char/pcmcia/Kconfig"

config MWAVE
tristate "ACP Modem (Mwave) support"
depends on X86
depends on X86 && TTY
select SERIAL_8250
---help---
The ACP modem (Mwave) for Linux is a WinModem. It is composed of a
Expand Down
4 changes: 2 additions & 2 deletions drivers/char/pcmcia/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ menu "PCMCIA character devices"

config SYNCLINK_CS
tristate "SyncLink PC Card support"
depends on PCMCIA
depends on PCMCIA && TTY
help
Enable support for the SyncLink PC Card serial adapter, running
asynchronous and HDLC communications up to 512Kbps. The port is
Expand Down Expand Up @@ -45,7 +45,7 @@ config CARDMAN_4040

config IPWIRELESS
tristate "IPWireless 3G UMTS PCMCIA card support"
depends on PCMCIA && NETDEVICES
depends on PCMCIA && NETDEVICES && TTY
select PPP
help
This is a driver for 3G UMTS PCMCIA card from IPWireless company. In
Expand Down
2 changes: 1 addition & 1 deletion drivers/i2c/busses/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -803,7 +803,7 @@ config I2C_PARPORT_LIGHT

config I2C_TAOS_EVM
tristate "TAOS evaluation module"
depends on EXPERIMENTAL
depends on EXPERIMENTAL && TTY
select SERIO
select SERIO_SERPORT
default n
Expand Down
4 changes: 4 additions & 0 deletions drivers/input/joystick/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,8 @@ config JOYSTICK_TMDC

source "drivers/input/joystick/iforce/Kconfig"

if TTY

config JOYSTICK_WARRIOR
tristate "Logitech WingMan Warrior joystick"
select SERIO
Expand Down Expand Up @@ -205,6 +207,8 @@ config JOYSTICK_ZHENHUA
To compile this driver as a module, choose M here: the
module will be called zhenhua.

endif # TTY

config JOYSTICK_DB9
tristate "Multisystem, Sega Genesis, Saturn joysticks and gamepads"
depends on PARPORT
Expand Down
10 changes: 9 additions & 1 deletion drivers/input/keyboard/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ config KEYBOARD_ATARI
config KEYBOARD_ATKBD
tristate "AT keyboard" if EXPERT || !X86
default y
depends on TTY
select SERIO
select SERIO_LIBPS2
select SERIO_I8042 if X86
Expand Down Expand Up @@ -153,6 +154,7 @@ config KEYBOARD_BFIN

config KEYBOARD_LKKBD
tristate "DECstation/VAXstation LK201/LK401 keyboard"
depends on TTY
select SERIO
help
Say Y here if you want to use a LK201 or LK401 style serial
Expand Down Expand Up @@ -268,7 +270,7 @@ config KEYBOARD_HIL_OLD

config KEYBOARD_HIL
tristate "HP HIL keyboard/pointer support"
depends on GSC || HP300
depends on (GSC || HP300) && TTY
default y
select HP_SDC
select HIL_MLC
Expand Down Expand Up @@ -400,6 +402,7 @@ config KEYBOARD_IMX

config KEYBOARD_NEWTON
tristate "Newton keyboard"
depends on TTY
select SERIO
help
Say Y here if you have a Newton keyboard on a serial port.
Expand Down Expand Up @@ -479,6 +482,8 @@ config KEYBOARD_SAMSUNG
To compile this driver as a module, choose M here: the
module will be called samsung-keypad.

if TTY

config KEYBOARD_STOWAWAY
tristate "Stowaway keyboard"
select SERIO
Expand All @@ -501,6 +506,8 @@ config KEYBOARD_SUNKBD
To compile this driver as a module, choose M here: the
module will be called sunkbd.

endif # TTY

config KEYBOARD_SH_KEYSC
tristate "SuperH KEYSC keypad support"
depends on SUPERH || ARCH_SHMOBILE
Expand Down Expand Up @@ -597,6 +604,7 @@ config KEYBOARD_TWL4030

config KEYBOARD_XTKBD
tristate "XT keyboard"
depends on TTY
select SERIO
help
Say Y here if you want to use the old IBM PC/XT keyboard (or
Expand Down
3 changes: 3 additions & 0 deletions drivers/input/mouse/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ if INPUT_MOUSE

config MOUSE_PS2
tristate "PS/2 mouse"
depends on TTY
default y
select SERIO
select SERIO_LIBPS2
Expand Down Expand Up @@ -138,6 +139,7 @@ config MOUSE_PS2_OLPC

config MOUSE_SERIAL
tristate "Serial mouse"
depends on TTY
select SERIO
help
Say Y here if you have a serial (RS-232, COM port) mouse connected
Expand Down Expand Up @@ -262,6 +264,7 @@ config MOUSE_RISCPC

config MOUSE_VSXXXAA
tristate "DEC VSXXX-AA/GA mouse and VSXXX-AB tablet"
depends on TTY
select SERIO
help
Say Y (or M) if you want to use a DEC VSXXX-AA (hockey
Expand Down
1 change: 1 addition & 0 deletions drivers/input/serio/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
config SERIO
tristate "Serial I/O support" if EXPERT || !X86
default y
depends on TTY
help
Say Yes here if you have any input device that uses serial I/O to
communicate with the system. This includes the
Expand Down
22 changes: 22 additions & 0 deletions drivers/input/touchscreen/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,8 @@ config TOUCHSCREEN_DA9052
To compile this driver as a module, choose M here: the
module will be called da9052_tsi.

if TTY

config TOUCHSCREEN_DYNAPRO
tristate "Dynapro serial touchscreen"
select SERIO
Expand All @@ -216,6 +218,8 @@ config TOUCHSCREEN_HAMPSHIRE
To compile this driver as a module, choose M here: the
module will be called hampshire.

endif # TTY

config TOUCHSCREEN_EETI
tristate "EETI touchscreen panel support"
depends on I2C
Expand All @@ -237,6 +241,7 @@ config TOUCHSCREEN_EGALAX

config TOUCHSCREEN_FUJITSU
tristate "Fujitsu serial touchscreen"
depends on TTY
select SERIO
help
Say Y here if you have the Fujitsu touchscreen (such as one
Expand Down Expand Up @@ -275,6 +280,8 @@ config TOUCHSCREEN_S3C2410
To compile this driver as a module, choose M here: the
module will be called s3c2410_ts.

if TTY

config TOUCHSCREEN_GUNZE
tristate "Gunze AHL-51S touchscreen"
select SERIO
Expand Down Expand Up @@ -311,6 +318,8 @@ config TOUCHSCREEN_WACOM_W8001
To compile this driver as a module, choose M here: the
module will be called wacom_w8001.

endif # TTY

config TOUCHSCREEN_WACOM_I2C
tristate "Wacom Tablet support (I2C)"
depends on I2C
Expand Down Expand Up @@ -369,6 +378,8 @@ config TOUCHSCREEN_MMS114
To compile this driver as a module, choose M here: the
module will be called mms114.

if TTY

config TOUCHSCREEN_MTOUCH
tristate "MicroTouch serial touchscreens"
select SERIO
Expand All @@ -393,6 +404,8 @@ config TOUCHSCREEN_INEXIO
To compile this driver as a module, choose M here: the
module will be called inexio.

endif # TTY

config TOUCHSCREEN_INTEL_MID
tristate "Intel MID platform resistive touchscreen"
depends on INTEL_SCU_IPC
Expand Down Expand Up @@ -450,6 +463,7 @@ config TOUCHSCREEN_HTCPEN

config TOUCHSCREEN_PENMOUNT
tristate "Penmount serial touchscreen"
depends on TTY
select SERIO
help
Say Y here if you have a Penmount serial touchscreen connected to
Expand Down Expand Up @@ -493,6 +507,8 @@ config TOUCHSCREEN_TNETV107X
To compile this driver as a module, choose M here: the
module will be called tnetv107x-ts.

if TTY

config TOUCHSCREEN_TOUCHRIGHT
tristate "Touchright serial touchscreen"
select SERIO
Expand All @@ -517,6 +533,8 @@ config TOUCHSCREEN_TOUCHWIN
To compile this driver as a module, choose M here: the
module will be called touchwin.

endif # TTY

config TOUCHSCREEN_TI_AM335X_TSC
tristate "TI Touchscreen Interface"
depends on MFD_TI_AM335X_TSCADC
Expand Down Expand Up @@ -790,6 +808,8 @@ config TOUCHSCREEN_USB_EASYTOUCH
Say Y here if you have an EasyTouch USB Touch controller.
If unsure, say N.

if TTY

config TOUCHSCREEN_TOUCHIT213
tristate "Sahara TouchIT-213 touchscreen"
select SERIO
Expand All @@ -813,6 +833,8 @@ config TOUCHSCREEN_TSC_SERIO
To compile this driver as a module, choose M here: the
module will be called tsc40.

endif # TTY

config TOUCHSCREEN_TSC2005
tristate "TSC2005 based touchscreens"
depends on SPI_MASTER && GENERIC_HARDIRQS
Expand Down
2 changes: 1 addition & 1 deletion drivers/ipack/devices/Kconfig
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
config SERIAL_IPOCTAL
tristate "IndustryPack IP-OCTAL uart support"
depends on IPACK_BUS
depends on IPACK_BUS && TTY
help
This driver supports the IPOCTAL serial port device for the IndustryPack bus.
default n
1 change: 1 addition & 0 deletions drivers/isdn/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ if ISDN

menuconfig ISDN_I4L
tristate "Old ISDN4Linux (deprecated)"
depends on TTY
---help---
This driver allows you to use an ISDN adapter for networking
connections and as dialin/out device. The isdn-tty's have a built
Expand Down
1 change: 1 addition & 0 deletions drivers/isdn/capi/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ config CAPI_TRACE

config ISDN_CAPI_MIDDLEWARE
bool "CAPI2.0 Middleware support"
depends on TTY
help
This option will enhance the capabilities of the /dev/capi20
interface. It will provide a means of moving a data connection,
Expand Down
1 change: 1 addition & 0 deletions drivers/isdn/gigaset/Kconfig
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
menuconfig ISDN_DRV_GIGASET
tristate "Siemens Gigaset support"
depends on TTY
select CRC_CCITT
select BITREVERSE
help
Expand Down
1 change: 1 addition & 0 deletions drivers/isdn/hardware/mISDN/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ config MISDN_NETJET
tristate "Support for NETJet cards"
depends on MISDN
depends on PCI
depends on TTY
select MISDN_IPAC
select ISDN_HDLC
select ISDN_I4L
Expand Down
2 changes: 1 addition & 1 deletion drivers/lguest/Kconfig
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
config LGUEST
tristate "Linux hypervisor example code"
depends on X86_32 && EXPERIMENTAL && EVENTFD
depends on X86_32 && EXPERIMENTAL && EVENTFD && TTY
select HVC_DRIVER
---help---
This is a very simple module which allows you to run
Expand Down
Loading

0 comments on commit 4f73bc4

Please sign in to comment.