};
 MODULE_DEVICE_TABLE(pci, asihpi_pci_tbl);
 
-static struct pci_driver asihpi_driver = {
+static struct pci_driver driver = {
        .name = KBUILD_MODNAME,
        .id_table = asihpi_pci_tbl,
        .probe = snd_asihpi_probe,
 #endif
 };
 
-module_pci_driver(asihpi_driver);
+static int __init snd_asihpi_init(void)
+{
+       asihpi_init();
+       return pci_register_driver(&driver);
+}
+
+static void __exit snd_asihpi_exit(void)
+{
+
+       pci_unregister_driver(&driver);
+       asihpi_exit();
+}
+
+module_init(snd_asihpi_init)
+module_exit(snd_asihpi_exit)
+