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:
@@ -291,7 +291,6 @@ static void usa26_indat_callback(struct urb *urb)
|
||||
int i, err;
|
||||
int endpoint;
|
||||
struct usb_serial_port *port;
|
||||
struct tty_struct *tty;
|
||||
unsigned char *data = urb->transfer_buffer;
|
||||
int status = urb->status;
|
||||
|
||||
@@ -304,8 +303,7 @@ static void usa26_indat_callback(struct urb *urb)
|
||||
}
|
||||
|
||||
port = urb->context;
|
||||
tty = tty_port_tty_get(&port->port);
|
||||
if (tty && urb->actual_length) {
|
||||
if (urb->actual_length) {
|
||||
/* 0x80 bit is error flag */
|
||||
if ((data[0] & 0x80) == 0) {
|
||||
/* no errors on individual bytes, only
|
||||
@@ -315,7 +313,7 @@ static void usa26_indat_callback(struct urb *urb)
|
||||
else
|
||||
err = 0;
|
||||
for (i = 1; i < urb->actual_length ; ++i)
|
||||
tty_insert_flip_char(tty, data[i], err);
|
||||
tty_insert_flip_char(&port->port, data[i], err);
|
||||
} else {
|
||||
/* some bytes had errors, every byte has status */
|
||||
dev_dbg(&port->dev, "%s - RX error!!!!\n", __func__);
|
||||
@@ -328,12 +326,12 @@ static void usa26_indat_callback(struct urb *urb)
|
||||
if (stat & RXERROR_PARITY)
|
||||
flag |= TTY_PARITY;
|
||||
/* XXX should handle break (0x10) */
|
||||
tty_insert_flip_char(tty, data[i+1], flag);
|
||||
tty_insert_flip_char(&port->port, data[i+1],
|
||||
flag);
|
||||
}
|
||||
}
|
||||
tty_flip_buffer_push(tty);
|
||||
tty_flip_buffer_push(&port->port);
|
||||
}
|
||||
tty_kref_put(tty);
|
||||
|
||||
/* Resubmit urb so we continue receiving */
|
||||
err = usb_submit_urb(urb, GFP_ATOMIC);
|
||||
@@ -446,7 +444,6 @@ static void usa28_indat_callback(struct urb *urb)
|
||||
{
|
||||
int err;
|
||||
struct usb_serial_port *port;
|
||||
struct tty_struct *tty;
|
||||
unsigned char *data;
|
||||
struct keyspan_port_private *p_priv;
|
||||
int status = urb->status;
|
||||
@@ -469,12 +466,11 @@ static void usa28_indat_callback(struct urb *urb)
|
||||
p_priv = usb_get_serial_port_data(port);
|
||||
data = urb->transfer_buffer;
|
||||
|
||||
tty = tty_port_tty_get(&port->port);
|
||||
if (tty && urb->actual_length) {
|
||||
tty_insert_flip_string(tty, data, urb->actual_length);
|
||||
tty_flip_buffer_push(tty);
|
||||
if (urb->actual_length) {
|
||||
tty_insert_flip_string(&port->port, data,
|
||||
urb->actual_length);
|
||||
tty_flip_buffer_push(&port->port);
|
||||
}
|
||||
tty_kref_put(tty);
|
||||
|
||||
/* Resubmit urb so we continue receiving */
|
||||
err = usb_submit_urb(urb, GFP_ATOMIC);
|
||||
@@ -669,7 +665,6 @@ static void usa49_indat_callback(struct urb *urb)
|
||||
int i, err;
|
||||
int endpoint;
|
||||
struct usb_serial_port *port;
|
||||
struct tty_struct *tty;
|
||||
unsigned char *data = urb->transfer_buffer;
|
||||
int status = urb->status;
|
||||
|
||||
@@ -682,12 +677,11 @@ static void usa49_indat_callback(struct urb *urb)
|
||||
}
|
||||
|
||||
port = urb->context;
|
||||
tty = tty_port_tty_get(&port->port);
|
||||
if (tty && urb->actual_length) {
|
||||
if (urb->actual_length) {
|
||||
/* 0x80 bit is error flag */
|
||||
if ((data[0] & 0x80) == 0) {
|
||||
/* no error on any byte */
|
||||
tty_insert_flip_string(tty, data + 1,
|
||||
tty_insert_flip_string(&port->port, data + 1,
|
||||
urb->actual_length - 1);
|
||||
} else {
|
||||
/* some bytes had errors, every byte has status */
|
||||
@@ -700,12 +694,12 @@ static void usa49_indat_callback(struct urb *urb)
|
||||
if (stat & RXERROR_PARITY)
|
||||
flag |= TTY_PARITY;
|
||||
/* XXX should handle break (0x10) */
|
||||
tty_insert_flip_char(tty, data[i+1], flag);
|
||||
tty_insert_flip_char(&port->port, data[i+1],
|
||||
flag);
|
||||
}
|
||||
}
|
||||
tty_flip_buffer_push(tty);
|
||||
tty_flip_buffer_push(&port->port);
|
||||
}
|
||||
tty_kref_put(tty);
|
||||
|
||||
/* Resubmit urb so we continue receiving */
|
||||
err = usb_submit_urb(urb, GFP_ATOMIC);
|
||||
@@ -718,7 +712,6 @@ static void usa49wg_indat_callback(struct urb *urb)
|
||||
int i, len, x, err;
|
||||
struct usb_serial *serial;
|
||||
struct usb_serial_port *port;
|
||||
struct tty_struct *tty;
|
||||
unsigned char *data = urb->transfer_buffer;
|
||||
int status = urb->status;
|
||||
|
||||
@@ -743,7 +736,6 @@ static void usa49wg_indat_callback(struct urb *urb)
|
||||
return;
|
||||
}
|
||||
port = serial->port[data[i++]];
|
||||
tty = tty_port_tty_get(&port->port);
|
||||
len = data[i++];
|
||||
|
||||
/* 0x80 bit is error flag */
|
||||
@@ -751,7 +743,8 @@ static void usa49wg_indat_callback(struct urb *urb)
|
||||
/* no error on any byte */
|
||||
i++;
|
||||
for (x = 1; x < len ; ++x)
|
||||
tty_insert_flip_char(tty, data[i++], 0);
|
||||
tty_insert_flip_char(&port->port,
|
||||
data[i++], 0);
|
||||
} else {
|
||||
/*
|
||||
* some bytes had errors, every byte has status
|
||||
@@ -765,13 +758,12 @@ static void usa49wg_indat_callback(struct urb *urb)
|
||||
if (stat & RXERROR_PARITY)
|
||||
flag |= TTY_PARITY;
|
||||
/* XXX should handle break (0x10) */
|
||||
tty_insert_flip_char(tty,
|
||||
tty_insert_flip_char(&port->port,
|
||||
data[i+1], flag);
|
||||
i += 2;
|
||||
}
|
||||
}
|
||||
tty_flip_buffer_push(tty);
|
||||
tty_kref_put(tty);
|
||||
tty_flip_buffer_push(&port->port);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -792,7 +784,6 @@ static void usa90_indat_callback(struct urb *urb)
|
||||
int endpoint;
|
||||
struct usb_serial_port *port;
|
||||
struct keyspan_port_private *p_priv;
|
||||
struct tty_struct *tty;
|
||||
unsigned char *data = urb->transfer_buffer;
|
||||
int status = urb->status;
|
||||
|
||||
@@ -808,12 +799,12 @@ static void usa90_indat_callback(struct urb *urb)
|
||||
p_priv = usb_get_serial_port_data(port);
|
||||
|
||||
if (urb->actual_length) {
|
||||
tty = tty_port_tty_get(&port->port);
|
||||
/* if current mode is DMA, looks like usa28 format
|
||||
otherwise looks like usa26 data format */
|
||||
|
||||
if (p_priv->baud > 57600)
|
||||
tty_insert_flip_string(tty, data, urb->actual_length);
|
||||
tty_insert_flip_string(&port->port, data,
|
||||
urb->actual_length);
|
||||
else {
|
||||
/* 0x80 bit is error flag */
|
||||
if ((data[0] & 0x80) == 0) {
|
||||
@@ -824,8 +815,8 @@ static void usa90_indat_callback(struct urb *urb)
|
||||
else
|
||||
err = 0;
|
||||
for (i = 1; i < urb->actual_length ; ++i)
|
||||
tty_insert_flip_char(tty, data[i],
|
||||
err);
|
||||
tty_insert_flip_char(&port->port,
|
||||
data[i], err);
|
||||
} else {
|
||||
/* some bytes had errors, every byte has status */
|
||||
dev_dbg(&port->dev, "%s - RX error!!!!\n", __func__);
|
||||
@@ -838,13 +829,12 @@ static void usa90_indat_callback(struct urb *urb)
|
||||
if (stat & RXERROR_PARITY)
|
||||
flag |= TTY_PARITY;
|
||||
/* XXX should handle break (0x10) */
|
||||
tty_insert_flip_char(tty, data[i+1],
|
||||
flag);
|
||||
tty_insert_flip_char(&port->port,
|
||||
data[i+1], flag);
|
||||
}
|
||||
}
|
||||
}
|
||||
tty_flip_buffer_push(tty);
|
||||
tty_kref_put(tty);
|
||||
tty_flip_buffer_push(&port->port);
|
||||
}
|
||||
|
||||
/* Resubmit urb so we continue receiving */
|
||||
|
Reference in New Issue
Block a user