|
@@ -173,7 +173,6 @@ static struct usb_driver visor_driver = {
|
|
|
.probe = usb_serial_probe,
|
|
|
.disconnect = usb_serial_disconnect,
|
|
|
.id_table = id_table_combined,
|
|
|
- .no_dynamic_id = 1,
|
|
|
};
|
|
|
|
|
|
/* All of the device info needed for the Handspring Visor,
|
|
@@ -184,7 +183,6 @@ static struct usb_serial_driver handspring_device = {
|
|
|
.name = "visor",
|
|
|
},
|
|
|
.description = "Handspring Visor / Palm OS",
|
|
|
- .usb_driver = &visor_driver,
|
|
|
.id_table = id_table,
|
|
|
.num_ports = 2,
|
|
|
.bulk_out_size = 256,
|
|
@@ -205,7 +203,6 @@ static struct usb_serial_driver clie_5_device = {
|
|
|
.name = "clie_5",
|
|
|
},
|
|
|
.description = "Sony Clie 5.0",
|
|
|
- .usb_driver = &visor_driver,
|
|
|
.id_table = clie_id_5_table,
|
|
|
.num_ports = 2,
|
|
|
.bulk_out_size = 256,
|
|
@@ -226,7 +223,6 @@ static struct usb_serial_driver clie_3_5_device = {
|
|
|
.name = "clie_3.5",
|
|
|
},
|
|
|
.description = "Sony Clie 3.5",
|
|
|
- .usb_driver = &visor_driver,
|
|
|
.id_table = clie_id_3_5_table,
|
|
|
.num_ports = 1,
|
|
|
.bulk_out_size = 256,
|
|
@@ -237,6 +233,10 @@ static struct usb_serial_driver clie_3_5_device = {
|
|
|
.attach = clie_3_5_startup,
|
|
|
};
|
|
|
|
|
|
+static struct usb_serial_driver * const serial_drivers[] = {
|
|
|
+ &handspring_device, &clie_5_device, &clie_3_5_device, NULL
|
|
|
+};
|
|
|
+
|
|
|
/******************************************************************************
|
|
|
* Handspring Visor specific driver functions
|
|
|
******************************************************************************/
|
|
@@ -685,38 +685,17 @@ static int __init visor_init(void)
|
|
|
": Adding Palm OS protocol 4.x support for unknown device: 0x%x/0x%x\n",
|
|
|
vendor, product);
|
|
|
}
|
|
|
- retval = usb_serial_register(&handspring_device);
|
|
|
- if (retval)
|
|
|
- goto failed_handspring_register;
|
|
|
- retval = usb_serial_register(&clie_3_5_device);
|
|
|
- if (retval)
|
|
|
- goto failed_clie_3_5_register;
|
|
|
- retval = usb_serial_register(&clie_5_device);
|
|
|
- if (retval)
|
|
|
- goto failed_clie_5_register;
|
|
|
- retval = usb_register(&visor_driver);
|
|
|
- if (retval)
|
|
|
- goto failed_usb_register;
|
|
|
- printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_DESC "\n");
|
|
|
|
|
|
- return 0;
|
|
|
-failed_usb_register:
|
|
|
- usb_serial_deregister(&clie_5_device);
|
|
|
-failed_clie_5_register:
|
|
|
- usb_serial_deregister(&clie_3_5_device);
|
|
|
-failed_clie_3_5_register:
|
|
|
- usb_serial_deregister(&handspring_device);
|
|
|
-failed_handspring_register:
|
|
|
+ retval = usb_serial_register_drivers(&visor_driver, serial_drivers);
|
|
|
+ if (retval == 0)
|
|
|
+ printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_DESC "\n");
|
|
|
return retval;
|
|
|
}
|
|
|
|
|
|
|
|
|
static void __exit visor_exit (void)
|
|
|
{
|
|
|
- usb_deregister(&visor_driver);
|
|
|
- usb_serial_deregister(&handspring_device);
|
|
|
- usb_serial_deregister(&clie_3_5_device);
|
|
|
- usb_serial_deregister(&clie_5_device);
|
|
|
+ usb_serial_deregister_drivers(&visor_driver, serial_drivers);
|
|
|
}
|
|
|
|
|
|
|