Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d5f5bcd425b771c0b7ff5a650b2ce061ac8bbb87
Commit:     d5f5bcd425b771c0b7ff5a650b2ce061ac8bbb87
Parent:     537699ef53f8b97546f0845bf51a49c9ab114a13
Author:     Alan Cox <[EMAIL PROTECTED]>
AuthorDate: Thu Jan 3 16:57:33 2008 +0000
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Fri Feb 1 14:35:00 2008 -0800

    USB: io_ti: clean up termios handling
    
    Don't pass NULL into termios functions when calling them internally
    Remove all the crap which then checks for NULL which can't occur now
    Clear CMSPAR as it is not supported
    Report the baud rate back to the caller properly (See FIXME someone with
    the docs)
    
    Signed-off-by: Alan Cox <[EMAIL PROTECTED]>
    Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 drivers/usb/serial/io_ti.c |   26 ++++++++++----------------
 1 files changed, 10 insertions(+), 16 deletions(-)

diff --git a/drivers/usb/serial/io_ti.c b/drivers/usb/serial/io_ti.c
index f7fdf1c..cd34059 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)
        }
        
        /* set up the port settings */
-       edge_set_termios (port, NULL);
+       edge_set_termios (port, port->tty->termios);
 
        /* open up the port */
 
@@ -2394,11 +2394,6 @@ static void change_port_settings (struct edgeport_port 
*edge_port, struct ktermi
        dbg("%s - port %d", __FUNCTION__, edge_port->port->number);
 
        tty = edge_port->port->tty;
-       if ((!tty) ||
-           (!tty->termios)) {
-               dbg("%s - no tty structures", __FUNCTION__);
-               return;
-       }
 
        config = kmalloc (sizeof (*config), GFP_KERNEL);
        if (!config) {
@@ -2493,15 +2488,21 @@ static void change_port_settings (struct edgeport_port 
*edge_port, struct ktermi
                }
        }
 
+       tty->termios->c_cflag &= ~CMSPAR;
+
        /* Round the baud rate */
        baud = tty_get_baud_rate(tty);
        if (!baud) {
                /* pick a default, any default... */
                baud = 9600;
-       }
+       } else
+               tty_encode_baud_rate(tty, baud, baud);
+
        edge_port->baud_rate = baud;
        config->wBaudRate = (__u16)((461550L + baud/2) / baud);
 
+       /* FIXME: Recompute actual baud from divisor here */
+
        dbg ("%s - baud rate = %d, wBaudRate = %d", __FUNCTION__, baud, 
config->wBaudRate);
 
        dbg ("wBaudRate:   %d", (int)(461550L / config->wBaudRate));
@@ -2539,19 +2540,12 @@ static void edge_set_termios (struct usb_serial_port 
*port, struct ktermios *old
        struct tty_struct *tty = port->tty;
        unsigned int cflag;
 
-       if (!port->tty || !port->tty->termios) {
-               dbg ("%s - no tty or termios", __FUNCTION__);
-               return;
-       }
-
        cflag = tty->termios->c_cflag;
 
        dbg("%s - clfag %08x iflag %08x", __FUNCTION__, 
            tty->termios->c_cflag, tty->termios->c_iflag);
-       if (old_termios) {
-               dbg("%s - old clfag %08x old iflag %08x", __FUNCTION__,
-                   old_termios->c_cflag, old_termios->c_iflag);
-       }
+       dbg("%s - old clfag %08x old iflag %08x", __FUNCTION__,
+           old_termios->c_cflag, old_termios->c_iflag);
 
        dbg("%s - port %d", __FUNCTION__, port->number);
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to