aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/staging/serqt_usb2/serqt_usb2.c29
1 files changed, 10 insertions, 19 deletions
diff --git a/drivers/staging/serqt_usb2/serqt_usb2.c b/drivers/staging/serqt_usb2/serqt_usb2.c
index 581232b719f..90b29b56463 100644
--- a/drivers/staging/serqt_usb2/serqt_usb2.c
+++ b/drivers/staging/serqt_usb2/serqt_usb2.c
@@ -284,21 +284,12 @@ static void ProcessModemStatus(struct quatech_port *qt_port,
284 return; 284 return;
285} 285}
286 286
287static void ProcessRxChar(struct usb_serial_port *port, unsigned char Data) 287static void ProcessRxChar(struct tty_struct *tty, struct usb_serial_port *port,
288 unsigned char data)
288{ 289{
289 struct tty_struct *tty;
290 struct urb *urb = port->read_urb; 290 struct urb *urb = port->read_urb;
291 tty = tty_port_tty_get(&port->port); 291 if (urb->actual_length)
292 292 tty_insert_flip_char(tty, data, TTY_NORMAL);
293 /* if we insert more than TTY_FLIPBUF_SIZE characters, we drop them. */
294
295 if (tty && urb->actual_length) {
296 tty_buffer_request_room(tty, 1);
297 tty_insert_flip_string(tty, &Data, 1);
298 /* tty_flip_buffer_push(tty); */
299 }
300
301 return;
302} 293}
303 294
304static void qt_write_bulk_callback(struct urb *urb) 295static void qt_write_bulk_callback(struct urb *urb)
@@ -435,8 +426,10 @@ static void qt_read_bulk_callback(struct urb *urb)
435 case 0xff: 426 case 0xff:
436 dbg("No status sequence. \n"); 427 dbg("No status sequence. \n");
437 428
438 ProcessRxChar(port, data[i]); 429 if (tty) {
439 ProcessRxChar(port, data[i + 1]); 430 ProcessRxChar(tty, port, data[i]);
431 ProcessRxChar(tty, port, data[i + 1]);
432 }
440 i += 2; 433 i += 2;
441 break; 434 break;
442 } 435 }
@@ -444,10 +437,8 @@ static void qt_read_bulk_callback(struct urb *urb)
444 continue; 437 continue;
445 } 438 }
446 439
447 if (tty && urb->actual_length) { 440 if (tty && urb->actual_length)
448 tty_buffer_request_room(tty, 1); 441 tty_insert_flip_char(tty, data[i], TTY_NORMAL);
449 tty_insert_flip_string(tty, (data + i), 1);
450 }
451 442
452 } 443 }
453 tty_flip_buffer_push(tty); 444 tty_flip_buffer_push(tty);