diff options
Diffstat (limited to 'drivers/staging/comedi/drivers/ni_daq_700.c')
-rw-r--r-- | drivers/staging/comedi/drivers/ni_daq_700.c | 113 |
1 files changed, 63 insertions, 50 deletions
diff --git a/drivers/staging/comedi/drivers/ni_daq_700.c b/drivers/staging/comedi/drivers/ni_daq_700.c index 61a31ad2d030..e34948205320 100644 --- a/drivers/staging/comedi/drivers/ni_daq_700.c +++ b/drivers/staging/comedi/drivers/ni_daq_700.c @@ -41,6 +41,7 @@ emu as port A output, port B input, port C N/A). IRQ is assigned but not used. */ +#include <linux/interrupt.h> #include "../comedidev.h" #include <linux/ioport.h> @@ -53,36 +54,36 @@ IRQ is assigned but not used. static struct pcmcia_device *pcmcia_cur_dev = NULL; -#define DIO700_SIZE 8 // size of io region used by board +#define DIO700_SIZE 8 /* size of io region used by board */ -static int dio700_attach(struct comedi_device * dev, struct comedi_devconfig * it); -static int dio700_detach(struct comedi_device * dev); +static int dio700_attach(struct comedi_device *dev, struct comedi_devconfig *it); +static int dio700_detach(struct comedi_device *dev); enum dio700_bustype { pcmcia_bustype }; struct dio700_board { const char *name; - int device_id; // device id for pcmcia board - enum dio700_bustype bustype; // PCMCIA - int have_dio; // have daqcard-700 dio - // function pointers so we can use inb/outb or readb/writeb - // as appropriate + int device_id; /* device id for pcmcia board */ + enum dio700_bustype bustype; /* PCMCIA */ + int have_dio; /* have daqcard-700 dio */ + /* function pointers so we can use inb/outb or readb/writeb */ + /* as appropriate */ unsigned int (*read_byte) (unsigned int address); void (*write_byte) (unsigned int byte, unsigned int address); }; static const struct dio700_board dio700_boards[] = { { - name: "daqcard-700", - device_id:0x4743,// 0x10b is manufacturer id, 0x4743 is device id - bustype: pcmcia_bustype, - have_dio:1, + .name = "daqcard-700", + .device_id = 0x4743,/* 0x10b is manufacturer id, 0x4743 is device id */ + .bustype = pcmcia_bustype, + .have_dio = 1, }, { - name: "ni_daq_700", - device_id:0x4743,// 0x10b is manufacturer id, 0x4743 is device id - bustype: pcmcia_bustype, - have_dio:1, + .name = "ni_daq_700", + .device_id = 0x4743,/* 0x10b is manufacturer id, 0x4743 is device id */ + .bustype = pcmcia_bustype, + .have_dio = 1, }, }; @@ -100,13 +101,13 @@ struct dio700_private { #define devpriv ((struct dio700_private *)dev->private) static struct comedi_driver driver_dio700 = { - driver_name:"ni_daq_700", - module:THIS_MODULE, - attach:dio700_attach, - detach:dio700_detach, - num_names:sizeof(dio700_boards) / sizeof(struct dio700_board), - board_name:&dio700_boards[0].name, - offset:sizeof(struct dio700_board), + .driver_name = "ni_daq_700", + .module = THIS_MODULE, + .attach = dio700_attach, + .detach = dio700_detach, + .num_names = ARRAY_SIZE(dio700_boards), + .board_name = &dio700_boards[0].name, + .offset = sizeof(struct dio700_board), }; /* the real driver routines */ @@ -128,9 +129,9 @@ struct subdev_700_struct { #define CALLBACK_FUNC (((struct subdev_700_struct *)s->private)->cb_func) #define subdevpriv ((struct subdev_700_struct *)s->private) -static void do_config(struct comedi_device * dev, struct comedi_subdevice * s); +static void do_config(struct comedi_device *dev, struct comedi_subdevice *s); -void subdev_700_interrupt(struct comedi_device * dev, struct comedi_subdevice * s) +void subdev_700_interrupt(struct comedi_device *dev, struct comedi_subdevice *s) { short d; @@ -155,8 +156,8 @@ static int subdev_700_cb(int dir, int port, int data, unsigned long arg) } } -static int subdev_700_insn(struct comedi_device * dev, struct comedi_subdevice * s, - struct comedi_insn * insn, unsigned int * data) +static int subdev_700_insn(struct comedi_device *dev, struct comedi_subdevice *s, + struct comedi_insn *insn, unsigned int *data) { if (data[0]) { s->state &= ~data[0]; @@ -173,8 +174,8 @@ static int subdev_700_insn(struct comedi_device * dev, struct comedi_subdevice * return 2; } -static int subdev_700_insn_config(struct comedi_device * dev, struct comedi_subdevice * s, - struct comedi_insn * insn, unsigned int * data) +static int subdev_700_insn_config(struct comedi_device *dev, struct comedi_subdevice *s, + struct comedi_insn *insn, unsigned int *data) { switch (data[0]) { @@ -196,13 +197,13 @@ static int subdev_700_insn_config(struct comedi_device * dev, struct comedi_subd return 1; } -static void do_config(struct comedi_device * dev, struct comedi_subdevice * s) +static void do_config(struct comedi_device *dev, struct comedi_subdevice *s) { /* use powerup defaults */ return; } -static int subdev_700_cmdtest(struct comedi_device * dev, struct comedi_subdevice * s, - struct comedi_cmd * cmd) +static int subdev_700_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, + struct comedi_cmd *cmd) { int err = 0; unsigned int tmp; @@ -276,21 +277,21 @@ static int subdev_700_cmdtest(struct comedi_device * dev, struct comedi_subdevic return 0; } -static int subdev_700_cmd(struct comedi_device * dev, struct comedi_subdevice * s) +static int subdev_700_cmd(struct comedi_device *dev, struct comedi_subdevice *s) { /* FIXME */ return 0; } -static int subdev_700_cancel(struct comedi_device * dev, struct comedi_subdevice * s) +static int subdev_700_cancel(struct comedi_device *dev, struct comedi_subdevice *s) { /* FIXME */ return 0; } -int subdev_700_init(struct comedi_device * dev, struct comedi_subdevice * s, int (*cb) (int, +int subdev_700_init(struct comedi_device *dev, struct comedi_subdevice *s, int (*cb) (int, int, int, unsigned long), unsigned long arg) { s->type = COMEDI_SUBD_DIO; @@ -319,7 +320,7 @@ int subdev_700_init(struct comedi_device * dev, struct comedi_subdevice * s, int return 0; } -int subdev_700_init_irq(struct comedi_device * dev, struct comedi_subdevice * s, +int subdev_700_init_irq(struct comedi_device *dev, struct comedi_subdevice *s, int (*cb) (int, int, int, unsigned long), unsigned long arg) { int ret; @@ -337,7 +338,7 @@ int subdev_700_init_irq(struct comedi_device * dev, struct comedi_subdevice * s, return 0; } -void subdev_700_cleanup(struct comedi_device * dev, struct comedi_subdevice * s) +void subdev_700_cleanup(struct comedi_device *dev, struct comedi_subdevice *s) { if (s->private) { if (subdevpriv->have_irq) { @@ -352,7 +353,7 @@ EXPORT_SYMBOL(subdev_700_init_irq); EXPORT_SYMBOL(subdev_700_cleanup); EXPORT_SYMBOL(subdev_700_interrupt); -static int dio700_attach(struct comedi_device * dev, struct comedi_devconfig * it) +static int dio700_attach(struct comedi_device *dev, struct comedi_devconfig *it) { struct comedi_subdevice *s; unsigned long iobase = 0; @@ -365,7 +366,7 @@ static int dio700_attach(struct comedi_device * dev, struct comedi_devconfig * i if (alloc_private(dev, sizeof(struct dio700_private)) < 0) return -ENOMEM; - // get base address, irq etc. based on bustype + /* get base address, irq etc. based on bustype */ switch (thisboard->bustype) { case pcmcia_bustype: link = pcmcia_cur_dev; /* XXX hack */ @@ -415,7 +416,7 @@ static int dio700_attach(struct comedi_device * dev, struct comedi_devconfig * i return 0; }; -static int dio700_detach(struct comedi_device * dev) +static int dio700_detach(struct comedi_device *dev) { printk("comedi%d: ni_daq_700: cs-remove\n", dev->minor); @@ -425,12 +426,12 @@ static int dio700_detach(struct comedi_device * dev) if (thisboard->bustype != pcmcia_bustype && dev->iobase) release_region(dev->iobase, DIO700_SIZE); if (dev->irq) - comedi_free_irq(dev->irq, dev); + free_irq(dev->irq, dev); return 0; }; -// PCMCIA crap +/* PCMCIA crap */ /* All the PCMCIA modules use PCMCIA_DEBUG to control debugging. If @@ -594,15 +595,21 @@ static void dio700_config(struct pcmcia_device *link) tuple.TupleData = buf; tuple.TupleDataMax = sizeof(buf); tuple.TupleOffset = 0; - if ((last_ret = pcmcia_get_first_tuple(link, &tuple)) != 0) { + + last_ret = pcmcia_get_first_tuple(link, &tuple); + if (last_ret) { cs_error(link, GetFirstTuple, last_ret); goto cs_failed; } - if ((last_ret = pcmcia_get_tuple_data(link, &tuple)) != 0) { + + last_ret = pcmcia_get_tuple_data(link, &tuple); + if (last_ret) { cs_error(link, GetTupleData, last_ret); goto cs_failed; } - if ((last_ret = pcmcia_parse_tuple(&tuple, &parse)) != 0) { + + last_ret = pcmcia_parse_tuple(&tuple, &parse); + if (last_ret) { cs_error(link, ParseTuple, last_ret); goto cs_failed; } @@ -622,7 +629,8 @@ static void dio700_config(struct pcmcia_device *link) will only use the CIS to fill in implementation-defined details. */ tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY; - if ((last_ret = pcmcia_get_first_tuple(link, &tuple)) != 0) { + last_ret = pcmcia_get_first_tuple(link, &tuple); + if (last_ret != 0) { cs_error(link, GetFirstTuple, last_ret); goto cs_failed; } @@ -692,7 +700,9 @@ static void dio700_config(struct pcmcia_device *link) break; next_entry: - if ((last_ret = pcmcia_get_next_tuple(link, &tuple)) != 0) { + + last_ret = pcmcia_get_next_tuple(link, &tuple); + if (last_ret) { cs_error(link, GetNextTuple, last_ret); goto cs_failed; } @@ -703,18 +713,21 @@ static void dio700_config(struct pcmcia_device *link) handler to the interrupt, unless the 'Handler' member of the irq structure is initialized. */ - if (link->conf.Attributes & CONF_ENABLE_IRQ) - if ((last_ret = pcmcia_request_irq(link, &link->irq)) != 0) { + if (link->conf.Attributes & CONF_ENABLE_IRQ) { + last_ret = pcmcia_request_irq(link, &link->irq); + if (last_ret) { cs_error(link, RequestIRQ, last_ret); goto cs_failed; } + } /* This actually configures the PCMCIA socket -- setting up the I/O windows and the interrupt mapping, and putting the card and host interface into "Memory and IO" mode. */ - if ((last_ret = pcmcia_request_configuration(link, &link->conf)) != 0) { + last_ret = pcmcia_request_configuration(link, &link->conf); + if (last_ret != 0) { cs_error(link, RequestConfiguration, last_ret); goto cs_failed; } |