X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fusb%2Fserial%2Fkobil_sct.c;h=02a86dbc0e9759673000eeb4521a8d0bafabc5ed;hb=1ed4395035a6791ebbbf618429a58ab9c207cc83;hp=237289920f03deb7438cda346fbd54966dd34d80;hpb=ea14fad0d416354a4e9bb1a04f32acba706f9548;p=linux-2.6-omap-h63xx.git diff --git a/drivers/usb/serial/kobil_sct.c b/drivers/usb/serial/kobil_sct.c index 237289920f0..02a86dbc0e9 100644 --- a/drivers/usb/serial/kobil_sct.c +++ b/drivers/usb/serial/kobil_sct.c @@ -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; }