MODULE_DEVICE_TABLE(usb, device_table);
 
-static struct usb_driver driver = {
+static struct usb_driver usb_driver = {
        .name = "snd-usb-6fire",
        .probe = usb6fire_chip_probe,
        .disconnect = usb6fire_chip_disconnect,
        .id_table = device_table,
 };
 
-static int __init usb6fire_chip_init(void)
-{
-       return usb_register(&driver);
-}
-
-static void __exit usb6fire_chip_cleanup(void)
-{
-       usb_deregister(&driver);
-}
-
-module_init(usb6fire_chip_init);
-module_exit(usb6fire_chip_cleanup);
+module_usb_driver(usb_driver);
 
        .id_table       = snd_usb_id_table,
 };
 
-static int __init snd_module_init(void)
-{
-       return usb_register(&snd_usb_driver);
-}
-
-static void __exit snd_module_exit(void)
-{
-       usb_deregister(&snd_usb_driver);
-}
-
-module_init(snd_module_init)
-module_exit(snd_module_exit)
+module_usb_driver(snd_usb_driver);
 
 
 #endif
 };
 
-static int __init alsa_card_ua101_init(void)
-{
-       return usb_register(&ua101_driver);
-}
-
-static void __exit alsa_card_ua101_exit(void)
-{
-       usb_deregister(&ua101_driver);
-       mutex_destroy(&devices_mutex);
-}
-
-module_init(alsa_card_ua101_init);
-module_exit(alsa_card_ua101_exit);
+module_usb_driver(ua101_driver);
 
        .supports_autosuspend = 1
 };
 
-
-static int __init snd_us122l_module_init(void)
-{
-       return usb_register(&snd_us122l_usb_driver);
-}
-
-static void __exit snd_us122l_module_exit(void)
-{
-       usb_deregister(&snd_us122l_usb_driver);
-}
-
-module_init(snd_us122l_module_init)
-module_exit(snd_us122l_module_exit)
+module_usb_driver(snd_us122l_usb_driver);
 
        }
 }
 
-static int __init snd_usX2Y_module_init(void)
-{
-       return usb_register(&snd_usX2Y_usb_driver);
-}
-
-static void __exit snd_usX2Y_module_exit(void)
-{
-       usb_deregister(&snd_usX2Y_usb_driver);
-}
-
-module_init(snd_usX2Y_module_init)
-module_exit(snd_usX2Y_module_exit)
+module_usb_driver(snd_usX2Y_usb_driver);