summaryrefslogtreecommitdiff
path: root/drivers/staging/comedi/drivers/ni_daq_700.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/comedi/drivers/ni_daq_700.c')
-rw-r--r--drivers/staging/comedi/drivers/ni_daq_700.c113
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;
}