Merge tag 'tty-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Pull tty/serial patches from Greg Kroah-Hartman: "Here's the big tty/serial driver patches for 3.9-rc1. More tty port rework and fixes from Jiri here, as well as lots of individual serial driver updates and fixes. All of these have been in the linux-next tree for a while." * tag 'tty-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (140 commits) tty: mxser: improve error handling in mxser_probe() and mxser_module_init() serial: imx: fix uninitialized variable warning serial: tegra: assume CONFIG_OF TTY: do not update atime/mtime on read/write lguest: select CONFIG_TTY to build properly. ARM defconfigs: add missing inclusions of linux/platform_device.h fb/exynos: include platform_device.h ARM: sa1100/assabet: include platform_device.h directly serial: imx: Fix recursive locking bug pps: Fix build breakage from decoupling pps from tty tty: Remove ancient hardpps() pps: Additional cleanups in uart_handle_dcd_change pps: Move timestamp read into PPS code proper pps: Don't crash the machine when exiting will do pps: Fix a use-after free bug when unregistering a source. pps: Use pps_lookup_dev to reduce ldisc coupling pps: Add pps_lookup_dev() function tty: serial: uartlite: Support uartlite on big and little endian systems tty: serial: uartlite: Fix sparse and checkpatch warnings serial/arc-uart: Miscll DT related updates (Grant's review comments) ... Fix up trivial conflicts, mostly just due to the TTY config option clashing with the EXPERIMENTAL removal.
This commit is contained in:
@@ -44,7 +44,7 @@ typedef union _srmcons_result {
|
||||
|
||||
/* called with callback_lock held */
|
||||
static int
|
||||
srmcons_do_receive_chars(struct tty_struct *tty)
|
||||
srmcons_do_receive_chars(struct tty_port *port)
|
||||
{
|
||||
srmcons_result result;
|
||||
int count = 0, loops = 0;
|
||||
@@ -52,13 +52,13 @@ srmcons_do_receive_chars(struct tty_struct *tty)
|
||||
do {
|
||||
result.as_long = callback_getc(0);
|
||||
if (result.bits.status < 2) {
|
||||
tty_insert_flip_char(tty, (char)result.bits.c, 0);
|
||||
tty_insert_flip_char(port, (char)result.bits.c, 0);
|
||||
count++;
|
||||
}
|
||||
} while((result.bits.status & 1) && (++loops < 10));
|
||||
|
||||
if (count)
|
||||
tty_schedule_flip(tty);
|
||||
tty_schedule_flip(port);
|
||||
|
||||
return count;
|
||||
}
|
||||
@@ -73,7 +73,7 @@ srmcons_receive_chars(unsigned long data)
|
||||
|
||||
local_irq_save(flags);
|
||||
if (spin_trylock(&srmcons_callback_lock)) {
|
||||
if (!srmcons_do_receive_chars(port->tty))
|
||||
if (!srmcons_do_receive_chars(port))
|
||||
incr = 100;
|
||||
spin_unlock(&srmcons_callback_lock);
|
||||
}
|
||||
@@ -88,7 +88,7 @@ srmcons_receive_chars(unsigned long data)
|
||||
|
||||
/* called with callback_lock held */
|
||||
static int
|
||||
srmcons_do_write(struct tty_struct *tty, const char *buf, int count)
|
||||
srmcons_do_write(struct tty_port *port, const char *buf, int count)
|
||||
{
|
||||
static char str_cr[1] = "\r";
|
||||
long c, remaining = count;
|
||||
@@ -113,10 +113,10 @@ srmcons_do_write(struct tty_struct *tty, const char *buf, int count)
|
||||
cur += result.bits.c;
|
||||
|
||||
/*
|
||||
* Check for pending input iff a tty was provided
|
||||
* Check for pending input iff a tty port was provided
|
||||
*/
|
||||
if (tty)
|
||||
srmcons_do_receive_chars(tty);
|
||||
if (port)
|
||||
srmcons_do_receive_chars(port);
|
||||
}
|
||||
|
||||
while (need_cr) {
|
||||
@@ -135,7 +135,7 @@ srmcons_write(struct tty_struct *tty,
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&srmcons_callback_lock, flags);
|
||||
srmcons_do_write(tty, (const char *) buf, count);
|
||||
srmcons_do_write(tty->port, (const char *) buf, count);
|
||||
spin_unlock_irqrestore(&srmcons_callback_lock, flags);
|
||||
|
||||
return count;
|
||||
|
Reference in New Issue
Block a user