staging: comedi: refactor das6402 driver and use module_comedi_driver
authorH Hartley Sweeten <hartleys@visionengravers.com>
Tue, 15 May 2012 23:08:04 +0000 (16:08 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 16 May 2012 00:56:52 +0000 (17:56 -0700)
Move the module_init/module_exit routines and the associated
struct comedi_drive to the end of the source. This is more
typical of how other drivers are written and removes the need
for the forward declarations.

Convert the driver to use the module_comedi_driver() macro
which makes the code smaller and a bit simpler.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: Mori Hess <fmhess@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/das6402.c

index f256841..889527d 100644 (file)
@@ -99,29 +99,6 @@ This driver has suffered bitrot.
 #define        C2 0x80
 #define        RWLH 0x30
 
-static int das6402_attach(struct comedi_device *dev,
-                         struct comedi_devconfig *it);
-static int das6402_detach(struct comedi_device *dev);
-static struct comedi_driver driver_das6402 = {
-       .driver_name = "das6402",
-       .module = THIS_MODULE,
-       .attach = das6402_attach,
-       .detach = das6402_detach,
-};
-
-static int __init driver_das6402_init_module(void)
-{
-       return comedi_driver_register(&driver_das6402);
-}
-
-static void __exit driver_das6402_cleanup_module(void)
-{
-       comedi_driver_unregister(&driver_das6402);
-}
-
-module_init(driver_das6402_init_module);
-module_exit(driver_das6402_cleanup_module);
-
 struct das6402_private {
        int ai_bytes_to_read;
 
@@ -130,7 +107,14 @@ struct das6402_private {
 #define devpriv ((struct das6402_private *)dev->private)
 
 static void das6402_ai_fifo_dregs(struct comedi_device *dev,
-                                 struct comedi_subdevice *s);
+                                 struct comedi_subdevice *s)
+{
+       while (1) {
+               if (!(inb(dev->iobase + 8) & 0x01))
+                       return;
+               comedi_buf_put(s->async, inw(dev->iobase));
+       }
+}
 
 static void das6402_setcounter(struct comedi_device *dev)
 {
@@ -209,16 +193,6 @@ static void das6402_ai_fifo_read(struct comedi_device *dev, short *data, int n)
 }
 #endif
 
-static void das6402_ai_fifo_dregs(struct comedi_device *dev,
-                                 struct comedi_subdevice *s)
-{
-       while (1) {
-               if (!(inb(dev->iobase + 8) & 0x01))
-                       return;
-               comedi_buf_put(s->async, inw(dev->iobase));
-       }
-}
-
 static int das6402_ai_cancel(struct comedi_device *dev,
                             struct comedi_subdevice *s)
 {
@@ -300,16 +274,6 @@ static int board_init(struct comedi_device *dev)
        return 0;
 }
 
-static int das6402_detach(struct comedi_device *dev)
-{
-       if (dev->irq)
-               free_irq(dev->irq, dev);
-       if (dev->iobase)
-               release_region(dev->iobase, DAS6402_SIZE);
-
-       return 0;
-}
-
 static int das6402_attach(struct comedi_device *dev,
                          struct comedi_devconfig *it)
 {
@@ -363,6 +327,24 @@ static int das6402_attach(struct comedi_device *dev,
        return 0;
 }
 
+static int das6402_detach(struct comedi_device *dev)
+{
+       if (dev->irq)
+               free_irq(dev->irq, dev);
+       if (dev->iobase)
+               release_region(dev->iobase, DAS6402_SIZE);
+
+       return 0;
+}
+
+static struct comedi_driver das6402_driver = {
+       .driver_name    = "das6402",
+       .module         = THIS_MODULE,
+       .attach         = das6402_attach,
+       .detach         = das6402_detach,
+};
+module_comedi_driver(das6402_driver)
+
 MODULE_AUTHOR("Comedi http://www.comedi.org");
 MODULE_DESCRIPTION("Comedi low-level driver");
 MODULE_LICENSE("GPL");