staging: comedi: refactor 8255 driver to remove forward declarations
Move the module_init/module_exit routines and the associated struct comedi_driver variable to the end of the source. This is more typical of how other drivers are written and removes the need for the forward declarations. Also, move the do_config function to remove needing to have a forward declaration for that routine. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Mori Hess <fmhess@users.sourceforge.net> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
1b18bbb580
Коммит
3e699ed170
|
@ -107,31 +107,6 @@ struct subdev_8255_struct {
|
|||
#define CALLBACK_FUNC (((struct subdev_8255_struct *)s->private)->cb_func)
|
||||
#define subdevpriv ((struct subdev_8255_struct *)s->private)
|
||||
|
||||
static int dev_8255_attach(struct comedi_device *dev,
|
||||
struct comedi_devconfig *it);
|
||||
static int dev_8255_detach(struct comedi_device *dev);
|
||||
static struct comedi_driver driver_8255 = {
|
||||
.driver_name = "8255",
|
||||
.module = THIS_MODULE,
|
||||
.attach = dev_8255_attach,
|
||||
.detach = dev_8255_detach,
|
||||
};
|
||||
|
||||
static int __init driver_8255_init_module(void)
|
||||
{
|
||||
return comedi_driver_register(&driver_8255);
|
||||
}
|
||||
|
||||
static void __exit driver_8255_cleanup_module(void)
|
||||
{
|
||||
comedi_driver_unregister(&driver_8255);
|
||||
}
|
||||
|
||||
module_init(driver_8255_init_module);
|
||||
module_exit(driver_8255_cleanup_module);
|
||||
|
||||
static void do_config(struct comedi_device *dev, struct comedi_subdevice *s);
|
||||
|
||||
void subdev_8255_interrupt(struct comedi_device *dev,
|
||||
struct comedi_subdevice *s)
|
||||
{
|
||||
|
@ -185,6 +160,23 @@ static int subdev_8255_insn(struct comedi_device *dev,
|
|||
return 2;
|
||||
}
|
||||
|
||||
static void do_config(struct comedi_device *dev, struct comedi_subdevice *s)
|
||||
{
|
||||
int config;
|
||||
|
||||
config = CR_CW;
|
||||
/* 1 in io_bits indicates output, 1 in config indicates input */
|
||||
if (!(s->io_bits & 0x0000ff))
|
||||
config |= CR_A_IO;
|
||||
if (!(s->io_bits & 0x00ff00))
|
||||
config |= CR_B_IO;
|
||||
if (!(s->io_bits & 0x0f0000))
|
||||
config |= CR_C_LO_IO;
|
||||
if (!(s->io_bits & 0xf00000))
|
||||
config |= CR_C_HI_IO;
|
||||
CALLBACK_FUNC(1, _8255_CR, config, CALLBACK_ARG);
|
||||
}
|
||||
|
||||
static int subdev_8255_insn_config(struct comedi_device *dev,
|
||||
struct comedi_subdevice *s,
|
||||
struct comedi_insn *insn, unsigned int *data)
|
||||
|
@ -222,23 +214,6 @@ static int subdev_8255_insn_config(struct comedi_device *dev,
|
|||
return 1;
|
||||
}
|
||||
|
||||
static void do_config(struct comedi_device *dev, struct comedi_subdevice *s)
|
||||
{
|
||||
int config;
|
||||
|
||||
config = CR_CW;
|
||||
/* 1 in io_bits indicates output, 1 in config indicates input */
|
||||
if (!(s->io_bits & 0x0000ff))
|
||||
config |= CR_A_IO;
|
||||
if (!(s->io_bits & 0x00ff00))
|
||||
config |= CR_B_IO;
|
||||
if (!(s->io_bits & 0x0f0000))
|
||||
config |= CR_C_LO_IO;
|
||||
if (!(s->io_bits & 0xf00000))
|
||||
config |= CR_C_HI_IO;
|
||||
CALLBACK_FUNC(1, _8255_CR, config, CALLBACK_ARG);
|
||||
}
|
||||
|
||||
static int subdev_8255_cmdtest(struct comedi_device *dev,
|
||||
struct comedi_subdevice *s,
|
||||
struct comedi_cmd *cmd)
|
||||
|
@ -462,6 +437,25 @@ static int dev_8255_detach(struct comedi_device *dev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct comedi_driver driver_8255 = {
|
||||
.driver_name = "8255",
|
||||
.module = THIS_MODULE,
|
||||
.attach = dev_8255_attach,
|
||||
.detach = dev_8255_detach,
|
||||
};
|
||||
|
||||
static int __init driver_8255_init_module(void)
|
||||
{
|
||||
return comedi_driver_register(&driver_8255);
|
||||
}
|
||||
module_init(driver_8255_init_module);
|
||||
|
||||
static void __exit driver_8255_cleanup_module(void)
|
||||
{
|
||||
comedi_driver_unregister(&driver_8255);
|
||||
}
|
||||
module_exit(driver_8255_cleanup_module);
|
||||
|
||||
MODULE_AUTHOR("Comedi http://www.comedi.org");
|
||||
MODULE_DESCRIPTION("Comedi low-level driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
|
Загрузка…
Ссылка в новой задаче