|
@@ -193,7 +193,8 @@ static const struct divisor_table_entry divisor_table[] = {
|
|
|
/* local variables */
|
|
|
static bool debug;
|
|
|
|
|
|
-static atomic_t CmdUrbs; /* Number of outstanding Command Write Urbs */
|
|
|
+/* Number of outstanding Command Write Urbs */
|
|
|
+static atomic_t CmdUrbs = ATOMIC_INIT(0);
|
|
|
|
|
|
|
|
|
/* local function prototypes */
|
|
@@ -3180,38 +3181,8 @@ static void edge_release(struct usb_serial *serial)
|
|
|
kfree(edge_serial);
|
|
|
}
|
|
|
|
|
|
+module_usb_serial_driver(io_driver, serial_drivers);
|
|
|
|
|
|
-/****************************************************************************
|
|
|
- * edgeport_init
|
|
|
- * This is called by the module subsystem, or on startup to initialize us
|
|
|
- ****************************************************************************/
|
|
|
-static int __init edgeport_init(void)
|
|
|
-{
|
|
|
- int retval;
|
|
|
-
|
|
|
- retval = usb_serial_register_drivers(&io_driver, serial_drivers);
|
|
|
- if (retval == 0) {
|
|
|
- atomic_set(&CmdUrbs, 0);
|
|
|
- printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":"
|
|
|
- DRIVER_DESC "\n");
|
|
|
- }
|
|
|
- return retval;
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-/****************************************************************************
|
|
|
- * edgeport_exit
|
|
|
- * Called when the driver is about to be unloaded.
|
|
|
- ****************************************************************************/
|
|
|
-static void __exit edgeport_exit (void)
|
|
|
-{
|
|
|
- usb_serial_deregister_drivers(&io_driver, serial_drivers);
|
|
|
-}
|
|
|
-
|
|
|
-module_init(edgeport_init);
|
|
|
-module_exit(edgeport_exit);
|
|
|
-
|
|
|
-/* Module information */
|
|
|
MODULE_AUTHOR(DRIVER_AUTHOR);
|
|
|
MODULE_DESCRIPTION(DRIVER_DESC);
|
|
|
MODULE_LICENSE("GPL");
|