]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/usb/serial/kobil_sct.c
Pull asus into release branch
[linux-2.6-omap-h63xx.git] / drivers / usb / serial / kobil_sct.c
index 237289920f03deb7438cda346fbd54966dd34d80..02a86dbc0e9759673000eeb4521a8d0bafabc5ed 100644 (file)
@@ -110,6 +110,7 @@ static struct usb_serial_driver kobil_device = {
                .name =         "kobil",
        },
        .description =          "KOBIL USB smart card terminal",
+       .usb_driver =           &kobil_driver,
        .id_table =             id_table,
        .num_interrupt_in =     NUM_DONT_CARE,
        .num_bulk_in =          0,
@@ -136,7 +137,7 @@ struct kobil_private {
        int cur_pos; // index of the next char to send in buf
        __u16 device_type;
        int line_state;
-       struct termios internal_termios;
+       struct ktermios internal_termios;
 };
 
 
@@ -269,7 +270,7 @@ static int kobil_open (struct usb_serial_port *port, struct file *filp)
        }
 
        // allocate memory for write_urb transfer buffer
-       port->write_urb->transfer_buffer = (unsigned char *) kmalloc(write_urb_transfer_buffer_length, GFP_KERNEL);
+       port->write_urb->transfer_buffer = kmalloc(write_urb_transfer_buffer_length, GFP_KERNEL);
        if (! port->write_urb->transfer_buffer) {
                kfree(transfer_buffer);
                usb_free_urb(port->write_urb);
@@ -357,24 +358,26 @@ static void kobil_close (struct usb_serial_port *port, struct file *filp)
 }
 
 
-static void kobil_read_int_callback( struct urb *purb)
+static void kobil_read_int_callback(struct urb *urb)
 {
        int result;
-       struct usb_serial_port *port = (struct usb_serial_port *) purb->context;
+       struct usb_serial_port *port = urb->context;
        struct tty_struct *tty;
-       unsigned char *data = purb->transfer_buffer;
+       unsigned char *data = urb->transfer_buffer;
+       int status = urb->status;
 //     char *dbg_data;
 
        dbg("%s - port %d", __FUNCTION__, port->number);
 
-       if (purb->status) {
-               dbg("%s - port %d Read int status not zero: %d", __FUNCTION__, port->number, purb->status);
+       if (status) {
+               dbg("%s - port %d Read int status not zero: %d",
+                   __FUNCTION__, port->number, status);
                return;
        }
-       
-       tty = port->tty; 
-       if (purb->actual_length) {
-               
+
+       tty = port->tty;
+       if (urb->actual_length) {
+
                // BEGIN DEBUG
                /*
                  dbg_data = kzalloc((3 *  purb->actual_length + 10) * sizeof(char), GFP_KERNEL);
@@ -389,15 +392,15 @@ static void kobil_read_int_callback( struct urb *purb)
                */
                // END DEBUG
 
-               tty_buffer_request_room(tty, purb->actual_length);
-               tty_insert_flip_string(tty, data, purb->actual_length);
+               tty_buffer_request_room(tty, urb->actual_length);
+               tty_insert_flip_string(tty, data, urb->actual_length);
                tty_flip_buffer_push(tty);
        }
 
        // someone sets the dev to 0 if the close method has been called
        port->interrupt_in_urb->dev = port->serial->dev;
 
-       result = usb_submit_urb( port->interrupt_in_urb, GFP_ATOMIC ); 
+       result = usb_submit_urb(port->interrupt_in_urb, GFP_ATOMIC);
        dbg("%s - port %d Send read URB returns: %i", __FUNCTION__, port->number, result);
 }
 
@@ -624,11 +627,11 @@ static int  kobil_ioctl(struct usb_serial_port *port, struct file *file,
 
        switch (cmd) {
        case TCGETS:   // 0x5401
-               if (!access_ok(VERIFY_WRITE, user_arg, sizeof(struct termios))) {
+               if (!access_ok(VERIFY_WRITE, user_arg, sizeof(struct ktermios))) {
                        dbg("%s - port %d Error in access_ok", __FUNCTION__, port->number);
                        return -EFAULT;
                }
-               if (kernel_termios_to_user_termios((struct termios __user *)arg,
+               if (kernel_termios_to_user_termios((struct ktermios __user *)arg,
                                                   &priv->internal_termios))
                        return -EFAULT;
                return 0;
@@ -638,12 +641,12 @@ static int  kobil_ioctl(struct usb_serial_port *port, struct file *file,
                        dbg("%s - port %d Error: port->tty->termios is NULL", __FUNCTION__, port->number);
                        return -ENOTTY;
                }
-               if (!access_ok(VERIFY_READ, user_arg, sizeof(struct termios))) {
+               if (!access_ok(VERIFY_READ, user_arg, sizeof(struct ktermios))) {
                        dbg("%s - port %d Error in access_ok", __FUNCTION__, port->number);
                        return -EFAULT;
                }
                if (user_termios_to_kernel_termios(&priv->internal_termios,
-                                                  (struct termios __user *)arg))
+                                                  (struct ktermios __user *)arg))
                        return -EFAULT;
                
                settings = kzalloc(50, GFP_KERNEL);
@@ -696,7 +699,7 @@ static int  kobil_ioctl(struct usb_serial_port *port, struct file *file,
                return 0;
 
        case TCFLSH:   // 0x540B
-               transfer_buffer = (unsigned char *) kmalloc(transfer_buffer_length, GFP_KERNEL);
+               transfer_buffer = kmalloc(transfer_buffer_length, GFP_KERNEL);
                if (! transfer_buffer) {
                        return -ENOBUFS;
                }