Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6
[sfrench/cifs-2.6.git] / drivers / staging / comedi / drivers / cb_das16_cs.c
index 7cf0ccb5adefe2b16cfde8a42e4a8370185203af..f8ede1182ccc5113b657a997b3df20460bf729fa 100644 (file)
@@ -661,14 +661,6 @@ static void das16cs_pcmcia_detach(struct pcmcia_device *);
    less on other parts of the kernel.
 */
 
-/*
-   The dev_info variable is the "key" that is used to match up this
-   device driver with appropriate cards, through the card configuration
-   database.
-*/
-
-static dev_info_t dev_info = "cb_das16_cs";
-
 struct local_info_t {
        struct pcmcia_device *link;
        int stop;
@@ -718,8 +710,7 @@ static void das16cs_pcmcia_detach(struct pcmcia_device *link)
        ((struct local_info_t *)link->priv)->stop = 1;
        das16cs_pcmcia_release(link);
        /* This points to the parent struct local_info_t struct */
-       if (link->priv)
-               kfree(link->priv);
+       kfree(link->priv);
 }                              /* das16cs_pcmcia_detach */
 
 
@@ -842,7 +833,7 @@ struct pcmcia_driver das16cs_driver = {
        .id_table = das16cs_id_table,
        .owner = THIS_MODULE,
        .drv = {
-               .name = dev_info,
+               .name = "cb_das16_cs",
                },
 };
 
@@ -876,5 +867,16 @@ void __exit cleanup_module(void)
 }
 
 #else
-COMEDI_INITCLEANUP(driver_das16cs);
+static int __init driver_das16cs_init_module(void)
+{
+       return comedi_driver_register(&driver_das16cs);
+}
+
+static void __exit driver_das16cs_cleanup_module(void)
+{
+       comedi_driver_unregister(&driver_das16cs);
+}
+
+module_init(driver_das16cs_init_module);
+module_exit(driver_das16cs_cleanup_module);
 #endif /* CONFIG_PCMCIA */