summaryrefslogtreecommitdiff
path: root/include/linux/console.h
AgeCommit message (Collapse)Author
2009-03-24vcs: hook sysfs devices into object lifetime instead of "binding"Kay Sievers
During bootup performance tracing I noticed many occurrences of vca* device creation and removal, leading to the usual userspace uevent processing, which are, in this case, rather pointless. A simple test showing the kernel timing (not including all the work userspace has to do), gives us these numbers: $ time for i in `seq 1000`; do echo a > /dev/tty2; done real 0m1.142s user 0m0.015s sys 0m0.540s If we move the hook for the vcs* driver core devices from the tty "binding" to the vc allocation/deallocation, which is what the vcs* devices represent, we get the following numbers: $ time for i in `seq 1000`; do echo a > /dev/tty2; done real 0m0.152s user 0m0.030s sys 0m0.072s Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-12-29DRM: add mode setting supportDave Airlie
Add mode setting support to the DRM layer. This is a fairly big chunk of work that allows DRM drivers to provide full output control and configuration capabilities to userspace. It was motivated by several factors: - the fb layer's APIs aren't suited for anything but simple configurations - coordination between the fb layer, DRM layer, and various userspace drivers is poor to non-existent (radeonfb excepted) - user level mode setting drivers makes displaying panic & oops messages more difficult - suspend/resume of graphics state is possible in many more configurations with kernel level support This commit just adds the core DRM part of the mode setting APIs. Driver specific commits using these new structure and APIs will follow. Co-authors: Jesse Barnes <jbarnes@virtuousgeek.org>, Jakob Bornecrantz <jakob@tungstengraphics.com> Contributors: Alan Hourihane <alanh@tungstengraphics.com>, Maarten Maathuis <madman2003@gmail.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Eric Anholt <eric@anholt.net> Signed-off-by: Dave Airlie <airlied@redhat.com>
2008-05-27xen: Enable console tty by default in domU if it's not a dummyMarkus Armbruster
Without console= arguments on the kernel command line, the first console to register becomes enabled and the preferred console (the one behind /dev/console). This is normally tty (assuming CONFIG_VT_CONSOLE is enabled, which it commonly is). This is okay as long tty is a useful console. But unless we have the PV framebuffer, and it is enabled for this domain, tty0 in domU is merely a dummy. In that case, we want the preferred console to be the Xen console hvc0, and we want it without having to fiddle with the kernel command line. Commit b8c2d3dfbc117dff26058fbac316b8acfc2cb5f7 did that for us. Since we now have the PV framebuffer, we want to enable and prefer tty again, but only when PVFB is enabled. But even then we still want to enable the Xen console as well. Problem: when tty registers, we can't yet know whether the PVFB is enabled. By the time we can know (xenstore is up), the console setup game is over. Solution: enable console tty by default, but keep hvc as the preferred console. Change the preferred console to tty when PVFB probes successfully, unless we've been given console kernel parameters. Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2008-04-30Basic braille screen reader supportSamuel Thibault
This adds a minimalistic braille screen reader support. This is meant to be used by blind people e.g. on boot failures or when / cannot be mounted etc and thus the userland screen readers can not work. [akpm@linux-foundation.org: fix exports] Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Cc: Jiri Kosina <jikos@jikos.cz> Cc: Dmitry Torokhov <dtor@mail.ru> Acked-by: Alan Cox <alan@redhat.com> Cc: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-18serial: turn serial console suspend a boot rather than compile time optionAndres Salomon
Currently, there's a CONFIG_DISABLE_CONSOLE_SUSPEND that allows one to stop the serial console from being suspended when the rest of the machine goes to sleep. This is incredibly useful for debugging power management-related things; however, having it as a compile-time option has proved to be incredibly inconvenient for us (OLPC). There are plenty of times that we want serial console to not suspend, but for the most part we'd like serial console to be suspended. This drops CONFIG_DISABLE_CONSOLE_SUSPEND, and replaces it with a kernel boot parameter (no_console_suspend). By default, the serial console will be suspended along with the rest of the system; by passing 'no_console_suspend' to the kernel during boot, serial console will remain alive during suspend. For now, this is pretty serial console specific; further fixes could be applied to make this work for things like netconsole. Signed-off-by: Andres Salomon <dilinger@debian.org> Acked-by: "Rafael J. Wysocki" <rjw@sisk.pl> Acked-by: Pavel Machek <pavel@ucw.cz> Cc: Nigel Cunningham <nigel@suspend2.net> Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-16vt/vgacon: Check if screen resize request comes from userspaceAntonino A. Daplas
Various console drivers are able to resize the screen via the con_resize() hook. This hook is also visible in userspace via the TIOCWINSZ, VT_RESIZE and VT_RESIZEX ioctl's. One particular utility, SVGATextMode, expects that con_resize() of the VGA console will always return success even if the resulting screen is not compatible with the hardware. However, this particular behavior of the VGA console, as reported in Kernel Bugzilla Bug 7513, can cause undefined behavior if the user starts with a console size larger than 80x25. To work around this problem, add an extra parameter to con_resize(). This parameter is ignored by drivers except for vgacon. If this parameter is non-zero, then the resize request came from a VT_RESIZE or VT_RESIZEX ioctl and vgacon will always return success. If this parameter is zero, vgacon will return -EINVAL if the requested size is not compatible with the hardware. The latter is the more correct behavior. With this change, SVGATextMode should still work correctly while in-kernel and stty resize calls can expect correct behavior from vgacon. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-16Remove unnecessary includes of spinlock.h under include/linuxRobert P. J. Day
Remove the obviously unnecessary includes of <linux/spinlock.h> under the include/linux/ directory, and fix the couple errors that are introduced as a result of that. Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-16serial: convert early_uart to earlycon for 8250Yinghai Lu
Beacuse SERIAL_PORT_DFNS is removed from include/asm-i386/serial.h and include/asm-x86_64/serial.h. the serial8250_ports need to be probed late in serial initializing stage. the console_init=>serial8250_console_init=> register_console=>serial8250_console_setup will return -ENDEV, and console ttyS0 can not be enabled at that time. need to wait till uart_add_one_port in drivers/serial/serial_core.c to call register_console to get console ttyS0. that is too late. Make early_uart to use early_param, so uart console can be used earlier. Make it to be bootconsole with CON_BOOT flag, so can use console handover feature. and it will switch to corresponding normal serial console automatically. new command line will be: console=uart8250,io,0x3f8,9600n8 console=uart8250,mmio,0xff5e0000,115200n8 or earlycon=uart8250,io,0x3f8,9600n8 earlycon=uart8250,mmio,0xff5e0000,115200n8 it will print in very early stage: Early serial console at I/O port 0x3f8 (options '9600n8') console [uart0] enabled later for console it will print: console handover: boot [uart0] -> real [ttyS0] Signed-off-by: <yinghai.lu@sun.com> Cc: Andi Kleen <ak@suse.de> Cc: Bjorn Helgaas <bjorn.helgaas@hp.com> Cc: Russell King <rmk@arm.linux.org.uk> Cc: Gerd Hoffmann <kraxel@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08vt: add color support to the "underline" and "italic" attributesJan Engelhardt
Add color support to the "underline" and "italic" attributes as in OpenBSD/NetBSD-style (vt220) and xterm. Signed-off-by: Jan Engelhardt <jengelh@gmx.de> Acked-by: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08enlarge console.nameAndrew Morton
console.name[] is eight chars, but so is "earlyvga". So when we try to print console->name when using earlyvga it runs off the end of the string. Make it bigger. Diagnosed-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-11[PATCH] drivers/char/vc_screen.c: proper prototypesAdrian Bunk
Add proper prototypes for two functions in drivers/char/vc_screen.c Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2006-10-03[PATCH] vt: proper prototypes for some console functionsAdrian Bunk
This patch adds proper prototypes to header files for three console init functions used on drivers/char/vt.c Signed-off-by: Adrian Bunk <bunk@stusta.de> 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-09-26[PATCH] PM: make it possible to disable console suspendingRafael J. Wysocki
Change suspend_console() so that it waits for all consoles to flush the remaining messages and make it possible to switch the console suspending off with the help of a Kconfig option. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Acked-by: Pavel Machek <pavel@ucw.cz> Cc: Stefan Seyfried <seife@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-06-26[PATCH] VT binding: Add binding/unbinding support for the VT consoleAntonino A. Daplas
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-25[PATCH] Make printk work for really early debuggingMichael Ellerman
Currently printk is no use for early debugging because it refuses to actually print anything to the console unless cpu_online(smp_processor_id()) is true. The stated explanation is that console drivers may require per-cpu resources, or otherwise barf, because the system is not yet setup correctly. Fair enough. However some console drivers might be quite happy running early during boot, in fact we have one, and so it'd be nice if printk understood that. So I added a flag (which I would have called CON_BOOT, but that's taken) called CON_ANYTIME, which indicates that a console is happy to be called anytime, even if the cpu is not yet online. Tested on a Power 5 machine, with both a CON_ANYTIME driver and a bogus console driver that BUG()s if called while offline. No problems AFAICT. Built for i386 UP & SMP. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-06-19Add support for suspending and resuming the whole console subsystemLinus Torvalds
Trying to suspend/resume with console messages flying all around is doomed to failure, when the devices that the messages are trying to go to are being shut down. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-03-30[PATCH] fbdev: Cleanups in drivers/video part 2Antonino Daplas
This patch contains cleanups under drivers/video/ including: - make some needlessly global code static - the following was needlessly EXPORT_SYMBOL'ed: - fbcon.c: fb_con - fbmon.c: get_EDID_from_firmware (completely unused) Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Benoit Boissinot <benoit.boissinot@ens-lyon.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-03-28[PATCH] New console flag: CON_BOOTMatthew Wilcox
CON_BOOT is like early printk in that it allows for output really early on. It's better than early printk because it unregisters automatically when a real console is initialised. So if you don't get consoles registering in console_init, there isn't a huge delay between the boot console unregistering and the real console starting. This is the case on PA-RISC where we have serial ports that aren't discovered until the PCI bus has been walked. I think all the current early printk users could be converted to this scheme with a minimal amount of effort. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-02-10[PATCH] Add try_acquire_console_semBenjamin Herrenschmidt
The new PowerMac sleep code provides an arch hook that can be used by video drivers on laptops to bring back the screen very early, pretty much before anything else. This basically turns reports of the style "my laptop doesn't wakeup" to "I get this or this oops/error/panic on wakeup", making fixing the PM related bugs possible on a whole range of them. However, the fbdev wakeup code triggers WARN_ON's in the VT subsystem if called without the console semaphore when redrawing the screen (I added those warnings a couple of kernel versions ago), and we can't call acquire_console_sem() since we are so early in the wakeup process that we are considered as in_atomic() (we hold irqs off too). This patch addds a try_acquire_console_sem() function that can be used by those video drivers that implement this early wakeup hook. If the acquire fails (which should never happen in practice), wakeup is delayed to the normal PCI callback which does a blocking acquire_console_sem(). Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2004-07-29[PATCH] con_get_font sanitizedAlexander Viro
->con_font_get() sanitized. We pass console_font * to method instead of console_font_op * and do not mess with mixing ->data in these guys. Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2004-07-29[PATCH] con_set_font sanitizedAlexander Viro
con_font_set() sanitized. We are passing console_font and flags into the method in separate arguments and we are not messing with console_font_op->data anymore - it's a userland pointer (to be annotated several patches later in the series, due to another abuse of console_font_op that needs to be fixed first), while console_font->data is kernel one and they don't mix anymore. We also do a sanity check (font width > 0) in the caller instead of method instances, since we are already checking for width <= 32 and height <= 32 there; doesn't make sense leaving that one in method instances. Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2004-07-29[PATCH] con_font_copy sanitizedAlexander Viro
->con_font_copy() sanitized. We extract the number of console to copy the font from in the caller (it's taken from the field of console_font_op that is normally used for font height - messy even for an ioctl, but that animal used to be passed all the way down into console drivers). With decoding done in con_font_copy(), we simply pass source console number into the method. Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2004-07-29[PATCH] con_font_default sanitizedAlexander Viro
->con_font_default() sanitized. We copy font name (if any) from userland in the caller and pass it explicitly. We are also beginning to get rid of console_font_op in method arguments. Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2004-07-29[PATCH] con_font_op splitAlexander Viro
Preparations for cleanups: con_font_op() is turned into a switch calling con_font_{get,set,default,copy} depending on the operation required; method ->con_font_op() also split, with NULL resulting in -ENOSYS on operation in question. Code that used to be in con_font_op() got slightly cleaned up after move into new helpers (we are beginning to untangle the mess; there will be more cleanups in the next patches). Methods are currently using exact same arguments as old ->con_font_op(). That will change in subsequent patches, method by method (right now there's a hell of a scary field reuse between them, making impossible to do any static checks and practically begging for bugs). Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2004-06-29[PATCH] Provide console_suspend() and console_resume()Russell King
Add console_stop() and console_start() methods so the serial drivers can disable console output before suspending a port, and re-enable output afterwards. We also add locking to ensure that we synchronise with any in-progress printk. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2004-06-29[PATCH] Provide console_device()Russell King
[This patch series has also been separately sent to the architecture maintainers] Add console_device() to return the console tty driver structure and the index. Acquire the console lock while scanning the list of console drivers to protect us against console driver list manipulations. Signed-off-by: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2004-05-14[PATCH] Module ref counting for vt console driversAndrew Morton
From: Herbert Xu <herbert@gondor.apana.org.au> The following patch adds basic module reference counting to vt console drivers. Currently modules like fbcon are not counted at all.
2004-03-01[PATCH] Fix VT mode change vs. fbconAndrew Morton
From: Benjamin Herrenschmidt <benh@kernel.crashing.org> This patch implements what we discussed earlier to fix the switch bewteen KD_GRAPHICS and KD_TEXT. It has been tested for a few days now and appear to resolve the problem for affected users. James: I know you have some objections, I don't fully agree with them, and I want that in asap now, that bug has been plaguing fbdev since the very beginning and it's time to get rid of that and my corresponding todolist entry. You are welcome to propose a patch on top of this one if you feel you can make things cleaner. The approach of adding a parameter to con_blank() is Linus idea btw :) I didn't add a separate function as that would have made the butchering of drivers/char/vt beyond what I want to deal with in 2.6.
2004-02-03[PATCH] VT locking fixesAndrew Morton
From: Benjamin Herrenschmidt <benh@kernel.crashing.org> - Make sure that all console operations are approriately protected under console_sem. - Adds checks to make sure that people are taking console_sem when it is expected to be held.
2003-12-29[SPARC]: Fix serial console selection.Keith M. Wesolowski
Add a generic add_preferred_console() to printk.c so that other platforms, such as MIPS for example, can sanely fix this problem as well.
2003-09-21[PATCH] kill superflous kdev_t.h inclusionsAndrew Morton
From: Christoph Hellwig <hch@lst.de> now that kdev_t is gone very few places needs this still, the only header of those beeing fs.h
2003-05-26[PATCH] const char* to char* update in console.hRusty Russell
From: Amit Shah <shahamit@gmx.net> The read function for consoles in include/linux/console.h contains const char* for a pointer that it will actually modify. Although no one seems to be using this as of now, it should be corrected.
2003-04-24[PATCH] console cleanup (2/2)Alexander Viro
Console drivers cleanup. In current tree interaction between console and tty layer sits in the ->device() method of struct console. It takes a pointer to console and returns device number of its tty device. open(2) on /dev/console goes through the list of registered consoles, picks the first one that has ->device() and remaps the device number to console->device(console). Then it proceeds with normal opening of tty. This is the only caller of ->device(). Cleanup: let ->device() return a pair (pointer to tty_driver, index of tty in question) instead of device number. Note that a) the first thing tty_open() does with remapped device number is conversion to such pair. b) console driver _knows_ which tty_driver we want - one that implements tty interface to the same physical device (i.e. the part of the same driver). c) current code expects the result of ->device() to be a device number of tty device - anything else is immediate -ENODEV from tty_open(); might as well have NULL ->device in that driver. Console drivers converted, (the only) caller updated.
2003-04-24[PATCH] console cleanup (1/2)Alexander Viro
Preparation to console->device() cleanup: serial drivers converted to common helper for their ->device() methods.
2002-10-30Moved all console configuration out of arch directories into ↵James Simmons
drivers/video/console. Allow resize of a single VC via the tty layer. Nuked GET_FB_IDX.
2002-02-04v2.5.1.1 -> v2.5.1.2Linus Torvalds
- Al Viro: task-private namespaces, more cleanups
2002-02-04v2.4.14.3 -> v2.4.14.4Linus Torvalds
- Mikael Pettersson: make proc_misc happy without modules - Arjan van de Ven: clean up acpitable implementation ("micro-acpi") - Anton Altaparmakov: LDM partition code update - Alan Cox: final (yeah, sure) small missing pieces - Andrey Savochkin/Andrew Morton: eepro100 config space save/restore over suspend - Arjan van de Ven: remove power from pcmcia socket on card remove - Greg KH: USB updates - Neil Brown: multipath updates - Martin Dalecki: fix up some "asmlinkage" routine markings
2002-02-04v2.4.9.10 -> v2.4.9.11Linus Torvalds
- Neil Brown: md cleanups/fixes - Andrew Morton: console locking merge - Andrea Arkangeli: major VM merge
2002-02-04Import changesetLinus Torvalds