staging: comedi: pcm3724: remove commented out printk debug
[deliverable/linux.git] / drivers / staging / comedi / drivers / pcm3724.c
index 5a9cd38e15f266ed9ce27b8682b4973cbdc8aeac..f4a49bd649f0e91555813e2d488d76348387ebd1 100644 (file)
@@ -28,11 +28,9 @@ Copy/pasted/hacked from pcm724.c
  *   struct comedi_insn
  */
 
+#include <linux/module.h>
 #include "../comedidev.h"
 
-#include <linux/ioport.h>
-#include <linux/delay.h>
-
 #include "8255.h"
 
 #define PCM3724_SIZE   16
@@ -72,14 +70,11 @@ static int subdev_8255_cb(int dir, int port, int data, unsigned long arg)
 {
        unsigned long iobase = arg;
        unsigned char inbres;
-       /* printk("8255cb %d %d %d %lx\n", dir,port,data,arg); */
        if (dir) {
-               /* printk("8255 cb   outb(%x, %lx)\n", data, iobase+port); */
                outb(data, iobase + port);
                return 0;
        } else {
                inbres = inb(iobase + port);
-               /* printk("8255 cb   inb(%lx) = %x\n", iobase+port, inbres); */
                return inbres;
        }
 }
@@ -139,8 +134,6 @@ static void do_3724_config(struct comedi_device *dev,
                port_8255_cfg = dev->iobase + SIZE_8255 + _8255_CR;
 
        outb(buffer_config, dev->iobase + 8);   /* update buffer register */
-       /* printk("pcm3724 buffer_config (%lx) %d, %x\n",
-              dev->iobase + _8255_CR, chanspec, buffer_config); */
 
        outb(config, port_8255_cfg);
 }
@@ -179,46 +172,36 @@ static void enable_chan(struct comedi_device *dev, struct comedi_subdevice *s,
        if (priv->dio_2 & 0xff)
                gatecfg |= GATE_A1;
 
-       /*       printk("gate control %x\n", gatecfg); */
        outb(gatecfg, dev->iobase + 9);
 }
 
 /* overriding the 8255 insn config */
 static int subdev_3724_insn_config(struct comedi_device *dev,
                                   struct comedi_subdevice *s,
-                                  struct comedi_insn *insn, unsigned int *data)
+                                  struct comedi_insn *insn,
+                                  unsigned int *data)
 {
+       unsigned int chan = CR_CHAN(insn->chanspec);
        unsigned int mask;
-       unsigned int bits;
-
-       mask = 1 << CR_CHAN(insn->chanspec);
-       if (mask & 0x0000ff)
-               bits = 0x0000ff;
-       else if (mask & 0x00ff00)
-               bits = 0x00ff00;
-       else if (mask & 0x0f0000)
-               bits = 0x0f0000;
+       int ret;
+
+       if (chan < 8)
+               mask = 0x0000ff;
+       else if (chan < 16)
+               mask = 0x00ff00;
+       else if (chan < 20)
+               mask = 0x0f0000;
        else
-               bits = 0xf00000;
-
-       switch (data[0]) {
-       case INSN_CONFIG_DIO_INPUT:
-               s->io_bits &= ~bits;
-               break;
-       case INSN_CONFIG_DIO_OUTPUT:
-               s->io_bits |= bits;
-               break;
-       case INSN_CONFIG_DIO_QUERY:
-               data[1] = (s->io_bits & bits) ? COMEDI_OUTPUT : COMEDI_INPUT;
-               return insn->n;
-               break;
-       default:
-               return -EINVAL;
-       }
+               mask = 0xf00000;
+
+       ret = comedi_dio_insn_config(dev, s, insn, data, mask);
+       if (ret)
+               return ret;
 
        do_3724_config(dev, s, insn->chanspec);
        enable_chan(dev, s, insn->chanspec);
-       return 1;
+
+       return insn->n;
 }
 
 static int pcm3724_attach(struct comedi_device *dev,
@@ -228,10 +211,9 @@ static int pcm3724_attach(struct comedi_device *dev,
        struct comedi_subdevice *s;
        int ret, i;
 
-       priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+       priv = comedi_alloc_devpriv(dev, sizeof(*priv));
        if (!priv)
                return -ENOMEM;
-       dev->private = priv;
 
        ret = comedi_request_region(dev, it->options[0], PCM3724_SIZE);
        if (ret)
This page took 0.027347 seconds and 5 git commands to generate.