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

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

staging: comedi: refactor adl_pci7230 driver to remove forward declarations



Move the struct comedi_driver variable and the associated
attach/detach routines to remove 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>
CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent db0eaeed
Loading
Loading
Loading
Loading
+40 −57
Original line number Diff line number Diff line
@@ -43,13 +43,6 @@ Configuration Options:

#define PCI_DEVICE_ID_PCI7230 0x7230

static DEFINE_PCI_DEVICE_TABLE(adl_pci7230_pci_table) = {
	{ PCI_DEVICE(PCI_VENDOR_ID_ADLINK, PCI_DEVICE_ID_PCI7230) },
	{0}
};

MODULE_DEVICE_TABLE(pci, adl_pci7230_pci_table);

struct adl_pci7230_private {
	int data;
	struct pci_dev *pci_dev;
@@ -57,27 +50,36 @@ struct adl_pci7230_private {

#define devpriv ((struct adl_pci7230_private *)dev->private)

static int adl_pci7230_attach(struct comedi_device *dev,
	struct comedi_devconfig *it);
static int adl_pci7230_detach(struct comedi_device *dev);
static struct comedi_driver driver_adl_pci7230 = {
	.driver_name = "adl_pci7230",
	.module = THIS_MODULE,
	.attach = adl_pci7230_attach,
	.detach = adl_pci7230_detach,
};
static int adl_pci7230_do_insn_bits(struct comedi_device *dev,
	struct comedi_subdevice *s,
	struct comedi_insn *insn,
	unsigned int *data)
{
	if (insn->n != 2)
		return -EINVAL;

/* Digital IO */
	if (data[0]) {
		s->state &= ~data[0];
		s->state |= (data[0] & data[1]);

		outl((s->state  << 16) & 0xffffffff, dev->iobase + PCI7230_DO);
	}

	return 2;
}

static int adl_pci7230_di_insn_bits(struct comedi_device *dev,
	struct comedi_subdevice *s,
	struct comedi_insn *insn,
	unsigned int *data);
	unsigned int *data)
{
	if (insn->n != 2)
		return -EINVAL;

static int adl_pci7230_do_insn_bits(struct comedi_device *dev,
	struct comedi_subdevice *s,
	struct comedi_insn *insn,
	unsigned int *data);
	data[1] = inl(dev->iobase + PCI7230_DI) & 0xffffffff;

	return 2;
}

static int adl_pci7230_attach(struct comedi_device *dev,
	struct comedi_devconfig *it)
@@ -161,36 +163,12 @@ static int adl_pci7230_detach(struct comedi_device *dev)
	return 0;
}

static int adl_pci7230_do_insn_bits(struct comedi_device *dev,
	struct comedi_subdevice *s,
	struct comedi_insn *insn,
	unsigned int *data)
{
	if (insn->n != 2)
		return -EINVAL;

	if (data[0]) {
		s->state &= ~data[0];
		s->state |= (data[0] & data[1]);

		outl((s->state  << 16) & 0xffffffff, dev->iobase + PCI7230_DO);
	}

	return 2;
}

static int adl_pci7230_di_insn_bits(struct comedi_device *dev,
	struct comedi_subdevice *s,
	struct comedi_insn *insn,
	unsigned int *data)
{
	if (insn->n != 2)
		return -EINVAL;

	data[1] = inl(dev->iobase + PCI7230_DI) & 0xffffffff;

	return 2;
}
static struct comedi_driver driver_adl_pci7230 = {
	.driver_name	= "adl_pci7230",
	.module		= THIS_MODULE,
	.attach		= adl_pci7230_attach,
	.detach		= adl_pci7230_detach,
};

static int __devinit driver_adl_pci7230_pci_probe(struct pci_dev *dev,
						  const struct pci_device_id
@@ -204,10 +182,16 @@ static void __devexit driver_adl_pci7230_pci_remove(struct pci_dev *dev)
	comedi_pci_auto_unconfig(dev);
}

static DEFINE_PCI_DEVICE_TABLE(adl_pci7230_pci_table) = {
	{ PCI_DEVICE(PCI_VENDOR_ID_ADLINK, PCI_DEVICE_ID_PCI7230) },
	{0}
};
MODULE_DEVICE_TABLE(pci, adl_pci7230_pci_table);

static struct pci_driver driver_adl_pci7230_pci_driver = {
	.id_table	= adl_pci7230_pci_table,
	.probe = &driver_adl_pci7230_pci_probe,
	.remove = __devexit_p(&driver_adl_pci7230_pci_remove)
	.probe		= driver_adl_pci7230_pci_probe,
	.remove		= __devexit_p(driver_adl_pci7230_pci_remove)
};

static int __init driver_adl_pci7230_init_module(void)
@@ -222,14 +206,13 @@ static int __init driver_adl_pci7230_init_module(void)
	    (char *)driver_adl_pci7230.driver_name;
	return pci_register_driver(&driver_adl_pci7230_pci_driver);
}
module_init(driver_adl_pci7230_init_module);

static void __exit driver_adl_pci7230_cleanup_module(void)
{
	pci_unregister_driver(&driver_adl_pci7230_pci_driver);
	comedi_driver_unregister(&driver_adl_pci7230);
}

module_init(driver_adl_pci7230_init_module);
module_exit(driver_adl_pci7230_cleanup_module);

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