]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/usb/serial/ark3116.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6-omap-h63xx.git] / drivers / usb / serial / ark3116.c
index 5261cd22ee6bf635e6f8b44fc5cd7acd99ddb275..fe437125f14bc9f86cdb2b4352c04c2c2528aca6 100644 (file)
@@ -63,7 +63,8 @@ static inline void ARK3116_RCV(struct usb_serial *serial, int seq,
                                 request, requesttype, value, index,
                                 buf, 0x0000001, 1000);
        if (result)
-               dbg("%03d < %d bytes [0x%02X]", seq, result, buf[0]);
+               dbg("%03d < %d bytes [0x%02X]", seq, result,
+                   ((unsigned char *)buf)[0]);
        else
                dbg("%03d < 0 bytes", seq);
 }
@@ -341,7 +342,7 @@ static int ark3116_open(struct usb_serial_port *port, struct file *filp)
 
        result = usb_serial_generic_open(port, filp);
        if (result)
-               return result;
+               goto err_out;
 
        /* open */
        ARK3116_RCV(serial, 111, 0xFE, 0xC0, 0x0000, 0x0003, 0x02, buf);
@@ -372,6 +373,7 @@ static int ark3116_open(struct usb_serial_port *port, struct file *filp)
        if (port->tty)
                ark3116_set_termios(port, &tmp_termios);
 
+err_out:
        kfree(buf);
 
        return result;
@@ -444,6 +446,7 @@ static struct usb_driver ark3116_driver = {
        .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
+       .no_dynamic_id =        1,
 };
 
 static struct usb_serial_driver ark3116_device = {
@@ -452,6 +455,7 @@ static struct usb_serial_driver ark3116_device = {
                .name =         "ark3116",
        },
        .id_table =             id_table,
+       .usb_driver =           &ark3116_driver,
        .num_interrupt_in =     1,
        .num_bulk_in =          1,
        .num_bulk_out =         1,