linux/drivers/video
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
..
aty radeonfb: Add support for Radeon Xpress 200M (RS485) 2007-07-17 10:23:11 -07:00
backlight sysfs: kill unnecessary attribute->owner 2007-07-11 16:09:06 -07:00
console fbdev: fbcon: console unregistration from unregister_framebuffer 2007-07-17 10:23:11 -07:00
display make drivers/video/display/display-sysfs.c:display_class static 2007-05-08 11:15:26 -07:00
geode [PATCH] Recognize video=gx1fb:... option 2007-02-12 09:48:42 -08:00
i810 Fix occurrences of "the the " 2007-05-09 08:57:56 +02:00
intelfb intelfb: fix ring space calculation 2007-05-08 11:15:26 -07:00
kyro PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
logo Use menuconfig objects II: video/logo 2007-05-08 11:15:33 -07:00
matrox Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2007-07-12 13:40:57 -07:00
mbx [PATCH] mark struct file_operations const 6 2007-02-12 09:48:45 -08:00
nvidia nvidiafb: Add proper support for Geforce 7600 chipset 2007-07-17 10:23:11 -07:00
pnx4008 [PATCH] pnx4008:fix NULL dereference in rgbfb 2006-11-16 11:43:37 -08:00
riva rivafb: Fix I2C getscl callback function 2007-05-11 08:29:37 -07:00
savage savagefb: VGA state save and restore 2007-05-08 11:15:29 -07:00
sis PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
vermilion vmlfb: framebuffer driver for Intel Vermilion Range 2007-05-08 11:15:32 -07:00
68328fb.c [PATCH] vt: Remove VT-specific declarations and definitions from tty.h 2006-07-10 13:24:16 -07:00
acornfb.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
acornfb.h
amba-clcd.c [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
amifb.c [PATCH] fbdev: remove references to non-existent fbmon_valid_timings() 2006-12-13 09:05:55 -08:00
arcfb.c arcfb: use fb_sys_read() 2007-05-08 11:15:30 -07:00
arkfb.c vt8623fb: arkfb: null pointer dereference fix 2007-06-01 08:18:28 -07:00
asiliantfb.c [PATCH] vt: Remove VT-specific declarations and definitions from tty.h 2006-07-10 13:24:16 -07:00
atafb_iplan2p2.c m68k: Atari fb revival 2007-05-04 17:59:05 -07:00
atafb_iplan2p4.c m68k: Atari fb revival 2007-05-04 17:59:05 -07:00
atafb_iplan2p8.c m68k: Atari fb revival 2007-05-04 17:59:05 -07:00
atafb_mfb.c m68k: Atari fb revival 2007-05-04 17:59:05 -07:00
atafb_utils.h m68k: Atari fb revival 2007-05-04 17:59:05 -07:00
atafb.c m68k: Atari fb revival 2007-05-04 17:59:05 -07:00
atafb.h m68k: Atari fb revival 2007-05-04 17:59:05 -07:00
atmel_lcdfb.c atmel_lcdfb: AT91/AT32 LCD Controller framebuffer driver 2007-05-11 08:29:37 -07:00
au1100fb.c [PATCH] Video: fb, kzalloc changes 2007-02-12 09:48:43 -08:00
au1100fb.h [PATCH] au11oofb: fix to remove flickering 2006-12-08 08:29:06 -08:00
au1200fb.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
au1200fb.h [PATCH] au1200fb: Alchemy Au1200 framebuffer driver 2006-03-27 08:44:55 -08:00
bt431.h
bt455.h
bw2.c [BW2]: Fix section mismatch warnings. 2007-03-09 23:11:05 -08:00
c2p.c
c2p.h
cfbcopyarea.c fbdev: consolidate common drawing functions into a header file 2007-05-08 11:15:30 -07:00
cfbfillrect.c fbdev: consolidate common drawing functions into a header file 2007-05-08 11:15:30 -07:00
cfbimgblt.c [PATCH] various fbdev files: mark structs and array read-only 2006-12-08 08:29:05 -08:00
cg3.c [SPARC/64] constify of_get_property return: drivers 2007-04-26 01:54:27 -07:00
cg6.c [SPARC64]: Fix of_iounmap() region release. 2006-12-31 14:06:05 -08:00
cg14.c [CG14]: Fix section mismatch warnings. 2007-03-09 23:10:56 -08:00
chipsfb.c fix section mismatch in chipsfb 2007-06-28 11:34:54 -07:00
cirrusfb.c cirrusfb: convert to generic boolean 2007-05-08 11:15:28 -07:00
clps711xfb.c
controlfb.c [POWERPC] Remove old interface find_devices 2007-04-24 22:09:02 +10:00
controlfb.h
cyber2000fb.c [PATCH] cyber2010 framebuffer on ARM Netwinder fix 2007-02-12 09:48:42 -08:00
cyber2000fb.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cyblafb.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
dnfb.c [PATCH] vt: Remove VT-specific declarations and definitions from tty.h 2006-07-10 13:24:16 -07:00
edid.h
epson1355fb.c fbdev: pass struct fb_info to fb_read and fb_write 2007-05-08 11:15:30 -07:00
fb_ddc.c Fix generic fb_ddc i2c edid probe msg 2006-11-16 22:18:28 -08:00
fb_defio.c fbdev: kill sparse warning in deferred IO 2007-05-08 11:15:29 -07:00
fb_draw.h fbdev: consolidate common drawing functions into a header file 2007-05-08 11:15:30 -07:00
fb_notify.c [PATCH] fbdev: statically link the framebuffer notification functions 2006-07-31 13:28:44 -07:00
fb_sys_fops.c fbdev: add fb_read/fb_write functions for framebuffers in system RAM 2007-05-08 11:15:30 -07:00
fbcmap.c [PATCH] fbcmap.c: mark structs const or __read_mostly 2006-12-08 08:29:05 -08:00
fbcvt.c [PATCH] various fbdev files: mark structs and array read-only 2006-12-08 08:29:05 -08:00
fbmem.c fbdev: fbcon: console unregistration from unregister_framebuffer 2007-07-17 10:23:11 -07:00
fbmon.c fbdev: add Ultrasharp UXGA to broken monitor database 2007-05-08 11:15:26 -07:00
fbsysfs.c fbdev: fix obvious bug in show_pan() 2007-05-08 11:15:26 -07:00
ffb.c [VIDEO] ffb: The pseudo_palette is only 16 elements long 2007-06-05 13:14:33 -07:00
fm2fb.c [PATCH] ioremap balanced with iounmap for drivers/video/fm2fb 2006-12-08 08:29:04 -08:00
g364fb.c PCI: Cleanup the includes of <linux/pci.h> 2007-05-02 19:02:35 -07:00
gbefb.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
gxt4500.c [PATCH] gxt4500: Fix colormap and PLL setting, support GXT6000P 2006-12-22 08:55:50 -08:00
hecubafb.c hecubafb: use fb_sys_read() 2007-05-08 11:15:30 -07:00
hgafb.c [PATCH] vt: Remove VT-specific declarations and definitions from tty.h 2006-07-10 13:24:16 -07:00
hitfb.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
hpfb.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
igafb.c [IGAFB]: Use pci_device_to_OF_node() on sparc. 2007-04-26 01:55:03 -07:00
imacfb.c [PATCH] x86: Fix dmi detection of MacBookPro and iMac 2006-08-27 11:01:29 -07:00
imsttfb.c [PATCH] vt: Remove VT-specific declarations and definitions from tty.h 2006-07-10 13:24:16 -07:00
imxfb.c imxfb: fix memory hole 2007-05-23 20:14:13 -07:00
imxfb.h
Kconfig [POWERPC] PS3: Frame buffer system-bus rework 2007-06-28 19:16:42 +10:00
leo.c [SPARC64]: Fix of_iounmap() region release. 2006-12-31 14:06:05 -08:00
macfb.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
macmodes.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
macmodes.h [PATCH] macmodes: Fix section warning 2006-06-26 09:58:31 -07:00
Makefile atmel_lcdfb: AT91/AT32 LCD Controller framebuffer driver 2007-05-11 08:29:37 -07:00
maxinefb.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
modedb.c VIDEO: add spaces on either side of the case "..." operator 2007-05-08 11:15:28 -07:00
neofb.c neofb: Fix pseudo_palette array overrun in neofb_setcolreg 2007-05-31 07:48:27 -07:00
offb.c [POWERPC] Rename device_is_compatible to of_device_is_compatible 2007-05-07 20:31:14 +10:00
output.c output: Add display output class support 2006-12-20 01:46:41 -05:00
p9100.c [SPARC64]: Fix of_iounmap() region release. 2006-12-31 14:06:05 -08:00
platinumfb.c PCI: Cleanup the includes of <linux/pci.h> 2007-05-02 19:02:35 -07:00
platinumfb.h
pm2fb.c pm2fb: white spaces clean up 2007-07-17 10:23:11 -07:00
pm3fb.c pm3fb: switching between X and fb fix 2007-06-01 08:18:30 -07:00
pmag-aa-fb.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
pmag-ba-fb.c [TC] mips: pmag-ba-fb: Convert to the driver model 2007-02-09 16:23:17 +00:00
pmagb-b-fb.c [TC] pmagb-b-fb: Convert to the driver model 2007-02-09 16:23:18 +00:00
ps3fb.c Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
pvr2fb.c fb: pvr2fb: A few more __devinit annotations for PCI. 2007-07-07 04:05:06 +09:00
pxafb.c VIDEO: add spaces on either side of the case "..." operator 2007-05-08 11:15:28 -07:00
pxafb.h [ARM] 3848/1: pxafb: Add option of fixing video modes and spitz QVGA mode support 2006-10-02 13:33:37 +01:00
q40fb.c [PATCH] vt: Remove VT-specific declarations and definitions from tty.h 2006-07-10 13:24:16 -07:00
s1d13xxxfb.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
s3c2410fb.c [PATCH] s3c2410fb: fix un-initialised dev field 2007-02-16 08:14:01 -08:00
s3c2410fb.h fix file specification in comments 2006-10-03 23:01:26 +02:00
s3fb.c svgalib: move fb_get_caps to svgalib 2007-05-09 12:30:57 -07:00
sa1100fb.c [ARM] 4035/1: fix collie compilation 2006-12-17 23:37:47 +00:00
sa1100fb.h [PATCH] Replace regular code with appropriate calls to container_of() 2007-02-11 11:18:06 -08:00
sbuslib.c
sbuslib.h
sgivwfb.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
skeletonfb.c skeletonfb: fix of xxxfb_setup ifdef 2007-06-01 08:18:28 -07:00
sm501fb.c sm501fb printk warning fixes 2007-05-08 11:15:34 -07:00
sstfb.c PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
sticore.h [PARISC] Fix stifb with IOREMAP and a 64-bit kernel 2006-03-30 17:48:47 +00:00
stifb.c PCI: Cleanup the includes of <linux/pci.h> 2007-05-02 19:02:35 -07:00
sunxvr500.c [VIDEO] sunxvr500fb: Fix pseudo_palette array size 2007-06-05 13:15:26 -07:00
sunxvr2500.c [VIDEO] sunxvr2500fb: Fix pseudo_palette array size 2007-06-05 13:15:01 -07:00
svgalib.c svgalib: move fb_get_caps to svgalib 2007-05-09 12:30:57 -07:00
syscopyarea.c fbdev: consolidate common drawing functions into a header file 2007-05-08 11:15:30 -07:00
sysfillrect.c fbdev: consolidate common drawing functions into a header file 2007-05-08 11:15:30 -07:00
sysimgblt.c fbdev: add drawing functions for framebuffers in system RAM 2007-05-08 11:15:30 -07:00
tcx.c [SPARC64]: Fix of_iounmap() region release. 2006-12-31 14:06:05 -08:00
tdfxfb.c [PATCH] vt: Remove VT-specific declarations and definitions from tty.h 2006-07-10 13:24:16 -07:00
tgafb.c PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
tridentfb.c [PATCH] ioremap balanced with iounmap for drivers/video/tridentfb 2006-12-08 08:29:04 -08:00
tx3912fb.c [PATCH] vt: Remove VT-specific declarations and definitions from tty.h 2006-07-10 13:24:16 -07:00
valkyriefb.c PCI: Cleanup the includes of <linux/pci.h> 2007-05-02 19:02:35 -07:00
valkyriefb.h
vesafb.c [PATCH] annotate some variables in vesafb driver as __read_mostly 2006-12-08 08:29:06 -08:00
vfb.c vfb: use fb_sys_read() and fb_sys_write() 2007-05-08 11:15:30 -07:00
vga16fb.c vga16fb: actually support widths in multiples of 8 2007-05-08 11:15:33 -07:00
vgastate.c vga: vgastate fix 2007-05-08 11:15:32 -07:00
vt8623fb.c vt8623fb: arkfb: null pointer dereference fix 2007-06-01 08:18:28 -07:00
w100fb.c w100fb: fix compile warnings 2007-05-23 20:14:13 -07:00
w100fb.h [PATCH] w100fb: Add acceleration support to ATI Imageon 2006-03-31 12:19:00 -08:00
xilinxfb.c xilinxfb: xilinx framebuffer device driver 2007-05-08 11:15:34 -07:00