|
@@ -311,24 +311,30 @@ static void usa26_indat_callback(struct urb *urb)
|
|
|
if ((data[0] & 0x80) == 0) {
|
|
|
/* no errors on individual bytes, only
|
|
|
possible overrun err */
|
|
|
- if (data[0] & RXERROR_OVERRUN)
|
|
|
- err = TTY_OVERRUN;
|
|
|
- else
|
|
|
- err = 0;
|
|
|
+ if (data[0] & RXERROR_OVERRUN) {
|
|
|
+ tty_insert_flip_char(&port->port, 0,
|
|
|
+ TTY_OVERRUN);
|
|
|
+ }
|
|
|
for (i = 1; i < urb->actual_length ; ++i)
|
|
|
- tty_insert_flip_char(&port->port, data[i], err);
|
|
|
+ tty_insert_flip_char(&port->port, data[i],
|
|
|
+ TTY_NORMAL);
|
|
|
} else {
|
|
|
/* some bytes had errors, every byte has status */
|
|
|
dev_dbg(&port->dev, "%s - RX error!!!!\n", __func__);
|
|
|
for (i = 0; i + 1 < urb->actual_length; i += 2) {
|
|
|
- int stat = data[i], flag = 0;
|
|
|
- if (stat & RXERROR_OVERRUN)
|
|
|
- flag |= TTY_OVERRUN;
|
|
|
- if (stat & RXERROR_FRAMING)
|
|
|
- flag |= TTY_FRAME;
|
|
|
- if (stat & RXERROR_PARITY)
|
|
|
- flag |= TTY_PARITY;
|
|
|
+ int stat = data[i];
|
|
|
+ int flag = TTY_NORMAL;
|
|
|
+
|
|
|
+ if (stat & RXERROR_OVERRUN) {
|
|
|
+ tty_insert_flip_char(&port->port, 0,
|
|
|
+ TTY_OVERRUN);
|
|
|
+ }
|
|
|
/* XXX should handle break (0x10) */
|
|
|
+ if (stat & RXERROR_PARITY)
|
|
|
+ flag = TTY_PARITY;
|
|
|
+ else if (stat & RXERROR_FRAMING)
|
|
|
+ flag = TTY_FRAME;
|
|
|
+
|
|
|
tty_insert_flip_char(&port->port, data[i+1],
|
|
|
flag);
|
|
|
}
|
|
@@ -649,14 +655,19 @@ static void usa49_indat_callback(struct urb *urb)
|
|
|
} else {
|
|
|
/* some bytes had errors, every byte has status */
|
|
|
for (i = 0; i + 1 < urb->actual_length; i += 2) {
|
|
|
- int stat = data[i], flag = 0;
|
|
|
- if (stat & RXERROR_OVERRUN)
|
|
|
- flag |= TTY_OVERRUN;
|
|
|
- if (stat & RXERROR_FRAMING)
|
|
|
- flag |= TTY_FRAME;
|
|
|
- if (stat & RXERROR_PARITY)
|
|
|
- flag |= TTY_PARITY;
|
|
|
+ int stat = data[i];
|
|
|
+ int flag = TTY_NORMAL;
|
|
|
+
|
|
|
+ if (stat & RXERROR_OVERRUN) {
|
|
|
+ tty_insert_flip_char(&port->port, 0,
|
|
|
+ TTY_OVERRUN);
|
|
|
+ }
|
|
|
/* XXX should handle break (0x10) */
|
|
|
+ if (stat & RXERROR_PARITY)
|
|
|
+ flag = TTY_PARITY;
|
|
|
+ else if (stat & RXERROR_FRAMING)
|
|
|
+ flag = TTY_FRAME;
|
|
|
+
|
|
|
tty_insert_flip_char(&port->port, data[i+1],
|
|
|
flag);
|
|
|
}
|
|
@@ -713,15 +724,19 @@ static void usa49wg_indat_callback(struct urb *urb)
|
|
|
*/
|
|
|
for (x = 0; x + 1 < len &&
|
|
|
i + 1 < urb->actual_length; x += 2) {
|
|
|
- int stat = data[i], flag = 0;
|
|
|
+ int stat = data[i];
|
|
|
+ int flag = TTY_NORMAL;
|
|
|
|
|
|
- if (stat & RXERROR_OVERRUN)
|
|
|
- flag |= TTY_OVERRUN;
|
|
|
- if (stat & RXERROR_FRAMING)
|
|
|
- flag |= TTY_FRAME;
|
|
|
- if (stat & RXERROR_PARITY)
|
|
|
- flag |= TTY_PARITY;
|
|
|
+ if (stat & RXERROR_OVERRUN) {
|
|
|
+ tty_insert_flip_char(&port->port, 0,
|
|
|
+ TTY_OVERRUN);
|
|
|
+ }
|
|
|
/* XXX should handle break (0x10) */
|
|
|
+ if (stat & RXERROR_PARITY)
|
|
|
+ flag = TTY_PARITY;
|
|
|
+ else if (stat & RXERROR_FRAMING)
|
|
|
+ flag = TTY_FRAME;
|
|
|
+
|
|
|
tty_insert_flip_char(&port->port, data[i+1],
|
|
|
flag);
|
|
|
i += 2;
|
|
@@ -773,25 +788,31 @@ static void usa90_indat_callback(struct urb *urb)
|
|
|
if ((data[0] & 0x80) == 0) {
|
|
|
/* no errors on individual bytes, only
|
|
|
possible overrun err*/
|
|
|
- if (data[0] & RXERROR_OVERRUN)
|
|
|
- err = TTY_OVERRUN;
|
|
|
- else
|
|
|
- err = 0;
|
|
|
+ if (data[0] & RXERROR_OVERRUN) {
|
|
|
+ tty_insert_flip_char(&port->port, 0,
|
|
|
+ TTY_OVERRUN);
|
|
|
+ }
|
|
|
for (i = 1; i < urb->actual_length ; ++i)
|
|
|
tty_insert_flip_char(&port->port,
|
|
|
- data[i], err);
|
|
|
+ data[i], TTY_NORMAL);
|
|
|
} else {
|
|
|
/* some bytes had errors, every byte has status */
|
|
|
dev_dbg(&port->dev, "%s - RX error!!!!\n", __func__);
|
|
|
for (i = 0; i + 1 < urb->actual_length; i += 2) {
|
|
|
- int stat = data[i], flag = 0;
|
|
|
- if (stat & RXERROR_OVERRUN)
|
|
|
- flag |= TTY_OVERRUN;
|
|
|
- if (stat & RXERROR_FRAMING)
|
|
|
- flag |= TTY_FRAME;
|
|
|
- if (stat & RXERROR_PARITY)
|
|
|
- flag |= TTY_PARITY;
|
|
|
+ int stat = data[i];
|
|
|
+ int flag = TTY_NORMAL;
|
|
|
+
|
|
|
+ if (stat & RXERROR_OVERRUN) {
|
|
|
+ tty_insert_flip_char(
|
|
|
+ &port->port, 0,
|
|
|
+ TTY_OVERRUN);
|
|
|
+ }
|
|
|
/* XXX should handle break (0x10) */
|
|
|
+ if (stat & RXERROR_PARITY)
|
|
|
+ flag = TTY_PARITY;
|
|
|
+ else if (stat & RXERROR_FRAMING)
|
|
|
+ flag = TTY_FRAME;
|
|
|
+
|
|
|
tty_insert_flip_char(&port->port,
|
|
|
data[i+1], flag);
|
|
|
}
|