Merge branch 'upstream/wm8350' into for-2.6.32
[pandora-kernel.git] / drivers / usb / serial / kobil_sct.c
index 6db0e56..45ea694 100644 (file)
@@ -70,8 +70,7 @@ static int debug;
 /* Function prototypes */
 static int  kobil_startup(struct usb_serial *serial);
 static void kobil_release(struct usb_serial *serial);
-static int  kobil_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp);
+static int  kobil_open(struct tty_struct *tty, struct usb_serial_port *port);
 static void kobil_close(struct usb_serial_port *port);
 static int  kobil_write(struct tty_struct *tty, struct usb_serial_port *port,
                         const unsigned char *buf, int count);
@@ -85,7 +84,7 @@ static void kobil_read_int_callback(struct urb *urb);
 static void kobil_write_callback(struct urb *purb);
 static void kobil_set_termios(struct tty_struct *tty,
                        struct usb_serial_port *port, struct ktermios *old);
-
+static void kobil_init_termios(struct tty_struct *tty);
 
 static struct usb_device_id id_table [] = {
        { USB_DEVICE(KOBIL_VENDOR_ID, KOBIL_ADAPTER_B_PRODUCT_ID) },
@@ -120,6 +119,7 @@ static struct usb_serial_driver kobil_device = {
        .release =              kobil_release,
        .ioctl =                kobil_ioctl,
        .set_termios =          kobil_set_termios,
+       .init_termios =         kobil_init_termios,
        .tiocmget =             kobil_tiocmget,
        .tiocmset =             kobil_tiocmset,
        .open =                 kobil_open,
@@ -210,9 +210,17 @@ static void kobil_release(struct usb_serial *serial)
                kfree(usb_get_serial_port_data(serial->port[i]));
 }
 
+static void kobil_init_termios(struct tty_struct *tty)
+{
+       /* Default to echo off and other sane device settings */
+       tty->termios->c_lflag = 0;
+       tty->termios->c_lflag &= ~(ISIG | ICANON | ECHO | IEXTEN | XCASE);
+       tty->termios->c_iflag = IGNBRK | IGNPAR | IXOFF;
+       /* do NOT translate CR to CR-NL (0x0A -> 0x0A 0x0D) */
+       tty->termios->c_oflag &= ~ONLCR;
+}
 
-static int kobil_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int kobil_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        int result = 0;
        struct kobil_private *priv;
@@ -226,16 +234,6 @@ static int kobil_open(struct tty_struct *tty,
        /* someone sets the dev to 0 if the close method has been called */
        port->interrupt_in_urb->dev = port->serial->dev;
 
-       if (tty) {
-
-               /* Default to echo off and other sane device settings */
-               tty->termios->c_lflag = 0;
-               tty->termios->c_lflag &= ~(ISIG | ICANON | ECHO | IEXTEN |
-                                                                XCASE);
-               tty->termios->c_iflag = IGNBRK | IGNPAR | IXOFF;
-               /* do NOT translate CR to CR-NL (0x0A -> 0x0A 0x0D) */
-               tty->termios->c_oflag &= ~ONLCR;
-       }
        /* allocate memory for transfer buffer */
        transfer_buffer = kzalloc(transfer_buffer_length, GFP_KERNEL);
        if (!transfer_buffer)