Set low-latency flag on serial port.

Some serial drivers does not default to lowlatency mode by default.
pull/62/head
Søren Holm 2018-01-14 14:16:20 +01:00
parent cf949a926a
commit d052ad1a6b
1 changed files with 8 additions and 0 deletions

View File

@ -39,6 +39,7 @@
#include <termios.h>
#include <linux/tty.h>
#include <linux/sockios.h>
#include <linux/serial.h>
#include <stdarg.h>
/* Change this to whatever your daemon is called */
@ -310,6 +311,13 @@ int main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
// Because of a recent change in linux - https://patchwork.kernel.org/patch/9589541/
// we need to set low latency flag to get proper receive latency
struct serial_struct snew;
ioctl (fd, TIOCGSERIAL, &snew);
snew.flags |= ASYNC_LOW_LATENCY;
ioctl (fd, TIOCSSERIAL, &snew);
/* Get old values for later restore */
old_ispeed = cfgetispeed(&tios);
old_ospeed = cfgetospeed(&tios);