linux/drivers
Jesse Barnes cfafca8067 fbdev: fbcon: console unregistration from unregister_framebuffer
This allows for proper console unregistration via the VT layer, and updates
the FB layer to use it.  This makes debugging new console drivers much easier,
since you can properly clean them up before unloading.

[adaplas]
unregister_framebuffer() is typically called as part of the driver's
module_exit(). Doing so otherwise will freeze the machine as the VT layer is
holding reference counts on fbcon, and fbcon on the driver.  With this change,
it allows unregister_framebuffer() to be called safely anywhere as needed.

Additions from the original:  If multiple drivers are used by fbcon, and if
one of them unregisters, a driver will take over the consoles vacated by the
outgoing one (via set_con2fb_map).   Once only the outgoing driver remains,
then fbcon will unbind from the VT layer (if CONFIG_HW_CONSOLE_UNBINDING is
set to y).

It is important that these drivers implement fb_open() and fb_release()
just to ensure that no other process is using the driver. Likewise, these
drivers _must_ check the return value of unregister_framebuffer().

[akpm@linux-foundation.org: make fbcon_unbind() stub inline]
Signed-off-by: Jesse Barnes <jesse.barnes@intel.com>
Signed-off-by: Antonino Daplas <adaplas@gmail.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-17 10:23:11 -07:00
..
acorn [PATCH] fix request->cmd == INT cases 2007-07-10 08:03:34 +02:00
acpi PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
amba
ata Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2007-07-12 13:40:57 -07:00
atm Introduce CONFIG_VIRT_TO_BUS 2007-07-16 09:05:42 -07:00
auxdisplay Use menuconfig objects II - auxdisplay 2007-07-16 09:05:40 -07:00
base dma: make dma pool to use kmalloc_node 2007-07-16 09:05:51 -07:00
block unregister_blkdev(): delete redundant message 2007-07-17 10:23:03 -07:00
bluetooth [Bluetooth] Remove the redundant non-seekable llseek method 2007-07-11 06:53:45 +02:00
cdrom bsg: add a request_queue argument to scsi_cmd_ioctl() 2007-07-16 08:52:45 +02:00
char fbcon: allow fbcon to use the primary display driver 2007-07-17 10:23:11 -07:00
clocksource PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
connector Use menuconfig objects: connector 2007-07-16 09:05:40 -07:00
cpufreq [CPUFREQ] Restore previously used governor on a hot-replugged CPU 2007-07-13 01:29:51 -04:00
crypto Use menuconfig objects: crypto hw 2007-07-16 09:05:40 -07:00
dio
dma dma-mapping: prevent dma dependent code from linking on !HAS_DMA archs 2007-07-16 09:05:45 -07:00
edac Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
eisa
fc4
firewire firewire: fw-sbp2: fix DMA mapping of management ORBs 2007-07-10 00:07:49 +02:00
firmware edd: switch to pci_get based API 2007-07-16 09:05:42 -07:00
hid USB: add reset_resume method 2007-07-12 16:34:30 -07:00
hwmon SPI: add 3wire mode flag 2007-07-17 10:23:04 -07:00
i2c parse error, drivers/i2c/busses/i2c-pmcmsp.c 2007-07-17 10:22:59 -07:00
ide Slab allocators: Replace explicit zeroing with __GFP_ZERO 2007-07-17 10:23:02 -07:00
ieee1394 Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
infiniband Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-15 16:51:54 -07:00
input Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
isdn i4l: leak in eicon/idifunc.c 2007-07-17 10:23:06 -07:00
kvm KVM: Prevent guest fpu state from leaking into the host 2007-06-15 12:30:59 +03:00
leds [S390] Kconfig: menus with depends on HAS_IOMEM. 2007-05-10 15:46:07 +02:00
macintosh Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
mca
md unregister_blkdev() delete redundant messages in callers 2007-07-17 10:23:03 -07:00
media Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
message i2o debug output cleanup 2007-07-17 10:23:06 -07:00
mfd Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
misc IBMASM: must depend on CONFIG_INPUT 2007-07-17 10:23:04 -07:00
mmc Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
mtd Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
net Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
nubus
oprofile Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
parisc sysfs: kill unnecessary attribute->owner 2007-07-11 16:09:06 -07:00
parport parport_pc: it887x fix 2007-07-16 09:05:50 -07:00
pci Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2007-07-16 17:58:08 -07:00
pcmcia powerpc: 8xx: fix whitespace and indentation 2007-07-17 10:23:02 -07:00
pnp Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
power Merge git://git.infradead.org/battery-2.6 2007-07-15 16:56:12 -07:00
ps3 [POWERPC] PS3: Storage Driver Core 2007-06-28 19:19:20 +10:00
rapidio sysfs: add parameter "struct bin_attribute *" in .read/.write methods for sysfs binary attributes 2007-07-11 16:09:09 -07:00
rtc rtc-ds1307 becomes new-style i2c driver 2007-07-17 10:23:09 -07:00
s390 unregister_blkdev() delete redundant messages in callers 2007-07-17 10:23:03 -07:00
sbus unregister_blkdev() delete redundant messages in callers 2007-07-17 10:23:03 -07:00
scsi Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
serial sb1250-duart.c: SB1250 DUART serial support 2007-07-17 10:23:03 -07:00
sh
sn
spi use mutex instead of semaphore in SPI core/init code 2007-07-17 10:23:05 -07:00
tc [MIPS] DEC: Fix modpost warning. 2007-07-12 17:41:07 +01:00
telephony Use menuconfig objects II - Telephony 2007-07-16 09:05:40 -07:00
usb Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
video fbdev: fbcon: console unregistration from unregister_framebuffer 2007-07-17 10:23:11 -07:00
w1 Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
zorro sysfs: add parameter "struct bin_attribute *" in .read/.write methods for sysfs binary attributes 2007-07-11 16:09:09 -07:00
Kconfig Merge git://git.infradead.org/~dwmw2/battery-2.6 2007-07-10 14:47:59 -07:00
Makefile [BATTERY] Universal power supply class (was: battery class) 2007-07-10 11:25:44 +01:00