From: Benoit Goby Date: Wed, 20 Oct 2010 04:58:13 +0000 (-0700) Subject: mdm6600: Force tty->low_latency to 1 X-Git-Tag: firefly_0821_release~9834^2~407 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ddc94c1701ab3ce0037547843cd338e33601b28b;p=firefly-linux-kernel-4.4.55.git mdm6600: Force tty->low_latency to 1 This makes the tty push data immediately to the ldisc when flip_buffer_push is called instead of scheduling a delayed workqueue. This fixes the dropped data problem. Change-Id: I9558e3b4529653983ec9bf8af8ae7c8f8c25787f Signed-off-by: Benoit Goby --- diff --git a/drivers/usb/serial/mdm6600.c b/drivers/usb/serial/mdm6600.c index 3c37fd36869c..5f00b3fbeed9 100644 --- a/drivers/usb/serial/mdm6600.c +++ b/drivers/usb/serial/mdm6600.c @@ -351,6 +351,9 @@ static int mdm6600_open(struct tty_struct *tty, struct usb_serial_port *port) WARN_ON_ONCE(modem->port != port); + if (tty) + tty->low_latency = 1; + modem->tiocm_status = 0; modem->opened = 1; @@ -738,8 +741,8 @@ static void mdm6600_read_bulk_work(struct work_struct *work) c = mdm6600_pass_to_tty(tty, u->transfer_buffer, u->actual_length); if (c != u->actual_length) - pr_warn("%s: dropped %u of %u bytes\n", - __func__, u->actual_length - c, + pr_warn("%s: port %d: dropped %u of %u bytes\n", + __func__, modem->number, u->actual_length - c, u->actual_length); tty_kref_put(tty);