addition, the clock does not seem to be very accurate.
*/
+#include <linux/interrupt.h>
#include "../comedidev.h"
#include <linux/ioport.h>
#define DT2814_ENB 0x10
#define DT2814_CHANMASK 0x0f
-static int dt2814_attach(struct comedi_device * dev, comedi_devconfig * it);
-static int dt2814_detach(struct comedi_device * dev);
+static int dt2814_attach(struct comedi_device *dev, struct comedi_devconfig *it);
+static int dt2814_detach(struct comedi_device *dev);
static struct comedi_driver driver_dt2814 = {
- driver_name:"dt2814",
- module:THIS_MODULE,
- attach:dt2814_attach,
- detach:dt2814_detach,
+ .driver_name = "dt2814",
+ .module = THIS_MODULE,
+ .attach = dt2814_attach,
+ .detach = dt2814_detach,
};
COMEDI_INITCLEANUP(driver_dt2814);
-static irqreturn_t dt2814_interrupt(int irq, void *dev PT_REGS_ARG);
+static irqreturn_t dt2814_interrupt(int irq, void *dev);
+
+struct dt2814_private {
-typedef struct {
int ntrig;
int curadchan;
-} dt2814_private;
-#define devpriv ((dt2814_private *)dev->private)
+};
+
+#define devpriv ((struct dt2814_private *)dev->private)
#define DT2814_TIMEOUT 10
#define DT2814_MAX_SPEED 100000 /* Arbitrary 10 khz limit */
-static int dt2814_ai_insn_read(struct comedi_device * dev, struct comedi_subdevice * s,
- comedi_insn * insn, unsigned int * data)
+static int dt2814_ai_insn_read(struct comedi_device *dev, struct comedi_subdevice *s,
+ struct comedi_insn *insn, unsigned int *data)
{
int n, i, hi, lo;
int chan;
for (i = 0; i < DT2814_TIMEOUT; i++) {
status = inb(dev->iobase + DT2814_CSR);
printk("dt2814: status: %02x\n", status);
- comedi_udelay(10);
+ udelay(10);
if (status & DT2814_FINISH)
break;
}
return i;
}
-static int dt2814_ai_cmdtest(struct comedi_device * dev, struct comedi_subdevice * s,
- struct comedi_cmd * cmd)
+static int dt2814_ai_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s,
+ struct comedi_cmd *cmd)
{
int err = 0;
int tmp;
return 0;
}
-static int dt2814_ai_cmd(struct comedi_device * dev, struct comedi_subdevice * s)
+static int dt2814_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
{
struct comedi_cmd *cmd = &s->async->cmd;
int chan;
}
-static int dt2814_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int dt2814_attach(struct comedi_device *dev, struct comedi_devconfig *it)
{
int i, irq;
int ret;
dev->board_name = "dt2814";
outb(0, dev->iobase + DT2814_CSR);
- comedi_udelay(100);
+ udelay(100);
if (inb(dev->iobase + DT2814_CSR) & DT2814_ERR) {
printk("reset error (fatal)\n");
return -EIO;
outb(0, dev->iobase + DT2814_CSR);
- comedi_udelay(100);
+ udelay(100);
irq = probe_irq_off(irqs);
restore_flags(flags);
#endif
dev->irq = 0;
if (irq > 0) {
- if (comedi_request_irq(irq, dt2814_interrupt, 0, "dt2814", dev)) {
+ if (request_irq(irq, dt2814_interrupt, 0, "dt2814", dev)) {
printk("(irq %d unavailable)\n", irq);
} else {
printk("( irq = %d )\n", irq);
#endif
}
- if ((ret = alloc_subdevices(dev, 1)) < 0)
+ ret = alloc_subdevices(dev, 1);
+ if (ret < 0)
return ret;
- if ((ret = alloc_private(dev, sizeof(dt2814_private))) < 0)
+
+ ret = alloc_private(dev, sizeof(struct dt2814_private));
+ if (ret < 0)
return ret;
s = dev->subdevices + 0;
return 0;
}
-static int dt2814_detach(struct comedi_device * dev)
+static int dt2814_detach(struct comedi_device *dev)
{
printk("comedi%d: dt2814: remove\n", dev->minor);
if (dev->irq) {
- comedi_free_irq(dev->irq, dev);
+ free_irq(dev->irq, dev);
}
if (dev->iobase) {
release_region(dev->iobase, DT2814_SIZE);
return 0;
}
-static irqreturn_t dt2814_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t dt2814_interrupt(int irq, void *d)
{
int lo, hi;
struct comedi_device *dev = d;