Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cb1648b4 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman
Browse files

staging: comedi: refactor serial2002 driver to remove forward declarations



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: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: Mori Hess <fmhess@users.sourceforge.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent e9a4a7fb
Loading
Loading
Loading
Loading
+17 −41
Original line number Diff line number Diff line
@@ -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
 */
@@ -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;
@@ -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");