Skip to content

Commit

Permalink
staging: comedi: refactor me_daq driver to remove forward declarations
Browse files Browse the repository at this point in the history
Move the module_init/module_exit routines and the associated
struct comedi_driver and other variables to the end of the source.
This is more typical of how other drivers are written and removes
the need for the forward declarations.

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 9, 2012
1 parent 9142e00 commit 4d76714
Showing 1 changed file with 51 additions and 64 deletions.
115 changes: 51 additions & 64 deletions drivers/staging/comedi/drivers/me_daq.c
Original file line number Diff line number Diff line change
Expand Up @@ -146,10 +146,6 @@ from http://www.comedi.org
#define ME_COUNTER_STARTDATA_B 0x0022 /* - | W */
#define ME_COUNTER_VALUE_B 0x0022 /* R | - */

/* Function prototypes */
static int me_attach(struct comedi_device *dev, struct comedi_devconfig *it);
static int me_detach(struct comedi_device *dev);

static const struct comedi_lrange me2000_ai_range = {
8,
{
Expand Down Expand Up @@ -187,14 +183,6 @@ static const struct comedi_lrange me2600_ao_range = {
}
};

static DEFINE_PCI_DEVICE_TABLE(me_pci_table) = {
{ PCI_DEVICE(PCI_VENDOR_ID_MEILHAUS, ME2600_DEVICE_ID) },
{ PCI_DEVICE(PCI_VENDOR_ID_MEILHAUS, ME2000_DEVICE_ID) },
{0}
};

MODULE_DEVICE_TABLE(pci, me_pci_table);

/* Board specification structure */
struct me_board {
const char *name; /* driver name */
Expand Down Expand Up @@ -247,51 +235,6 @@ static const struct me_board me_boards[] = {

#define me_board_nbr (sizeof(me_boards)/sizeof(struct me_board))

static struct comedi_driver me_driver = {
.driver_name = ME_DRIVER_NAME,
.module = THIS_MODULE,
.attach = me_attach,
.detach = me_detach,
};

static int __devinit me_driver_pci_probe(struct pci_dev *dev,
const struct pci_device_id *ent)
{
return comedi_pci_auto_config(dev, &me_driver);
}

static void __devexit me_driver_pci_remove(struct pci_dev *dev)
{
comedi_pci_auto_unconfig(dev);
}

static struct pci_driver me_driver_pci_driver = {
.id_table = me_pci_table,
.probe = &me_driver_pci_probe,
.remove = __devexit_p(&me_driver_pci_remove)
};

static int __init me_driver_init_module(void)
{
int retval;

retval = comedi_driver_register(&me_driver);
if (retval < 0)
return retval;

me_driver_pci_driver.name = (char *)me_driver.driver_name;
return pci_register_driver(&me_driver_pci_driver);
}

static void __exit me_driver_cleanup_module(void)
{
pci_unregister_driver(&me_driver_pci_driver);
comedi_driver_unregister(&me_driver);
}

module_init(me_driver_init_module);
module_exit(me_driver_cleanup_module);

/* Private data structure */
struct me_private_data {
struct pci_dev *pci_device;
Expand Down Expand Up @@ -669,12 +612,6 @@ static int me_reset(struct comedi_device *dev)
return 0;
}

/*
* Attach
*
* - Register PCI device
* - Declare device driver capability
*/
static int me_attach(struct comedi_device *dev, struct comedi_devconfig *it)
{
struct pci_dev *pci_device = NULL;
Expand Down Expand Up @@ -869,7 +806,6 @@ static int me_attach(struct comedi_device *dev, struct comedi_devconfig *it)
return 0;
}

/* Detach */
static int me_detach(struct comedi_device *dev)
{
if (dev_private) {
Expand All @@ -889,6 +825,57 @@ static int me_detach(struct comedi_device *dev)
return 0;
}

static struct comedi_driver me_driver = {
.driver_name = ME_DRIVER_NAME,
.module = THIS_MODULE,
.attach = me_attach,
.detach = me_detach,
};

static int __devinit me_driver_pci_probe(struct pci_dev *dev,
const struct pci_device_id *ent)
{
return comedi_pci_auto_config(dev, &me_driver);
}

static void __devexit me_driver_pci_remove(struct pci_dev *dev)
{
comedi_pci_auto_unconfig(dev);
}

static DEFINE_PCI_DEVICE_TABLE(me_pci_table) = {
{ PCI_DEVICE(PCI_VENDOR_ID_MEILHAUS, ME2600_DEVICE_ID) },
{ PCI_DEVICE(PCI_VENDOR_ID_MEILHAUS, ME2000_DEVICE_ID) },
{ 0 }
};
MODULE_DEVICE_TABLE(pci, me_pci_table);

static struct pci_driver me_driver_pci_driver = {
.id_table = me_pci_table,
.probe = me_driver_pci_probe,
.remove = __devexit_p(me_driver_pci_remove),
};

static int __init me_driver_init_module(void)
{
int retval;

retval = comedi_driver_register(&me_driver);
if (retval < 0)
return retval;

me_driver_pci_driver.name = (char *)me_driver.driver_name;
return pci_register_driver(&me_driver_pci_driver);
}
module_init(me_driver_init_module);

static void __exit me_driver_cleanup_module(void)
{
pci_unregister_driver(&me_driver_pci_driver);
comedi_driver_unregister(&me_driver);
}
module_exit(me_driver_cleanup_module);

MODULE_AUTHOR("Comedi http://www.comedi.org");
MODULE_DESCRIPTION("Comedi low-level driver");
MODULE_LICENSE("GPL");

0 comments on commit 4d76714

Please sign in to comment.