aboutsummaryrefslogtreecommitdiff
path: root/drivers/serial/serial_core.c
AgeCommit message (Collapse)AuthorFilesLines
2006-03-20[SERIAL] kernel console should send CRLF not LFCRRussell King1-0/+21
Glen Turner reported that writing LFCR rather than the more traditional CRLF causes issues with some terminals. Since this aflicts many serial drivers, extract the common code to a library function (uart_console_write) and arrange for each driver to supply a "putchar" function. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-03-08[PATCH] serial core: work around sub-driver bugsPavel Machek1-3/+29
We're presently getting oopses because Bluetooth (and possibly other) drivers are calling core functions after things have been shut down. So rather than oopsing, let's drop a warning then take avoiding action, so the machine survives. Once all the sub-drivers are fixed up we can remove the take-avoiding-action part. Signed-off-by: Pavel Machek <pavel@suse.cz> Cc: Russell King <rmk@arm.linux.org.uk> Cc: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-02-02[SERIAL] initialize spinlock for port failed to setup consoleAtsushi Nemoto1-1/+1
It seems serial_core intend to initialize port->lock just once for each ports. This is done in uart_set_options() for console, and in uart_add_one_port() for other ports. But there is a case the port->lock is not initialized by serial_core. If the setup function for the console was failed, it will not call uart_set_options() but the port is marked as console (uart_console(port) returns 1). It can happen if console was PCI port which can not detected at the time of register_console. This patch is to initialize port->lock for such console port. With this change, most of spin_lock_init() (some of them are labeled "Temporary fix.") in low-level serial drivers can be omitted. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-01-21[SERIAL] Make uart_port flags a bitwise typeRussell King1-5/+7
Same reasoning as commit 747c8a55946ed037bf7d62454c3c599c02af2262 but this time we're making uart_port flags a bitwise type - not all of these flags correspond with the old ASYNC_ flags, so there is the possibility for bugs if the wrong ASYNC_* constants are used. Always use UPF_* constants for uart_port->flags. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-01-21[SERIAL] Make port->ops constantRussell King1-2/+2
No one should write to the port->ops structure, so make it constant. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-01-13[SERIAL] convert uart_state.sem to uart_state.mutexIngo Molnar1-30/+30
semaphore to mutex conversion. the conversion was generated via scripts, and the result was validated automatically via a script as well. build and boot tested. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-01-12[SERIAL] turn serial semaphores into mutexesArjan van de Ven1-7/+8
Turn several drivers/serial/ semaphores-used-as-mutex into mutexes Signed-off-by: Arjan van de Ven <arjan@infradead.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-01-07[SERIAL] Fix clocal wakeup problemRussell King1-0/+1
Jim Alexander reported a problem where "if one calls open() in blocking mode with CLOCAL off, the 8250.c driver under the 2.6 kernel (or at least 2.6.8 and 2.6.10) does not wake up the blocked process when DCD is asserted." Fix this by enabling modem status interrupts immediately before we read the carrier detect status. Thanks to Jim for reporting the problem and testing the fix. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-01-04[SERIAL] Fix matching of MMIO portsBenjamin Herrenschmidt1-1/+1
The function uart_match_port() incorrectly compares the ioremap'd virtual addresses of ports instead of the physical address to find duplicate ports for MMIO based UARTs. This fixes it. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-28[SERIAL] mark several serial tables constArjan van de Ven1-1/+1
This patch marks a few serial data structures const, moving them to .rodata where they won't false-share cachelines with things that get written to. Signed-off-by: Arjan van de Ven <arjan@infradead.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-13[SERIAL] Fix Bug 4900: S3 resume oops with irattach - Thinkpad A21mRussell King1-35/+49
If we fail to re-startup a serial port on resume, shut it down immediately and mark it as an error condition. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-06[SERIAL] Support Au1x00 8250 UARTs using the generic 8250 driver.Pantelis Antoniou1-0/+1
The offsets of the registers are in a different place, and some parts cannot handle a full set of modem control signals. Signed-off-by: Pantelis Antoniou <pantelis@embeddedalley.ocm> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-10-31[SERIAL] Arrange better identification of portsRussell King1-1/+3
Folk seem to get confused when they see two or more ttyS0 ports appearing at boot time. One comes from the legacy table, and one from PNP. Hence, display the bus ID of the device which supplied the port. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-10-30[SERIAL] remove unneeded code from serial_core.cJayachandran C1-2/+1
This patch fixes an issue reported by Coverity in serial/serial_core.c Error reported: Variable "&((info)->tty)->flags" tracked as NULL was passed to a function that dereferences it. The later statements in the function assumes 'info->tty != NULL', so this check is not necessary. Probably a 'BUG_ON(info->tty == NULL)' can be added. Signed-off-by: Jayachandran C. <c.jayachandran at gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-09-03[SERIAL] Prefix serial printks with KERN_INFO and pre-formatRussell King1-6/+14
Pre-format the IO part of the ttyS printks, and prefix them with KERN_INFO to avoid bootsplash corruption. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-08-31[ARM] 2866/1: add i.MX set_mctrl / get_mctrl functionsSascha Hauer1-132/+0
Patch from Sascha Hauer This patch adds support for setting and getting RTS / CTS via set_mtctrl / get_mctrl functions. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-08-31[SERIAL] Clean up and fix tty transmission start/stopingRussell King1-6/+6
The start_tx and stop_tx methods were passed a flag to indicate whether the start/stop was from the tty start/stop callbacks, and some drivers used this flag to decide whether to ask the UART to immediately stop transmission (where the UART supports such a feature.) There are other cases when we wish this to occur - when CTS is lowered, or if we change from soft to hard flow control and CTS is inactive. In these cases, this flag was false, and we would allow the transmitter to drain before stopping. There is really only one case where we want to let the transmitter drain before disabling, and that's when we run out of characters to send. Hence, re-jig the start_tx and stop_tx methods to eliminate this flag, and introduce new functions for the special "disable and allow transmitter to drain" case. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-07-03[PATCH] Serial: Fix console port spinlock initialisationRussell King1-1/+13
Initialise the spinlock for port being used by the console early, but don't re-initialise it again later. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-29[PATCH] Serial: Check status of CTS when using flow controlRussell King1-0/+17
Fix bugme #4712: read the CTS status and set hw_stopped if CTS is not active when opening the port and/or enabling CRTSCTS Thanks to Stefan Wolff for spotting this problem. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-29[PATCH] Serial: Adjust serial lockingRussell King1-1/+10
This patch changes the way serial ports are locked when getting modem status. This change is necessary because we will need to atomically read the modem status and take action depending on the CTS status. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-04-16Linux-2.6.12-rc2Linus Torvalds1-0/+2395
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!