aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial/io_ti.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/serial/io_ti.c')
-rw-r--r--drivers/usb/serial/io_ti.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/drivers/usb/serial/io_ti.c b/drivers/usb/serial/io_ti.c
index f7fdf1ce6bf3..cd3405953f74 100644
--- a/drivers/usb/serial/io_ti.c
+++ b/drivers/usb/serial/io_ti.c
@@ -1979,7 +1979,7 @@ static int edge_open (struct usb_serial_port *port, struct file * filp)
1979 } 1979 }
1980 1980
1981 /* set up the port settings */ 1981 /* set up the port settings */
1982 edge_set_termios (port, NULL); 1982 edge_set_termios (port, port->tty->termios);
1983 1983
1984 /* open up the port */ 1984 /* open up the port */
1985 1985
@@ -2394,11 +2394,6 @@ static void change_port_settings (struct edgeport_port *edge_port, struct ktermi
2394 dbg("%s - port %d", __FUNCTION__, edge_port->port->number); 2394 dbg("%s - port %d", __FUNCTION__, edge_port->port->number);
2395 2395
2396 tty = edge_port->port->tty; 2396 tty = edge_port->port->tty;
2397 if ((!tty) ||
2398 (!tty->termios)) {
2399 dbg("%s - no tty structures", __FUNCTION__);
2400 return;
2401 }
2402 2397
2403 config = kmalloc (sizeof (*config), GFP_KERNEL); 2398 config = kmalloc (sizeof (*config), GFP_KERNEL);
2404 if (!config) { 2399 if (!config) {
@@ -2493,15 +2488,21 @@ static void change_port_settings (struct edgeport_port *edge_port, struct ktermi
2493 } 2488 }
2494 } 2489 }
2495 2490
2491 tty->termios->c_cflag &= ~CMSPAR;
2492
2496 /* Round the baud rate */ 2493 /* Round the baud rate */
2497 baud = tty_get_baud_rate(tty); 2494 baud = tty_get_baud_rate(tty);
2498 if (!baud) { 2495 if (!baud) {
2499 /* pick a default, any default... */ 2496 /* pick a default, any default... */
2500 baud = 9600; 2497 baud = 9600;
2501 } 2498 } else
2499 tty_encode_baud_rate(tty, baud, baud);
2500
2502 edge_port->baud_rate = baud; 2501 edge_port->baud_rate = baud;
2503 config->wBaudRate = (__u16)((461550L + baud/2) / baud); 2502 config->wBaudRate = (__u16)((461550L + baud/2) / baud);
2504 2503
2504 /* FIXME: Recompute actual baud from divisor here */
2505
2505 dbg ("%s - baud rate = %d, wBaudRate = %d", __FUNCTION__, baud, config->wBaudRate); 2506 dbg ("%s - baud rate = %d, wBaudRate = %d", __FUNCTION__, baud, config->wBaudRate);
2506 2507
2507 dbg ("wBaudRate: %d", (int)(461550L / config->wBaudRate)); 2508 dbg ("wBaudRate: %d", (int)(461550L / config->wBaudRate));
@@ -2539,19 +2540,12 @@ static void edge_set_termios (struct usb_serial_port *port, struct ktermios *old
2539 struct tty_struct *tty = port->tty; 2540 struct tty_struct *tty = port->tty;
2540 unsigned int cflag; 2541 unsigned int cflag;
2541 2542
2542 if (!port->tty || !port->tty->termios) {
2543 dbg ("%s - no tty or termios", __FUNCTION__);
2544 return;
2545 }
2546
2547 cflag = tty->termios->c_cflag; 2543 cflag = tty->termios->c_cflag;
2548 2544
2549 dbg("%s - clfag %08x iflag %08x", __FUNCTION__, 2545 dbg("%s - clfag %08x iflag %08x", __FUNCTION__,
2550 tty->termios->c_cflag, tty->termios->c_iflag); 2546 tty->termios->c_cflag, tty->termios->c_iflag);
2551 if (old_termios) { 2547 dbg("%s - old clfag %08x old iflag %08x", __FUNCTION__,
2552 dbg("%s - old clfag %08x old iflag %08x", __FUNCTION__, 2548 old_termios->c_cflag, old_termios->c_iflag);
2553 old_termios->c_cflag, old_termios->c_iflag);
2554 }
2555 2549
2556 dbg("%s - port %d", __FUNCTION__, port->number); 2550 dbg("%s - port %d", __FUNCTION__, port->number);
2557 2551