]> Pileus Git - ~andy/linux/blobdiff - drivers/usb/serial/ti_usb_3410_5052.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[~andy/linux] / drivers / usb / serial / ti_usb_3410_5052.c
index 75b838eff178ca743a3f53069ef2d515cb6f0b15..ab74123d658eba545bcb47b25478689243f973c3 100644 (file)
@@ -216,7 +216,6 @@ static struct usb_driver ti_usb_driver = {
        .probe                  = usb_serial_probe,
        .disconnect             = usb_serial_disconnect,
        .id_table               = ti_id_table_combined,
-       .no_dynamic_id =        1,
 };
 
 static struct usb_serial_driver ti_1port_device = {
@@ -225,7 +224,6 @@ static struct usb_serial_driver ti_1port_device = {
                .name           = "ti_usb_3410_5052_1",
        },
        .description            = "TI USB 3410 1 port adapter",
-       .usb_driver             = &ti_usb_driver,
        .id_table               = ti_id_table_3410,
        .num_ports              = 1,
        .attach                 = ti_startup,
@@ -254,7 +252,6 @@ static struct usb_serial_driver ti_2port_device = {
                .name           = "ti_usb_3410_5052_2",
        },
        .description            = "TI USB 5052 2 port adapter",
-       .usb_driver             = &ti_usb_driver,
        .id_table               = ti_id_table_5052,
        .num_ports              = 2,
        .attach                 = ti_startup,
@@ -277,6 +274,9 @@ static struct usb_serial_driver ti_2port_device = {
        .write_bulk_callback    = ti_bulk_out_callback,
 };
 
+static struct usb_serial_driver * const serial_drivers[] = {
+       &ti_1port_device, &ti_2port_device, NULL
+};
 
 /* Module */
 
@@ -344,36 +344,17 @@ static int __init ti_init(void)
                ti_id_table_combined[c].match_flags = USB_DEVICE_ID_MATCH_DEVICE;
        }
 
-       ret = usb_serial_register(&ti_1port_device);
-       if (ret)
-               goto failed_1port;
-       ret = usb_serial_register(&ti_2port_device);
-       if (ret)
-               goto failed_2port;
-
-       ret = usb_register(&ti_usb_driver);
-       if (ret)
-               goto failed_usb;
-
-       printk(KERN_INFO KBUILD_MODNAME ": " TI_DRIVER_VERSION ":"
-              TI_DRIVER_DESC "\n");
-
-       return 0;
-
-failed_usb:
-       usb_serial_deregister(&ti_2port_device);
-failed_2port:
-       usb_serial_deregister(&ti_1port_device);
-failed_1port:
+       ret = usb_serial_register_drivers(&ti_usb_driver, serial_drivers);
+       if (ret == 0)
+               printk(KERN_INFO KBUILD_MODNAME ": " TI_DRIVER_VERSION ":"
+                              TI_DRIVER_DESC "\n");
        return ret;
 }
 
 
 static void __exit ti_exit(void)
 {
-       usb_deregister(&ti_usb_driver);
-       usb_serial_deregister(&ti_1port_device);
-       usb_serial_deregister(&ti_2port_device);
+       usb_serial_deregister_drivers(&ti_usb_driver, serial_drivers);
 }
 
 
@@ -1250,7 +1231,6 @@ static void ti_bulk_out_callback(struct urb *urb)
 {
        struct ti_port *tport = urb->context;
        struct usb_serial_port *port = tport->tp_port;
-       struct device *dev = &urb->dev->dev;
        int status = urb->status;
 
        dbg("%s - port %d", __func__, port->number);
@@ -1268,7 +1248,7 @@ static void ti_bulk_out_callback(struct urb *urb)
                wake_up_interruptible(&tport->tp_write_wait);
                return;
        default:
-               dev_err(dev, "%s - nonzero urb status, %d\n",
+               dev_err_console(port, "%s - nonzero urb status, %d\n",
                        __func__, status);
                tport->tp_tdev->td_urb_error = 1;
                wake_up_interruptible(&tport->tp_write_wait);
@@ -1337,7 +1317,7 @@ static void ti_send(struct ti_port *tport)
 
        result = usb_submit_urb(port->write_urb, GFP_ATOMIC);
        if (result) {
-               dev_err(&port->dev, "%s - submit write urb failed, %d\n",
+               dev_err_console(port, "%s - submit write urb failed, %d\n",
                                                        __func__, result);
                tport->tp_write_urb_in_use = 0;
                /* TODO: reschedule ti_send */