|
@@ -449,14 +449,9 @@ static int empeg_ioctl (struct usb_serial_port *port, struct file * file, unsign
|
|
|
|
|
|
static void empeg_set_termios (struct usb_serial_port *port, struct ktermios *old_termios)
|
|
|
{
|
|
|
-
|
|
|
+ struct ktermios *termios = port->tty->termios;
|
|
|
dbg("%s - port %d", __FUNCTION__, port->number);
|
|
|
|
|
|
- if ((!port->tty) || (!port->tty->termios)) {
|
|
|
- dbg("%s - no tty structures", __FUNCTION__);
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
/*
|
|
|
* The empeg-car player wants these particular tty settings.
|
|
|
* You could, for example, change the baud rate, however the
|
|
@@ -466,7 +461,7 @@ static void empeg_set_termios (struct usb_serial_port *port, struct ktermios *ol
|
|
|
*
|
|
|
* The default requirements for this device are:
|
|
|
*/
|
|
|
- port->tty->termios->c_iflag
|
|
|
+ termios->c_iflag
|
|
|
&= ~(IGNBRK /* disable ignore break */
|
|
|
| BRKINT /* disable break causes interrupt */
|
|
|
| PARMRK /* disable mark parity errors */
|
|
@@ -476,24 +471,23 @@ static void empeg_set_termios (struct usb_serial_port *port, struct ktermios *ol
|
|
|
| ICRNL /* disable translate CR to NL */
|
|
|
| IXON); /* disable enable XON/XOFF flow control */
|
|
|
|
|
|
- port->tty->termios->c_oflag
|
|
|
+ termios->c_oflag
|
|
|
&= ~OPOST; /* disable postprocess output characters */
|
|
|
|
|
|
- port->tty->termios->c_lflag
|
|
|
+ termios->c_lflag
|
|
|
&= ~(ECHO /* disable echo input characters */
|
|
|
| ECHONL /* disable echo new line */
|
|
|
| ICANON /* disable erase, kill, werase, and rprnt special characters */
|
|
|
| ISIG /* disable interrupt, quit, and suspend special characters */
|
|
|
| IEXTEN); /* disable non-POSIX special characters */
|
|
|
|
|
|
- port->tty->termios->c_cflag
|
|
|
+ termios->c_cflag
|
|
|
&= ~(CSIZE /* no size */
|
|
|
| PARENB /* disable parity bit */
|
|
|
| CBAUD); /* clear current baud rate */
|
|
|
|
|
|
- port->tty->termios->c_cflag
|
|
|
- |= (CS8 /* character size 8 bits */
|
|
|
- | B115200); /* baud rate 115200 */
|
|
|
+ termios->c_cflag
|
|
|
+ |= CS8; /* character size 8 bits */
|
|
|
|
|
|
/*
|
|
|
* Force low_latency on; otherwise the pushes are scheduled;
|
|
@@ -501,8 +495,7 @@ static void empeg_set_termios (struct usb_serial_port *port, struct ktermios *ol
|
|
|
* on the floor. We don't want to drop bytes on the floor. :)
|
|
|
*/
|
|
|
port->tty->low_latency = 1;
|
|
|
-
|
|
|
- return;
|
|
|
+ tty_encode_baud_rate(port->tty, 115200, 115200);
|
|
|
}
|
|
|
|
|
|
|