linux/drivers/char
Antonino A. Daplas 3e795de763 [PATCH] VT binding: Add binding/unbinding support for the VT console
The framebuffer console is now able to dynamically bind and unbind from the VT
console layer.  Due to the way the VT console layer works, the drivers
themselves decide when to bind or unbind.  However, it was decided that
binding must be controlled, not by the drivers themselves, but by the VT
console layer.  With this, dynamic binding is possible for all VT console
drivers, not just fbcon.

Thus, the VT console layer will impose the following to all VT console
drivers:

- all registered VT console drivers will be entered in a private list
- drivers can register themselves to the VT console layer, but they cannot
  decide when to bind or unbind. (Exception: To maintain backwards
  compatibility, take_over_console() will automatically bind the driver after
  registration.)
- drivers can remove themselves from the list by unregistering from the VT
  console layer. A prerequisite for unregistration is that the driver must not
  be bound.

The following functions are new in the vt.c:

register_con_driver() - public function, this function adds the VT console
driver to an internal list maintained by the VT console

bind_con_driver() - private function, it binds the driver to the console

take_over_console() is changed to call register_con_driver() followed by a
bind_con_driver().  This is the only time drivers can decide when to bind to
the VT layer.  This is to maintain backwards compatibility.

unbind_con_driver() - private function, it unbinds the driver from its
console.  The vacated consoles will be taken over by the default boot console
driver.

unregister_con_driver() - public function, removes the driver from the
internal list maintained by the VT console.  It will only succeed if the
driver is currently unbound.

con_is_bound() checks if the driver is currently bound or not

give_up_console() is just a wrapper to unregister_con_driver().

There are also 3 additional functions meant to be called only by the tty layer
for sysfs control:

	vt_bind() - calls bind_con_driver()
	vt_unbind() - calls unbind_con_driver()
	vt_show_drivers() - shows the list of registered drivers

Most VT console drivers will continue to work as is, but might have problems
when unbinding or binding which should be fixable with minimal changes.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-06-26 09:58:33 -07:00
..
agp Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2006-06-23 07:52:36 -07:00
drm drm: radeon constify radeon microcode 2006-06-24 17:37:48 +10:00
ftape drivers/char/ftape/lowlevel/fdc-io.c: Correct a comment 2006-03-26 19:18:07 +02:00
hw_random [PATCH] Add TI OMAP CPU family HW RNG driver 2006-06-26 09:58:19 -07:00
ip2 [PATCH] char/ip2: more section fixes (replacement) 2006-06-25 10:01:16 -07:00
ipmi [PATCH] drivers: use list_move() 2006-06-26 09:58:18 -07:00
mwave [PATCH] fix array overrun in drivers/char/mwave/mwavedd.c 2006-04-28 08:33:46 -07:00
pcmcia [PATCH] More !tty cleanups in drivers/char 2006-06-25 10:01:19 -07:00
rio [PATCH] missing readb/readw in rio 2006-05-27 02:27:23 -04:00
tpm [PATCH] tpm: more bios log parsing fixes 2006-05-31 16:27:10 -07:00
watchdog [WATCHDOG] s3c2410_wdt.c stop watchdog after boot 2006-05-15 21:38:14 +02:00
.gitignore gitignore: misc files 2006-01-01 22:21:50 +01:00
ChangeLog
Kconfig [PATCH] Add new generic HW RNG core 2006-06-26 09:58:19 -07:00
Makefile [PATCH] Add new generic HW RNG core 2006-06-26 09:58:19 -07:00
amiserial.c [PATCH] kill _INLINE_ 2006-03-23 07:38:16 -08:00
applicom.c [PATCH] drivers/char/applicom.c: proper module_{init,exit} 2006-06-25 10:01:05 -07:00
applicom.h
cd1865.h
consolemap.c [PATCH] kfree cleanup: drivers/char 2005-11-07 07:54:02 -08:00
cp437.uni
cs5535_gpio.c [PATCH] cs5535_gpio.c: call cdev_del() during module_exit to unmap kobject references and other cleanups 2006-04-20 07:54:03 -07:00
cyclades.c [PATCH] Cyclades Cleanup 2006-06-25 10:01:17 -07:00
decserial.c
defkeymap.c_shipped
defkeymap.map
digi.h
digi1.h
digiFep1.h
digiPCI.h
ds1286.c
ds1302.c
ds1620.c
dsp56k.c [PATCH] m68k: dsp56k __user annotations 2006-01-12 09:09:04 -08:00
dtlk.c [PATCH] Remove extraneous \n in doubletalk init printk. 2006-04-11 06:18:41 -07:00
ec3104_keyb.c
efirtc.c
epca.c BUG_ON() Conversion in drivers/char 2006-03-26 18:17:21 +02:00
epca.h
epcaconfig.h
esp.c [PATCH] Clean up char/esp.c 2006-06-25 10:01:17 -07:00
generic_nvram.c [PATCH] powerpc: Kill _machine and hard-coded platform numbers 2006-03-28 23:15:54 +11:00
generic_serial.c [PATCH] sem2mutex: serial ->port_write_mutex 2006-03-23 07:38:14 -08:00
genrtc.c [PATCH] genrtc: fix read on 64-bit platforms 2006-05-01 18:17:47 -07:00
hangcheck-timer.c [PATCH] hangcheck: remove monotomic_clock on x86 2006-06-26 09:58:20 -07:00
hpet.c HPET: fix ACPI memory range length handling 2006-04-01 22:07:51 -05:00
hvc_console.c [PATCH] powerpc: Make rtas console _much_ faster 2006-06-09 21:24:18 +10:00
hvc_console.h [PATCH] powerpc: hvc_console updates 2006-03-28 16:45:26 +11:00
hvc_rtas.c [PATCH] powerpc: Cleanup hvc_rtas.c a little 2006-06-09 21:24:20 +10:00
hvc_vio.c [PATCH] powerpc: hvc_console updates 2006-03-28 16:45:26 +11:00
hvcs.c [PATCH] powerpc/pseries: Change H_StudlyCaps to H_SHOUTING_CAPS 2006-04-01 22:36:57 +11:00
hvsi.c [PATCH] powerpc: Quiet HVSI boot output 2006-04-22 18:45:07 +10:00
i8k.c [PATCH] I8K: fix /proc reporting of blank service tags 2005-11-12 11:42:32 -08:00
ip27-rtc.c
isicom.c [PATCH] More !tty cleanups in drivers/char 2006-06-25 10:01:19 -07:00
istallion.c [PATCH] drivers/char/[i]stallion: Clean up kmalloc usage 2006-03-31 12:18:56 -08:00
ite_gpio.c
keyboard.c [PATCH] fix magic sysrq on strange keyboards 2006-06-26 09:58:17 -07:00
lcd.c Resurrect Cobalt support for 2.6. 2005-10-29 19:30:42 +01:00
lcd.h Resurrect Cobalt support for 2.6. 2005-10-29 19:30:42 +01:00
lp.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
mbcs.c [IA64] mbcs_init() should give up unless running on sn2 2005-10-04 09:39:18 -07:00
mbcs.h
mem.c [PATCH] splice: add ->splice_write support for /dev/null 2006-04-26 14:40:08 +02:00
misc.c [PATCH] mark f_ops const in the inode 2006-03-28 09:16:05 -08:00
mmtimer.c [PATCH] mm: remove VM_LOCKED before remap_pfn_range and drop VM_SHM 2006-06-25 10:00:55 -07:00
moxa.c [PATCH] moxa serial: add proper capability check 2006-01-10 09:45:36 -08:00
mxser.c [PATCH] moxa: partial CodingStyle cleanup & spelling fixes 2006-06-25 10:01:08 -07:00
mxser.h [PATCH] Typo fixes 2006-03-28 09:16:08 -08:00
n_hdlc.c [PATCH] n_hdlc.c: remove unused declaration 2006-01-10 08:02:00 -08:00
n_r3964.c [PATCH] R3964: fix GFP_KERNEL allocations in timer function 2006-06-25 10:01:17 -07:00
n_tty.c [PATCH] Fix for the PPTP hangs that have been reported 2006-06-11 20:40:39 -07:00
nvram.c [PATCH] drivers/char: Use ARRAY_SIZE macro 2006-01-10 08:01:56 -08:00
nwbutton.c
nwbutton.h
nwflash.c [PATCH] sem2mutex: drivers/char/ 2006-03-23 07:38:11 -08:00
ppdev.c [PATCH] parport: move PP_MAJOR from ppdev.h to major.h 2006-03-25 08:22:53 -08:00
pty.c [PATCH] TTY layer buffering revamp 2006-01-10 08:01:59 -08:00
qtronix.c qtronix.c: Handle kmalloc failure. 2005-10-29 19:30:55 +01:00
qtronixmap.c_shipped
qtronixmap.map
random.c [IPV6]: Unexport secure_ipv6_port_ephemeral 2006-04-09 22:29:17 -07:00
raw.c [PATCH] sem2mutex: drivers: raw, connector, dcdbas, ppp_generic 2006-03-23 07:38:10 -08:00
riscom8.c [PATCH] Remove MODULE_PARM 2006-03-25 08:22:52 -08:00
riscom8.h
riscom8_reg.h
rocket.c [PATCH] fix memory leak in rocketport rp_do_receive 2006-06-25 10:01:22 -07:00
rocket.h
rocket_int.h
rtc.c [SPARC64]: Use in-kernel PROM tree for EBUS and ISA. 2006-06-23 23:15:28 -07:00
s3c2410-rtc.c [PATCH] handle errors returned by platform_get_irq*() 2006-03-20 13:42:57 -08:00
scan_keyb.c
scan_keyb.h
scc.h [PATCH] m68k: static vs. extern in scc.h 2006-01-12 09:09:00 -08:00
scx200_gpio.c
selection.c [PATCH] TTY layer buffering revamp 2006-01-10 08:01:59 -08:00
ser_a2232.c [PATCH] sem2mutex: serial ->port_write_mutex 2006-03-23 07:38:14 -08:00
ser_a2232.h
ser_a2232fw.ax
ser_a2232fw.h
serial167.c [PATCH] remove unused tmp_buf_sem's 2006-01-14 10:41:42 -08:00
snsc.c [PATCH] Altix snsc: duplicate kobject fix 2006-04-22 09:19:53 -07:00
snsc.h [IA64-SGI] Handle SC env. powerdown events 2006-01-26 13:32:26 -08:00
snsc_event.c [PATCH] snsc kmalloc2kzalloc 2006-03-23 07:38:15 -08:00
sonypi.c Pull acpi_bus_register_driver into release branch 2006-06-15 21:28:57 -04:00
specialix.c [PATCH] More !tty cleanups in drivers/char 2006-06-25 10:01:19 -07:00
specialix_io8.h
stallion.c [PATCH] drivers/char/[i]stallion: Clean up kmalloc usage 2006-03-31 12:18:56 -08:00
sx.c [PATCH] sem2mutex: serial ->port_write_mutex 2006-03-23 07:38:14 -08:00
sx.h
sxboards.h
sxwindow.h
synclink.c [PATCH] Typo fixes 2006-03-28 09:16:08 -08:00
synclink_gt.c [PATCH] synclink_gt: add GT2 adapter support 2006-06-25 10:01:24 -07:00
synclinkmp.c [PATCH] More !tty cleanups in drivers/char 2006-06-25 10:01:19 -07:00
sysrq.c [PATCH] sysrq cleanup 2006-03-25 08:22:52 -08:00
tb0219.c [PATCH] tb0219: convert to the new platform device interface 2006-03-22 07:53:56 -08:00
tipar.c [PATCH] tipar oops fix 2006-04-28 08:33:46 -07:00
tlclk.c [PATCH] MPBL0010 driver sysfs permissions wide open 2006-04-11 06:18:43 -07:00
toshiba.c [PATCH] remove ISA legacy functions: drivers/char/toshiba.c 2006-03-24 07:33:19 -08:00
tty_io.c [PATCH] TTY: return class device pointer from tty_register_device() 2006-06-21 12:40:47 -07:00
tty_ioctl.c
vc_screen.c [PATCH] fix ia64 compile failure with gcc4.1 2005-12-29 10:19:21 -08:00
viocons.c [PATCH] powerpc: remove bitfields from HvLpEvent 2006-01-12 20:09:29 +11:00
viotape.c [PATCH] powerpc: update iSeries viocd and viotape device-tree 2006-05-19 14:35:31 +10:00
vme_scc.c [PATCH] sem2mutex: serial ->port_write_mutex 2006-03-23 07:38:14 -08:00
vr41xx_giu.c [PATCH] vr41xx: convert to the new platform device interface 2006-03-22 07:53:56 -08:00
vt.c [PATCH] VT binding: Add binding/unbinding support for the VT console 2006-06-26 09:58:33 -07:00
vt_ioctl.c [PATCH] Only disallow _setting_ of function key string 2005-11-07 07:53:39 -08:00