|
|
@@ -335,6 +335,8 @@ static int hvc_open(struct tty_struct *tty, struct file * filp)
|
|
|
} /* else count == 0 */
|
|
|
|
|
|
tty->driver_data = hp;
|
|
|
+ tty->low_latency = 1; /* Makes flushes to ldisc synchronous. */
|
|
|
+
|
|
|
hp->tty = tty;
|
|
|
/* Save for request_irq outside of spin_lock. */
|
|
|
irq = hp->irq;
|
|
|
@@ -633,9 +635,6 @@ static int hvc_poll(struct hvc_struct *hp)
|
|
|
tty_insert_flip_char(tty, buf[i], 0);
|
|
|
}
|
|
|
|
|
|
- if (count)
|
|
|
- tty_schedule_flip(tty);
|
|
|
-
|
|
|
/*
|
|
|
* Account for the total amount read in one loop, and if above
|
|
|
* 64 bytes, we do a quick schedule loop to let the tty grok
|
|
|
@@ -656,6 +655,9 @@ static int hvc_poll(struct hvc_struct *hp)
|
|
|
bail:
|
|
|
spin_unlock_irqrestore(&hp->lock, flags);
|
|
|
|
|
|
+ if (read_total)
|
|
|
+ tty_flip_buffer_push(tty);
|
|
|
+
|
|
|
return poll_mask;
|
|
|
}
|
|
|
|