Skip to content

Commit

Permalink
staging: comedi: refactor serial2002 driver to remove forward declara…
Browse files Browse the repository at this point in the history
…tions

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 <[email protected]>
Cc: Ian Abbott <[email protected]>
Cc: Mori Hess <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
H Hartley Sweeten authored and gregkh committed Apr 30, 2012
1 parent e9a4a7f commit cb1648b
Showing 1 changed file with 17 additions and 41 deletions.
58 changes: 17 additions & 41 deletions drivers/staging/comedi/drivers/serial2002.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,20 +43,10 @@ Status: in development
#include <linux/serial.h>
#include <linux/poll.h>

/*
* Board descriptions for two imaginary boards. Describing the
* boards in this way is optional, and completely driver-dependent.
* Some drivers use arrays such as this, other do not.
*/
struct serial2002_board {
const char *name;
};

static const struct serial2002_board serial2002_boards[] = {
{
.name = "serial2002"}
};

/*
* Useful for shorthand access to the particular board structure
*/
Expand Down Expand Up @@ -89,35 +79,6 @@ struct serial2002_private {
*/
#define devpriv ((struct serial2002_private *)dev->private)

static int serial2002_attach(struct comedi_device *dev,
struct comedi_devconfig *it);
static int serial2002_detach(struct comedi_device *dev);
struct comedi_driver driver_serial2002 = {
.driver_name = "serial2002",
.module = THIS_MODULE,
.attach = serial2002_attach,
.detach = serial2002_detach,
.board_name = &serial2002_boards[0].name,
.offset = sizeof(struct serial2002_board),
.num_names = ARRAY_SIZE(serial2002_boards),
};

static int serial2002_di_rinsn(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn, unsigned int *data);
static int serial2002_do_winsn(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn, unsigned int *data);
static int serial2002_ai_rinsn(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn, unsigned int *data);
static int serial2002_ao_winsn(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn, unsigned int *data);
static int serial2002_ao_rinsn(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn, unsigned int *data);

struct serial_data {
enum { is_invalid, is_digital, is_channel } kind;
int index;
Expand Down Expand Up @@ -901,17 +862,32 @@ static int serial2002_detach(struct comedi_device *dev)
return 0;
}

static const struct serial2002_board serial2002_boards[] = {
{
.name = "serial2002"
},
};

struct comedi_driver driver_serial2002 = {
.driver_name = "serial2002",
.module = THIS_MODULE,
.attach = serial2002_attach,
.detach = serial2002_detach,
.board_name = &serial2002_boards[0].name,
.offset = sizeof(struct serial2002_board),
.num_names = ARRAY_SIZE(serial2002_boards),
};

static int __init driver_serial2002_init_module(void)
{
return comedi_driver_register(&driver_serial2002);
}
module_init(driver_serial2002_init_module);

static void __exit driver_serial2002_cleanup_module(void)
{
comedi_driver_unregister(&driver_serial2002);
}

module_init(driver_serial2002_init_module);
module_exit(driver_serial2002_cleanup_module);

MODULE_AUTHOR("Comedi http://www.comedi.org");
Expand Down

0 comments on commit cb1648b

Please sign in to comment.