aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial/cypress_m8.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/serial/cypress_m8.c')
-rw-r--r--drivers/usb/serial/cypress_m8.c64
1 files changed, 7 insertions, 57 deletions
diff --git a/drivers/usb/serial/cypress_m8.c b/drivers/usb/serial/cypress_m8.c
index 3bdeafa29c24..afc886c75d2f 100644
--- a/drivers/usb/serial/cypress_m8.c
+++ b/drivers/usb/serial/cypress_m8.c
@@ -94,7 +94,6 @@ static struct usb_driver cypress_driver = {
94 .probe = usb_serial_probe, 94 .probe = usb_serial_probe,
95 .disconnect = usb_serial_disconnect, 95 .disconnect = usb_serial_disconnect,
96 .id_table = id_table_combined, 96 .id_table = id_table_combined,
97 .no_dynamic_id = 1,
98}; 97};
99 98
100enum packet_format { 99enum packet_format {
@@ -163,7 +162,6 @@ static struct usb_serial_driver cypress_earthmate_device = {
163 .name = "earthmate", 162 .name = "earthmate",
164 }, 163 },
165 .description = "DeLorme Earthmate USB", 164 .description = "DeLorme Earthmate USB",
166 .usb_driver = &cypress_driver,
167 .id_table = id_table_earthmate, 165 .id_table = id_table_earthmate,
168 .num_ports = 1, 166 .num_ports = 1,
169 .attach = cypress_earthmate_startup, 167 .attach = cypress_earthmate_startup,
@@ -190,7 +188,6 @@ static struct usb_serial_driver cypress_hidcom_device = {
190 .name = "cyphidcom", 188 .name = "cyphidcom",
191 }, 189 },
192 .description = "HID->COM RS232 Adapter", 190 .description = "HID->COM RS232 Adapter",
193 .usb_driver = &cypress_driver,
194 .id_table = id_table_cyphidcomrs232, 191 .id_table = id_table_cyphidcomrs232,
195 .num_ports = 1, 192 .num_ports = 1,
196 .attach = cypress_hidcom_startup, 193 .attach = cypress_hidcom_startup,
@@ -217,7 +214,6 @@ static struct usb_serial_driver cypress_ca42v2_device = {
217 .name = "nokiaca42v2", 214 .name = "nokiaca42v2",
218 }, 215 },
219 .description = "Nokia CA-42 V2 Adapter", 216 .description = "Nokia CA-42 V2 Adapter",
220 .usb_driver = &cypress_driver,
221 .id_table = id_table_nokiaca42v2, 217 .id_table = id_table_nokiaca42v2,
222 .num_ports = 1, 218 .num_ports = 1,
223 .attach = cypress_ca42v2_startup, 219 .attach = cypress_ca42v2_startup,
@@ -238,6 +234,11 @@ static struct usb_serial_driver cypress_ca42v2_device = {
238 .write_int_callback = cypress_write_int_callback, 234 .write_int_callback = cypress_write_int_callback,
239}; 235};
240 236
237static struct usb_serial_driver * const serial_drivers[] = {
238 &cypress_earthmate_device, &cypress_hidcom_device,
239 &cypress_ca42v2_device, NULL
240};
241
241/***************************************************************************** 242/*****************************************************************************
242 * Cypress serial helper functions 243 * Cypress serial helper functions
243 *****************************************************************************/ 244 *****************************************************************************/
@@ -800,7 +801,7 @@ send:
800 cypress_write_int_callback, port, priv->write_urb_interval); 801 cypress_write_int_callback, port, priv->write_urb_interval);
801 result = usb_submit_urb(port->interrupt_out_urb, GFP_ATOMIC); 802 result = usb_submit_urb(port->interrupt_out_urb, GFP_ATOMIC);
802 if (result) { 803 if (result) {
803 dev_err(&port->dev, 804 dev_err_console(port,
804 "%s - failed submitting write urb, error %d\n", 805 "%s - failed submitting write urb, error %d\n",
805 __func__, result); 806 __func__, result);
806 priv->write_urb_in_use = 0; 807 priv->write_urb_in_use = 0;
@@ -1345,58 +1346,7 @@ static void cypress_write_int_callback(struct urb *urb)
1345 cypress_send(port); 1346 cypress_send(port);
1346} 1347}
1347 1348
1348 1349module_usb_serial_driver(cypress_driver, serial_drivers);
1349/*****************************************************************************
1350 * Module functions
1351 *****************************************************************************/
1352
1353static int __init cypress_init(void)
1354{
1355 int retval;
1356
1357 dbg("%s", __func__);
1358
1359 retval = usb_serial_register(&cypress_earthmate_device);
1360 if (retval)
1361 goto failed_em_register;
1362 retval = usb_serial_register(&cypress_hidcom_device);
1363 if (retval)
1364 goto failed_hidcom_register;
1365 retval = usb_serial_register(&cypress_ca42v2_device);
1366 if (retval)
1367 goto failed_ca42v2_register;
1368 retval = usb_register(&cypress_driver);
1369 if (retval)
1370 goto failed_usb_register;
1371
1372 printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":"
1373 DRIVER_DESC "\n");
1374 return 0;
1375
1376failed_usb_register:
1377 usb_serial_deregister(&cypress_ca42v2_device);
1378failed_ca42v2_register:
1379 usb_serial_deregister(&cypress_hidcom_device);
1380failed_hidcom_register:
1381 usb_serial_deregister(&cypress_earthmate_device);
1382failed_em_register:
1383 return retval;
1384}
1385
1386
1387static void __exit cypress_exit(void)
1388{
1389 dbg("%s", __func__);
1390
1391 usb_deregister(&cypress_driver);
1392 usb_serial_deregister(&cypress_earthmate_device);
1393 usb_serial_deregister(&cypress_hidcom_device);
1394 usb_serial_deregister(&cypress_ca42v2_device);
1395}
1396
1397
1398module_init(cypress_init);
1399module_exit(cypress_exit);
1400 1350
1401MODULE_AUTHOR(DRIVER_AUTHOR); 1351MODULE_AUTHOR(DRIVER_AUTHOR);
1402MODULE_DESCRIPTION(DRIVER_DESC); 1352MODULE_DESCRIPTION(DRIVER_DESC);