usb-serial: use new registration API in [t-z]* drivers
[pandora-kernel.git] / drivers / usb / serial / whiteheat.c
index 007cf3a..a29be37 100644 (file)
@@ -83,7 +83,6 @@ static struct usb_driver whiteheat_driver = {
        .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table_combined,
-       .no_dynamic_id =        1,
 };
 
 /* function prototypes for the Connect Tech WhiteHEAT prerenumeration device */
@@ -121,7 +120,6 @@ static struct usb_serial_driver whiteheat_fake_device = {
                .name =         "whiteheatnofirm",
        },
        .description =          "Connect Tech - WhiteHEAT - (prerenumeration)",
-       .usb_driver =           &whiteheat_driver,
        .id_table =             id_table_prerenumeration,
        .num_ports =            1,
        .probe =                whiteheat_firmware_download,
@@ -134,7 +132,6 @@ static struct usb_serial_driver whiteheat_device = {
                .name =         "whiteheat",
        },
        .description =          "Connect Tech - WhiteHEAT",
-       .usb_driver =           &whiteheat_driver,
        .id_table =             id_table_std,
        .num_ports =            4,
        .attach =               whiteheat_attach,
@@ -155,6 +152,9 @@ static struct usb_serial_driver whiteheat_device = {
        .write_bulk_callback =  whiteheat_write_callback,
 };
 
+static struct usb_serial_driver * const serial_drivers[] = {
+       &whiteheat_fake_device, &whiteheat_device, NULL
+};
 
 struct whiteheat_command_private {
        struct mutex            mutex;
@@ -1461,32 +1461,18 @@ out:
 static int __init whiteheat_init(void)
 {
        int retval;
-       retval = usb_serial_register(&whiteheat_fake_device);
-       if (retval)
-               goto failed_fake_register;
-       retval = usb_serial_register(&whiteheat_device);
-       if (retval)
-               goto failed_device_register;
-       retval = usb_register(&whiteheat_driver);
-       if (retval)
-               goto failed_usb_register;
-       printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":"
-              DRIVER_DESC "\n");
-       return 0;
-failed_usb_register:
-       usb_serial_deregister(&whiteheat_device);
-failed_device_register:
-       usb_serial_deregister(&whiteheat_fake_device);
-failed_fake_register:
+
+       retval = usb_serial_register_drivers(&whiteheat_driver, serial_drivers);
+       if (retval == 0)
+               printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":"
+                               DRIVER_DESC "\n");
        return retval;
 }
 
 
 static void __exit whiteheat_exit(void)
 {
-       usb_deregister(&whiteheat_driver);
-       usb_serial_deregister(&whiteheat_fake_device);
-       usb_serial_deregister(&whiteheat_device);
+       usb_serial_deregister_drivers(&whiteheat_driver, serial_drivers);
 }