mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-14 09:47:20 +00:00
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: 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>
This commit is contained in:
parent
e9a4a7fb4c
commit
cb1648b46c
@ -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");
|
||||
|
Loading…
x
Reference in New Issue
Block a user