Skip to content

Commit

Permalink
staging: comedi: refactor das6402 driver and use module_comedi_driver
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed May 16, 2012
1 parent b1a4fe9 commit 71e7271
Showing 1 changed file with 26 additions and 44 deletions.
70 changes: 26 additions & 44 deletions drivers/staging/comedi/drivers/das6402.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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)
{
Expand Down Expand Up @@ -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)
{
Expand Down Expand Up @@ -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)
{
Expand Down Expand Up @@ -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");

0 comments on commit 71e7271

Please sign in to comment.